什么是 OpenGL 着色器语言中的不变量变化
What is an invariant varying in OpenGL Shader Language
我正在阅读 OpenGL ES 2 着色语言规范 (PDF),当我阅读这段代码时:
invariant varying mediump vec3 Color;
我觉得理解了不变性的概念,但是"invariant varying"的意思让我觉得很费解。
有人可以向我解释一下它的含义以及为什么有用吗?
invariant
并不代表 const
。 invariant
是关于如何编译.
导致生成该值的表达式的 属性
varying
是一个 属性,指定在 VS 完成执行后 值会发生什么。 varying
变量被传递给光栅器进行插值。
一个控制如何将数据输入变量。另一个控制该变量中的数据最终去向。它们是 正交的 ,而不是对立的。
invariant
是一个关键字,用于通知着色器优化器,优化器应牢记,同一输入的变量在 2 个不同时间的输出应该相同。基于许多因素,一些优化通常会在不同的时间给出不同的结果。这个关键字将确保优化器避免在这个特定变量中使用这些技术。
我正在阅读 OpenGL ES 2 着色语言规范 (PDF),当我阅读这段代码时:
invariant varying mediump vec3 Color;
我觉得理解了不变性的概念,但是"invariant varying"的意思让我觉得很费解。
有人可以向我解释一下它的含义以及为什么有用吗?
invariant
并不代表 const
。 invariant
是关于如何编译.
varying
是一个 属性,指定在 VS 完成执行后 值会发生什么。 varying
变量被传递给光栅器进行插值。
一个控制如何将数据输入变量。另一个控制该变量中的数据最终去向。它们是 正交的 ,而不是对立的。
invariant
是一个关键字,用于通知着色器优化器,优化器应牢记,同一输入的变量在 2 个不同时间的输出应该相同。基于许多因素,一些优化通常会在不同的时间给出不同的结果。这个关键字将确保优化器避免在这个特定变量中使用这些技术。