Войти
АртФорумОбщее

Shader Art (хвастаемся скринами) (148 стр)

Страницы: 1143 144 145 146 147 148
#2205
14:30, 27 мая 2019

San
SSGI без репроекции?


#2206
(Правка: 15:01) 14:54, 27 мая 2019

BingoBongo
Почему же? SSLR и SSGI берут финальную картинку с прошлого кадра + репроекция. Т.е. получается мультибаунс.
Правда есть косяки при перемещении камеры. При вращении - все ок.

#2207
(Правка: 15:12) 15:00, 27 мая 2019

San
Мне сначала показалось, что она есть, потом - что ее нет ) Но Суслик писал, что без репроекции делает https://www.youtube.com/watch?v=OPFvcsQAKjc . С ней шум намного проще убирать. Хотя все равно прикольно: в моих старых попытках, по-моему, даже с репроекцией сильнее "шумело", чем у тебя при равных фпс.

#2208
(Правка: 18:04) 15:14, 27 мая 2019

BingoBongo
Ну у меня просто ремапятся UV предыдущего кадра, чтобы не было отставания. Т.е. такая игрушечная репроекция.
Шума относительно мало из-за использования мипов. Если всегда читать с нулевого лода, то будет сильно шумнее.
Зато с мипами появляется другая проблема - на менее детальных лодах очень заметны переходы между текселями. Выглядит как чередующееся сильное изменение яркости при небольшом вращении/перемещении камеры.
Заметно в первую очередь в SSLR, при большом roughness (т.к. читаются очень мелкие мипы). Возможно, это побеждается снэппингом UV по аналогии с ortho shadow mapping.

#2209
5:45, 13 июня 2019

#2210
11:52, 13 июня 2019

Suslik
Рекомендую попробовать дисперсию по коду ниже, мои эксперименты привели к более красивому результату, чем просто три сэмпла r,g,b смещать (в коде может быть ошибка, переименовывал и зачищал, чтоб понятнее было).

  uv = distortion.xy + distortionlen.xy * 0.0;
  disp = Texture1.Sample(Sampler1, uv).xyz;
  color.xyz = disp.xyz * float3(0.0, 0.0, 1.0);

  uv = distortion.xy + distortionlen.xy * 0.25;
  disp = Texture1.Sample(Sampler1, uv).xyz;
  color.xyz += disp.xyz * float3(0.0, 1.0, 1.0);

  uv = distortion.xy + distortionlen.xy * 0.5;
  dispX.xyz = Texture1.Sample(Sampler1, uv).xyz;
  color.xyz += disp.xyz * float3(1.0, 1.0, 0.0);

  uv = distortion.xy + distortionlen.xy * 0.75;
  disp.xyz = Texture1.Sample(Sampler1, uv).xyz;
  color.xyz += disp.xyz * float3(1.0, 0.0, 0.0);
  color.xyz *= 0.5;
#2211
13:00, 13 июня 2019

BorisV
да, так можно делать, но это — на одну выборку больше. можно даже в общем случае расписать для произвольного количества выборок, всё определяется бюджетом производительности.

#2212
16:01, 13 июня 2019

Suslik
Да не в скорости дело, тут просто гораздо натуральнее смотрится, проверял на дисперсии для воды, отказавшись от триплета. Просто попробуйте.

#2213
15:55, 11 окт. 2019

придумал алгоритм, который позволяет скрыть тайлинг за 3 выборки. наверное, кто-то его и до меня изобрёл, но я не встречал: https://www.shadertoy.com/view/tsVGRd
Изображение

Страницы: 1143 144 145 146 147 148
АртФорумОбщее