2013-03-07 62 views
0

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

+1

你是什么意思的“不变性”?不变性与精度无关。 – 2013-03-07 11:00:51

+0

非常感谢@NicolBolas我们在opengl es 2.0中有一个关键字不变。它用于保持来自顶点着色器(变量变量)的重复调用输出的相同进动。 – Megharaj 2013-03-07 12:16:46

回答

2

从GLES 2.0规范:

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

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

换句话说,不变的是GLES你(程序员)提供了一种机制来告诉实现,当某个着色器代码进行编译,生成的代码的GPU必须相同每次

多边形偏移是,ummm,完全不相关。我向你推荐官方FAQ https://www.opengl.org/archives/resources/faq/technical/polygonoffset.htm