当我阅读此代码时,我正在阅读OpenGL ES 2着色语言规范(PDF):
invariant varying mediump vec3 Color;
我认为理解不变性概念,但“不变的变化”的含义对我来说似乎很令人费解。
有人可以向我解释这个有用的含义和原因吗?
答案 0 :(得分:1)
invariant
是一个关键字,用于通知着色器优化器优化器应记住,在两个不同时间内相同输入的变量输出应该相同。基于许多因素,一些优化通常在不同时间给出不同的结果。此关键字将确保优化器避免在此特定变量中使用这些技术。
答案 1 :(得分:0)
invariant
并不代表const
。 invariant
是导致生成该值的表达式将如何编译的属性。
varying
是一个属性,用于指定在 VS完成执行后该值会发生什么。 varying
变量将传递给光栅化器进行插值。
一个控制数据如何输入变量。另一个控制该变量中的数据最终到达的位置。他们正交,而不是反义词。