GLSL для простых эффектов водной поверхности - PullRequest
11 голосов
/ 16 февраля 2011

Я ищу несколько советов о том, как реализовать простые эффекты на поверхности воды в OpenGL ES 2.0.Ничего особенного, как отражение или преломление, только основной волновой / волновой эффект, который модулируется во времени.Производительность имеет решающее значение.Я предполагаю, что это будет лучше всего сделано в шейдере.

Есть ли какие-нибудь советы о том, как лучше всего справиться с этим?

Ответы [ 2 ]

10 голосов
/ 07 марта 2011

Блог Адриана Боинга содержит пример кода GL, сопровождаемый четкими объяснениями, для ряда эффектов, включая пульсацию.

10 голосов
/ 16 февраля 2011

Существует старая хитрость для моделирования волн и волн на воде с использованием минимальных усилий с точки зрения уравнений. Он используется во многих местах, и я не могу найти оригинал, но вы можете взять его, например, с здесь .

Вам понадобятся 2 текстуры, каждая из которых содержит только высоту. Моделирование выполняется путем пинг-понга между ними (каждый раз используя один источник и второй пункт назначения).

При рендеринге может потребоваться вывести нормаль поверхности из соседних высот.

...