你有更多的选择:
的 多次通过 强>
这个通常首先将几何体渲染成深度和“颜色”缓冲区,然后在下一遍中使用它作为输入纹理来渲染覆盖整个屏幕/视图的单个矩形。 的 延迟着色 强> 是一个这样的例子,但有很多其他效果的实现不是延迟着色相关的。这是一个多遍的例子:
在第一次通过时,行星和恒星和物质被渲染,第二次增加了大气层。
您可以通过混合或直接渲染来组合传递。直接渲染要求您渲染纹理每个传递并在最后一个渲染中渲染。混合正在改变每次传递中输出的颜色。
的 单程 强>
您所描述的更像是您应该将不同着色器编码为单片段着色器的函数...是的,如果它们兼容,您可以将更多着色器组合成单个着色器并将其结果与最终输出颜色组合。
大的着色器是一个性能打击,但我认为它仍然会比多次传球做同样快。
看看这个例子:
这个计算环境反射,光照,几何颜色,并将它们组合成单一输出颜色。
的 异国情调的着色器 强>
还有一些奇特的着色器可以解决像这样的管道限制:
哪些用于被认为无法在GL / GLSL管道中实现的内容。无论如何如果限制过于严格,你仍然可以使用计算着色器......