Войти
ПрограммированиеФорумГрафика

Water subsurface scattering (2 стр)

Страницы: 1 2 3 Следующая »
#15
18:44, 25 дек. 2015

Bonus
> в смысле? дальше там только вот это
> color.rgb+=g_WaterScatterColor*scatter_factor; по идее тут он должен быть
> нормализованным, но нет

Есть подозрение, что scatter_factor это только часть scattering


#16
18:50, 25 дек. 2015

Больше у них ничего не происходит с этим значением.

#17
19:20, 25 дек. 2015

Bonus
> Больше у них ничего не происходит с этим значением.

Так я с этим и не спорю. Пока луч света проходит сквозь воду - он рассеивается ... это та часть гдe exp()  учитывается

#18
3:53, 28 дек. 2015

innuendo
> Пока луч света проходит сквозь воду - он рассеивается
Да перестань, там же в демке совсем дурная эвристика :)

З.Ы. Только что попробовал у себя.. учитывая, что писанина заняла 15 мин, результат приятный. Если, конечно, хорошо подогнать параметры.
#19
10:02, 28 дек. 2015

Vine
> Да перестань

Где в моих словах ошибка ? Туман это часть рассеивания

#20
10:18, 28 дек. 2015

innuendo
> Где в моих словах ошибка ?
Какая ошибка? Я чисто к тому, что нету смысла от демки с эвристическим подходом ожидать физической достоверности. Как минимум, например, им бы пришлось воду два раза рендерить в Z, чтоб получить срез, и там уже exp и тд.

ЗЫ. если в движке есть IBL, теоретически можно попробовать заюзать последний мип кубмапы в качестве источника освещения. Тогда "скаттеринг" не будет зависеть от угла к солнцу, и будет учитывать все направления.

#21
10:24, 28 дек. 2015

Vine
> Я чисто к тому, что нету смысла от демки с эвристическим подходом ожидать
> физической достоверности

А никто и не ожидает. Автор так и написал. Красиво смотрится ?

#22
10:31, 28 дек. 2015

innuendo
> Красиво смотрится ?
А я ж и написал, что, учитывая, как мало времени тратится, то приятно выглядит.
Что-то у меня руки зачесались таки потестить как оно будет с кубмапой, попробую когда будет свободная минутка.

#23
10:41, 28 дек. 2015

Vine
> учитывая, как мало времени тратится

Я правильно понял, что написание всего ps шейдера (1->1 как в примере) у тебя заняло 15 минут ? :)

#24
10:54, 28 дек. 2015

innuendo
У меня уже был свой шейдер воды, со всем необходимым (нормалями, позицией и тд), оставалось только допилить фрагмент из демки, приведенный в посте #12. Ctrl+C, Ctrl+V, ну чуток еще поменял там, подогнал параметры :)

#25
11:01, 28 дек. 2015

Еще можно попробовать как в Assasin's Creed вместо color.rgb+=g_WaterScatterColor*scatter_factor; сделать color.rgb += tex2D(waterColorRamp, float2(scatter_factor, .5));
Только надо scatter_factor нормализовать

#26
11:44, 28 дек. 2015

Короче вот я поэкспериментировал с кубмапой, для ambient прохода использовал то же,
только берём

  pixel_to_light_vector = -pixel_to_eye_vector;

потом ставим

  pixel_to_eye_vector.y = 0;
и нормализируем,

в конце

scatter_factor *= IBLCubeMap.SampleLevel( Sampler, -pixel_to_eye_vector, LastMip );

Вот скрины (эффект применяется для правой половины), не знаю насколько чисто всё сделано, но дальше придумывать что-либо лень:

+ Показать

#27
12:40, 28 дек. 2015

Если будет красное закатное небо, то подкрасит красным?

#28
14:26, 28 дек. 2015

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

#29
15:56, 28 дек. 2015

Bonus
> Если будет красное закатное небо, то подкрасит красным?
Да:

+ Показать

gammaker
> А можешь шейдер скинуть?
Это проблематично, так как освещение разбросано по разным проходам, + сетка генерится FFT.
Кстати, я так понял, что в демке волны "растут вниз", иначе строчку

scatter_factor=2.5*max(0,input.positionWS.y*0.25+0.25);
никак не объяснить.
Вот функция чисто для "скаттеринга", как я её у себя запилил:
+ Показать
Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика

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