Opengl es 我在WebGL中的第一个着色器

Opengl es 我在WebGL中的第一个着色器,opengl-es,glsl,webgl,Opengl Es,Glsl,Webgl,我正在WebGL中编写我的第一个着色器。我想知道GLSL语言是否有办法计算属性或统一是否为null。根据规范,它不支持执行以下操作 if (attributeX) { dothis(); } else{ dothat(): } 我认为为每种情况编写bool属性都是浪费 另一个问题:如果不将制服或属性传递给着色器,渲染期间会发生什么 谢谢 GLSL没有空值的概念,在这种情况下使用bool统一是可以的 如果你不通过制服,它们会得到零初始化,对于属性,我认为你会从它们那里得到垃圾。另一种选择是

我正在WebGL中编写我的第一个着色器。我想知道GLSL语言是否有办法计算属性或统一是否为null。根据规范,它不支持执行以下操作

if (attributeX) {
dothis();
}  
else{ 
dothat():
}
我认为为每种情况编写bool属性都是浪费

另一个问题:如果不将制服或属性传递给着色器,渲染期间会发生什么


谢谢

GLSL没有空值的概念,在这种情况下使用bool统一是可以的


如果你不通过制服,它们会得到零初始化,对于属性,我认为你会从它们那里得到垃圾。

另一种选择是使用多个着色器,并根据情况使用它们。这里的目标是从着色器中删除if语句,使它们更有效。

不,您不会得到垃圾。你得到了属性的常量值(你可以用glVertexAttrib设置它),如果你不设置它,你会得到默认的零初始化值,但是,我仍然看到实现崩溃或者产生垃圾。