Я пытаюсь создать эффект толщины поверхности воды с помощью вершинно-фрагментного шейдера.
Я нахожусь в трехмерной игровой среде, но это вид с прокруткой, так что вид "2D".
Вот хороший урок по созданию такого эффекта в реальном 2D с использованием фрагментного шейдера.
Но это не может быть использовано в моем случае, я думаю. На данный момент у меня есть только самолет, где я применяю рефракцию.
И я хочу применить эффект толщины воды. Но я не знаю, как это сделать.
Я не пытаюсь создать некоторую деформацию / смещение воды, используя вершину на данный момент, это не главное.
Я не знаю, возможно ли это с помощью простого квадроцикла, возможно, мне следует использовать такой объект, как этот.
Вот несколько примеров.
Я понятия не имею, как создать этот эффект.
Большое спасибо !
[ РЕДАКТИРОВАТЬ ] Добавлен эффект воды Rayman, чтобы лучше справиться с эффектом.
Ответы:
Имейте значение в шейдере, которое определяет влажность. Меньше 0 означает воздух, больше 1 означает воду, а между ними означает мениск.
Вот некоторый псевдокод:
Это самое простое, что я могу сделать. Если бы это был я, я бы сделал что-то более сложное для сглаживания мениска и применил бы там больше рефракции или чего-то еще, но я не могу сказать вам, что, потому что это потребовало бы эстетических итераций. Также я бы подкрашивал и размывал образец воды. Но я оставлю все это на ваше усмотрение.
источник