2012-03-22 3 views
2

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

ответ

2

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

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

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

Смежные вопросы