Искажение / Вода в WebGL - PullRequest
       13

Искажение / Вода в WebGL

1 голос
/ 09 марта 2011

Я относительно новичок в WebGL, и в этом отношении тоже OpenGL, но в последние дни я посвятил большую часть своего времени написанию небольшой игры для него.Однако, когда я хотел реализовать что-то вроде тепловых волн или каких-либо искажений, я застрял.

Теперь я могу создать текстурную рябь, используя фрагментный шейдер, но мне кажется, что я что-то упускаю, когда дело доходит до искажения содержимого позади объекта.Есть ли способ получить цвет пикселя, который уже был отрисован в фрагментном шейдере?

Я попытался отрисовать текстуру, а затем получить текстуру объекта, но она появляется, если выВыберите для рендеринга вашей сцены в текстуру, вы не можете отрендерить ее также на экране.И, кроме того, если вы хотите визуализировать текстуру, эта текстура должна быть степенью двойки (к которой не подходят многие разрешения экрана)

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 09 марта 2011

Вам придется рендерить текстуру и рисовать эту текстуру на экране, искажая ее.Кроме того, нет требования, чтобы объекты кадрового буфера имели степень двойного размера в OpenGL ES 2.0 (который является графическим API, используемым WebGL).Но текстуры не-степени двух не могут иметь мипмапинга или обтекания текстур.

0 голосов
/ 20 августа 2011

Я полагаю, что вы можете изменять отдельные пиксели холста напрямую . Это может быть хорошим способом волнистости небольшой области, но не может быть ускорен GPU.

...