Возможно ли реализовать отложенное затенение в WebGL? - PullRequest
2 голосов
/ 22 марта 2012

Как я понимаю, единственный способ реализовать отложенное затенение - это использование MRT и привязка различных текстур для хранения данных в цветовых вложениях.Проблема в том, что спецификации WebGL определяют одно цветовое вложение: COLOR_ATTACHMENT0.Можно ли вообще реализовать отложенное затенение в WebGL с этим ограничением?

1 Ответ

2 голосов
/ 22 марта 2012

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

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

Как вы, наверное, понимаете, deferred не является оптимальным в WebGL:)

...