0

OpenGL中的不变性和多边形偏移有什么区别。我对两者都感到困惑。因为两者都与低进动问题有关。

4

1 回答 1

2

从 GLES 2.0 规范:

[...] 方差是指从不同着色器中的相同表达式获得不同值的可能性。例如,假设两个顶点着色器各自在两个着色器中使用相同的表达式设置 gl_Position,并且当两个着色器运行时,该表达式的输入值相同。

由于两个着色器的独立编译,有可能在两个着色器运行时分配给 gl_Position 的值并不完全相同。在此示例中,这可能会导致多通道算法中的几何对齐问题。一般来说,着色器之间的这种差异是允许的。为了防止变化,可以将变量单独或使用全局设置声明为不变的。

换句话说,invariant是gles为你(程序员)提供的一种机制,告诉实现,当某个shader代码被编译时,每次生成的gpu代码必须是相同的。

多边形偏移,嗯,完全不相关。我建议您参考官方常见问题解答https://www.opengl.org/archives/resources/faq/technical/polygonoffset.htm

于 2013-03-07T13:44:54.190 回答