waruiyume писал(а):Подходит только если вода шевелится по одной оси
- Создаёте меш из, скажем, 1000 вершин.
- Ставите меш так, чтобы н находился внутри клип плана камеры
- Находите точку пересечения с плоскостью
- Ставите вершину в эту точку
- Переставляете точку алгоритмом искажающим воду
- ?????????????????
- Profit
- Выворачиваете воду наизнанку
- Рендерите ортогональной камерой из нижней границы клип плана камеры(нужна только глубина)
- Засовываете полученную текстуру в шейдер
- Вычисляете, находится ли текущий фрагмент дальше того, что в тек(фрагмент должен быть в системе координат камеры из 2)
- ?????????????????
- Profit
Ещё можно попробовать опустить вниз, те вертексы воды, которые находятся сзади клип плана.
Увы, у меня меш двигается не только по высоте, ещё и сдвигается при сильных волнах по другим осям.
Я ещё придумал не плохое решение. Я могу создать камеру для рендера только воды в Vertex lit (что бы отсечь всё, и оставить изменение вершин),
У меня есть такая картинка плейна:
Внутри заштрихованная область должна быть под водой, что логично.
В принципе, наверное в шейдере можно как-то залить область внутри зелёной границы и сделать типо маски на этой основе.
Но вот беда, я не как это сделать.