Войти
Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ

[АРХИВ] Шейдеры, техники, rendering path'ы (23 стр)

Страницы: 119 20 21 22 23 24 Следующая »
#330
23:05, 26 фев. 2016

>тени на объект с этим материалом?
>Вообще стандартный ENVMAP там все убивает, источник света не него не действует и объект с таким материалом видно даже в полной темноте, источник света может только блик наложить на такой материал, ну и тени он не получает, другой объект может только блик перекрыть
да, да...
Я сейчас пытался перетащить весь просчет ZoneEnvMap из амбиен прохода в per-pixel - 0 эмоций, вернее у меня пропало кружение на объектах как будто бы без нее все рисуется с обычным материалом и ошибок нет. Как-будто бы в per-pixel дейфай для ENVMAP не проброшен.
Я вижу у тебя идет выборка из sEnvCubeMap минуя барикады из дефайнов надо без него попробовать, но шейдер тогда придется отдельный заводить для техники.

Воткнул выборку из кубе мапы прямо в per-pixel проход
рез-тат:
Изображение
http://pastebin.com/5fRjjCpa
я предположил что свет исходящий из сторон кубемапы это что-то родсвенное обычному источнику света(в плане того что они оба источники света получается и оба должны клипаться тенями) поэтому они должны в выражении быть где-то рядом, к тому же там чертова тень diff как-раз есть )


#331
11:29, 27 фев. 2016

В outbreak проклонировал каждый материал в сцене, стало 2к батчей вместо 400, фпс не изменился, так что в реальных условиях это тоже работает, найс )

#332
11:31, 27 фев. 2016

codingmonkey
> Воткнул выборку из кубе мапы прямо в per-pixel проход
> рез-тат:

ну и все, PBR нафиг не нужен, быстро и красиво)

#333
11:51, 27 фев. 2016

не это не PBR, это - освещение кубемапой из Zone.

еще потом хочу попробовать добавить Light Scattering для солнечного круга, в альфа канал кубе мапы сделать своеобразный Threshold и писать(наверное там же в procSky.glsl) только белые пиксели(или около белого) и потом эту маску использовать для Light Scattering. только вот эффект насколько я помню из ламбарда должен пропадать на некоторых "часах восхода" солнца.   

#334
12:00, 27 фев. 2016

А размер солнца регулируется? А то оно огромное слишком

#335
12:04, 27 фев. 2016

>А размер солнца регулируется? А то оно огромное слишком
да должно, там же куча настроек сам же видел, у меня просто пока окна для управления всеми этими настройками нет, использую значения параметров по умолчанию.

#336
1:23, 28 фев. 2016

В общем я частично написал скаттеринг, проблема еще будет с AlphaMask материалами, но я уже примерно представил как я ее могу решить.
Кстати солнце я уменьшил, а то оно и правда было слишком огромным, а со скаттерингом все белым заливало.

Маска для скаттеринг шейдера
Я не стал писать в кубемапе в альфу (солнца круг), а завел RTT для маски и затем когда кубемапа уже готова для использования Skybox шейдером, я в нём пишу через MRT в эту RTT белый цвет

void PS()
{
#ifndef LS
    gl_FragColor = cMatDiffColor * textureCube(sDiffCubeMap, vTexCoord);
#else
    vec4 skyColor = cMatDiffColor * textureCube(sDiffCubeMap, vTexCoord);
    gl_FragData[0] = skyColor;
    
    if (GetIntensity(skyColor.rgb) > 0.9f)
        gl_FragData[1] = vec4(1.0);
    else
        gl_FragData[1] = vec4(0.0);
#endif
}

ZoneEnvCube перенесеный в PerPixel часть шейдера для убивания кубемапы света там где тени.

#337
1:29, 28 фев. 2016

красота ) но мне кажется солнце еще меньше нужно сделать 
http://frazy.su/wp-content/uploads/2015/12/zheltoe-solnce-vosxodi… -67990631.jpg

#338
1:52, 28 фев. 2016

Окошко с бегунками нужно будет сделать, тогда по выбору и любого размера )
Кстати, я тут глянул что сильно жирно для ч/б маски RGBA текстура, а какой там формат в 8 бит можно заюзать?

#339
2:09, 28 фев. 2016
+ Показать

есть формат a )

#340
2:29, 28 фев. 2016

ага работает

<renderpath>
    <rendertarget name="SunHalo" tag="LS" sizedivisor="1 1" format="a" filter="true" />
    <rendertarget name="lowresRT1" tag="LS" sizedivisor="2 2" format="a" filter="true" />
правда пришлось написать новый CopyFramebuffer8.glsl
#include "Uniforms.glsl"
#include "Samplers.glsl"
#include "Transform.glsl"
#include "ScreenPos.glsl"

varying vec2 vScreenPos;

void VS()
{
    mat4 modelMatrix = iModelMatrix;
    vec3 worldPos = GetWorldPos(modelMatrix);
    gl_Position = GetClipPos(worldPos);
    vScreenPos = GetScreenPosPreDiv(gl_Position);
}

void PS()
{
    gl_FragColor.rgb = texture2D(sDiffMap, vScreenPos).rrr;  
}
для блендинга с кадром сцены
    <!-- blend with main scene -->  
    <command type="quad" tag="LS" vs="CopyFramebuffer8" ps="CopyFramebuffer8" blend="add" output="viewport">
        <texture unit="diffuse" name="lowresRT1" />
    </command>

а иначе все лучи красным цветом отливали )

Кстати, у тебя же в outline эффекте тоже "жирные" rtt, не?)

#341
4:29, 28 фев. 2016

> Кстати, у тебя же в outline эффекте тоже "жирные" rtt, не?)

в rgb, цвет, в a маска )

#342
10:00, 28 фев. 2016

>в rgb, цвет, в a маска )

    <rendertarget name="outlineMask" sizedivisor="1 1" format="rgba" filter="true" />
    <rendertarget name="outlineBlurredMaskH" sizedivisor="2 2" format="rgba" filter="true" />
    <rendertarget name="outlineBlurredMaskV" sizedivisor="2 2" format="rgba" filter="true" />
это не актуальная версия что-ли?
тут по моему все можно в "a-формат" переделать.
потом просто при выборке размазанной маски домножать ее на цвет из юнирофма материала

можно даже сэкономить на рендер таргете и в первом проходе мазать допустим в r канал, вротой проход мазать в g т.е. по идее хватило бы rg8 для blurred
так:

    <rendertarget name="outlineMask" sizedivisor="1 1" format="a" filter="true" />
    <rendertarget name="outlineBlurredMaskHrVg" sizedivisor="2 2" format="rg8" filter="true" />

#343
13:07, 28 фев. 2016

Этот шейдер проще чем ваши или сложнее?
http://threejs.org/examples/#webgl_shaders_sky

#344
13:15, 28 фев. 2016

> потом просто при выборке размазанной маски домножать ее на цвет из юнирофма материала

там все материалы с обводками рендерятся в одну текстуру, потом эта текстура размазывается (и цвета смешиваютс, и маски размываются), на этом этапе у нас уже нету отдельных материалов

Страницы: 119 20 21 22 23 24 Следующая »
Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ

Тема в архиве.