Поводный эффект по мешу воды.

Шейдеры и все-все-все.

Поводный эффект по мешу воды.

Сообщение kripto289 01 июл 2015, 02:34

День добрый.
Кто-нибудь знает методы или алгоритмы, как строится подводный эффект как тут?

Изображение

Туман и искажения отсекаются выше воды. Сколько не искал решений, в том числе и не на юнити, ничего кроме резкого затуманивания всего экрана при погружении в воду не нашёл :(
Аватара пользователя
kripto289
UNIверсал
 
Сообщения: 476
Зарегистрирован: 30 сен 2013, 03:30
Откуда: Екатеринбург
  • Сайт

Re: Поводный эффект по мешу воды.

Сообщение waruiyume 01 июл 2015, 03:12

    Подходит только если вода шевелится по одной оси
  1. Создаёте меш из, скажем, 1000 вершин.
  2. Ставите меш так, чтобы н находился внутри клип плана камеры
  3. Находите точку пересечения с плоскостью
  4. Ставите вершину в эту точку
  5. Переставляете точку алгоритмом искажающим воду
  6. ?????????????????
  7. Profit

  1. Выворачиваете воду наизнанку
  2. Рендерите ортогональной камерой из нижней границы клип плана камеры(нужна только глубина)
  3. Засовываете полученную текстуру в шейдер
  4. Вычисляете, находится ли текущий фрагмент дальше того, что в тек(фрагмент должен быть в системе координат камеры из 2)
  5. ?????????????????
  6. Profit

Ещё можно попробовать опустить вниз, те вертексы воды, которые находятся сзади клип плана.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Поводный эффект по мешу воды.

Сообщение kripto289 02 июл 2015, 11:30

waruiyume писал(а):
    Подходит только если вода шевелится по одной оси
  1. Создаёте меш из, скажем, 1000 вершин.
  2. Ставите меш так, чтобы н находился внутри клип плана камеры
  3. Находите точку пересечения с плоскостью
  4. Ставите вершину в эту точку
  5. Переставляете точку алгоритмом искажающим воду
  6. ?????????????????
  7. Profit

  1. Выворачиваете воду наизнанку
  2. Рендерите ортогональной камерой из нижней границы клип плана камеры(нужна только глубина)
  3. Засовываете полученную текстуру в шейдер
  4. Вычисляете, находится ли текущий фрагмент дальше того, что в тек(фрагмент должен быть в системе координат камеры из 2)
  5. ?????????????????
  6. Profit

Ещё можно попробовать опустить вниз, те вертексы воды, которые находятся сзади клип плана.


Увы, у меня меш двигается не только по высоте, ещё и сдвигается при сильных волнах по другим осям.

Я ещё придумал не плохое решение. Я могу создать камеру для рендера только воды в Vertex lit (что бы отсечь всё, и оставить изменение вершин),
У меня есть такая картинка плейна:
Изображение
Внутри заштрихованная область должна быть под водой, что логично.
В принципе, наверное в шейдере можно как-то залить область внутри зелёной границы и сделать типо маски на этой основе.
Но вот беда, я не как это сделать. :(
Аватара пользователя
kripto289
UNIверсал
 
Сообщения: 476
Зарегистрирован: 30 сен 2013, 03:30
Откуда: Екатеринбург
  • Сайт


Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2