Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在用 WebGL 编写我的第一个着色器。我想知道 GLSL 语言是否有任何方法来评估属性或制服是否为空。根据规格,它不支持做类似的事情
if (attributeX) { dothis(); } else{ dothat(): }
而且我认为为每种情况编写一个 bool 属性是一种浪费,这将是一种浪费。
另一个问题:当您不将制服或属性传递给着色器时,在渲染过程中会发生什么?
谢谢!
GLSL 没有 null 的概念,在这种情况下使用 bool 统一就可以了。
如果你不通过制服,它们会被零初始化,对于属性,我认为你会从中得到垃圾。
另一种选择是拥有多个着色器并根据情况使用它们。这里的目标是消除着色器中的if语句,使它们更有效率。