San
SSGI без репроекции?
BingoBongo
Почему же? SSLR и SSGI берут финальную картинку с прошлого кадра + репроекция. Т.е. получается мультибаунс.
Правда есть косяки при перемещении камеры. При вращении - все ок.
San
Мне сначала показалось, что она есть, потом - что ее нет ) Но Суслик писал, что без репроекции делает https://www.youtube.com/watch?v=OPFvcsQAKjc . С ней шум намного проще убирать. Хотя все равно прикольно: в моих старых попытках, по-моему, даже с репроекцией сильнее "шумело", чем у тебя при равных фпс.
BingoBongo
Ну у меня просто ремапятся UV предыдущего кадра, чтобы не было отставания. Т.е. такая игрушечная репроекция.
Шума относительно мало из-за использования мипов. Если всегда читать с нулевого лода, то будет сильно шумнее.
Зато с мипами появляется другая проблема - на менее детальных лодах очень заметны переходы между текселями. Выглядит как чередующееся сильное изменение яркости при небольшом вращении/перемещении камеры.
Заметно в первую очередь в SSLR, при большом roughness (т.к. читаются очень мелкие мипы). Возможно, это побеждается снэппингом UV по аналогии с ortho shadow mapping.
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;
BorisV
да, так можно делать, но это — на одну выборку больше. можно даже в общем случае расписать для произвольного количества выборок, всё определяется бюджетом производительности.
Suslik
Да не в скорости дело, тут просто гораздо натуральнее смотрится, проверял на дисперсии для воды, отказавшись от триплета. Просто попробуйте.
придумал алгоритм, который позволяет скрыть тайлинг за 3 выборки. наверное, кто-то его и до меня изобрёл, но я не встречал: https://www.shadertoy.com/view/tsVGRd
Suslik
once there was an explosion
Дементоры? Реально в 3д на частицах?
Suslik
Будет океаническая пена?
Che@ter
gpu particles. целью стояло примотать наш графический редактор шейдеров не только к материалам, но и к апдейту частиц, потому что он тоже считается шейдером. 50k частиц 0.5ms на GT750
San
> once there was an explosion
да, именно death stranding меня окончательно перевалил через порог терпения. давно уже планировал это реализовать, но всё не решался.
Тема в архиве.