假设我有一个几何着色器,它gl_Position从gl_in[].gl_Position. 如果之前的流水线阶段(顶点和镶嵌)没有写入它们的out gl_Position,整个流水线的动作是否仍然保持良好定义?
或者换句话说gl_Position,在几何着色器完成之前, 的值是否对 GL 的功能有任何影响?如果没有,这意味着我可以简单地将它用作传递数据的额外插槽,而无需在阶段之间进行任何特殊的空间解释,对吗?
(问题假设 OpenGL 4.5 正向配置文件。)
gl_Position只需要由渲染管道中的最终顶点处理阶段(VS、曲面细分和 GS)编写。gl_Position因此,如果您有一个活动的 GS,则连接到它的 VS根本不需要写入。或者它可以在其中放入任意vec4数据。
请注意,gl_Position无论最终的顶点处理阶段是什么,仍然需要编写它。当然,假设您想要光栅化。不,这并不是轻率。你可能正在做变换反馈。
如果没有,这意味着我可以简单地将它用作传递数据的额外插槽,而无需在阶段之间进行任何特殊的空间解释,对吧?
如果存在 GS,则先前着色器阶段的所有输出都不会具有“任何特殊的空间解释”。gl_Position在这方面并不特别。
插值是光栅化器的一个功能,发生在顶点处理之后。事实上,在 GLSL 4.30+ 中,片段着色器输入上的插值限定符是唯一重要的。它们甚至不再用于接口匹配。
| 归档时间: |
|
| 查看次数: |
1365 次 |
| 最近记录: |