没有多个缓冲区附件的较大GLSL片段输出

时间:2012-02-25 02:32:56

标签: opengl-es glsl webgl fragment-shader fbo

有没有办法发射更多,例如。如果实现不支持多个FBO缓冲区附件或“深层”缓冲区格式,那么来自GLSL片段着色器的4个字节?

例如,当使用WebGL或OpenGL ES时,如果部分计算必须在多次传递中重复以获得更多输出通道,则限制为每个片段的RGBA输出会使复杂计算效率极低。

2 个答案:

答案 0 :(得分:1)

您输出的内容不是以字节为单位,而是以组件来衡量。每个图像只能存储四个组件,因此每个输出图像只能输出四个组件。

如果您的硬件可以输出更多数据,那么它将允许您输出更多图像。它可以通过扩展来揭示它。如果没有这样的扩展,那么硬件就不能,因此你也不能。

请注意,NVIDIA有such an extension,因此他们的ES启用硬件可能会这样做。

答案 1 :(得分:-1)

不,没有办法比普通频道更有效地输出。这意味着需要在多个通道中完成具有更多输出的计算。具有多个输出的计算共享昂贵的中间结果可能会将中间结果计算为之前的额外通过,但开销很可能会消耗所获得的任何性能优势。