是否可以在WebGL中实现延迟着色?

时间:2012-03-22 10:31:36

标签: webgl

据我所知,实现延迟着色的唯一方法是使用MRT并绑定不同的纹理以将数据存储到颜色附件。问题是WebGL specifications定义了单个颜色附件:COLOR_ATTACHMENT0。是否可以在WebGL中实现具有此限制的延迟着色?

1 个答案:

答案 0 :(得分:2)

您可以通过渲染到纹理来实现延迟着色,但是您需要为每个传递重绘所有几何体(漫反射,深度,诸如此类),或者想出一种方法将所需的所有信息存储到单个RGBA纹理中。然后在着色器中对这些纹理进行采样以生成最终结果。

您可能希望使用浮动纹理的扩展,但不保证可以在任何地方使用。

正如您可能理解的那样,延迟在WebGL中不是最佳的:)