Сообщение от dsd
Если ввести переменную связанную с глубиной, т.е. Фактически высота воды — высота террэйна в данной точке, и найти ближайшую точку пересечения плоскости воды с террэйном(для изменения направления распространения волны), то можно организовать практически правильный прибой(изменение волн по мере приближения к берегу). Надо найти таки математическую модель воды  походу довольно легко можно организовать интересную в игровом плане воду.
|
Прибои и т.п. реализуются очень просто исходя из шейдеров. Представь у тебя есть сетка воды, и есть уровень. Один раз в начале анализируешь уровень (с ландшафтом просто, сложнее с другой медией), находишь вершины где должны быть прибои и т.п. это может быть динамичный параметр, и записываешь его в вершину. С нормальными движками, в таком случае заюзать нужно кастомный класс вершин, но в том же Xors3D можно заюзать один из каналов цвета вершины.
Это делается один раз лишь, можно даже сделать предрасчётом в редакторе, и сохранить в файл, и грузить из файла инфу, чтобы не делать большие расчёты при загрузке игры.
Далее, всё очень просто, в вершинном шейдере делаем все расчёты волн, плюс учитывая один из каналов цвета у вершины который мы сохранили, мы знаем где прибой, и таким образом можно сделать при повышении волны в том месте, повышать на 50% выше. Плюс - это как маска для пены.
Всё просто на деле, но нужно найти смекалку, сделать маленькое исследование и затем тупо реализовать. Многим это проблематично, т.к. они не могут найти решения до реализации, и начинают много эксперементировать..
Также, используя depth карту, можно реализовать плавный переход воды:
