什么是OpenGL着色器语言中的不变量

时间:2016-09-12 02:15:29

标签: opengl-es shader invariants

当我阅读此代码时,我正在阅读OpenGL ES 2着色语言规范(PDF):

      invariant varying mediump vec3 Color;

我认为理解不变性概念,但“不变的变化”的含义对我来说似乎很令人费解。

有人可以向我解释这个有用的含义和原因吗?

2 个答案:

答案 0 :(得分:1)

invariant是一个关键字,用于通知着色器优化器优化器应记住,在两个不同时间内相同输入的变量输出应该相同。基于许多因素,一些优化通常在不同时间给出不同的结果。此关键字将确保优化器避免在此特定变量中使用这些技术。

答案 1 :(得分:0)

invariant并不代表constinvariant是导致生成该值的表达式将如何编译的属性。

varying是一个属性,用于指定在 VS完成执行后该值会发生什么。 varying变量将传递给光栅化器进行插值。

一个控制数据如何输入变量。另一个控制该变量中的数据最终到达的位置。他们正交,而不是反义词。