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

world space uv поверхности воды в screen space постэффекте

#0
23:48, 19 апр. 2019

Добрый день.
Продолжаю ковырять воду и сделал объёмное освещение с тенями (реймарчинг в экранном пространстве)
Теперь пытаюсь получить мировую проекцию воды в экранном пространстве. (для корректного расчета волн, глубины и отсечения света)

Нашёл похожие идеи с screen space grid, но у меня нет вершин, да и не нужны они мне, я так полагаю.
Придумал некоторый костыль. Рендерить буфер глубины только воды в отдельную текстуру, и из неё в дальнейшем можно восстановить мировую uv в скрин спейсе.
Хотя буфер глубины для воды мне может пригодиться в некоторых случаях, считаю это неудачной идеей.
Уверен простой математикой и матрицами тут можно разрулить, но в подобной математике я не силен и не смог ничего путного придумать.


#1
(Правка: 2:15) 2:12, 20 апр. 2019

А чего id материала не хранить? Если у deffered shading, то выделяешь несколько бит по них, и тогда тебе не нужно отдельную текстуру с глубиной для воды хранить.

#2
2:54, 20 апр. 2019

IBets
> А чего id материала не хранить? Если у deffered shading, то выделяешь несколько
> бит по них, и тогда тебе не нужно отдельную текстуру с глубиной для воды
> хранить.
Двиг unity, менять таргеты дефферед шейдинга нельзя. К тому же юзаю forward режим.

#3
(Правка: 6:29) 6:28, 20 апр. 2019

Kripto289
Ну если воду рендерит твой шейдер, то без глубины никак не восстановить позицию пикселя в WorldSpace. Можешь попробовать сразу позиции сохранить, но хз как отразится на пропускной способности

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