以下属性似乎很好:
attribute vec4 coord;
以下属性抱怨属性“不能是bool或int”:
attribute int ty;
以下属性会引发“语法错误”:
attribute uint ty;
这些结果似乎很随意。我找不到顶点着色器属性的有效类型列表。 在WebGL中属性类型是否有效的规则是什么?
答案 0 :(得分:5)
OpenGL ES Shading Language 1.00 specification, page 36, section 4.3.3: "Attribute":
attribute
限定符用于声明基于每个顶点从OpenGL ES传递到顶点着色器的变量。在顶点着色器以外的任何类型的着色器中声明属性变量是错误的。就顶点着色器而言,属性变量是只读的。属性变量的值通过OpenGL ES顶点API或作为顶点数组的一部分传递给顶点着色器。它们将顶点属性传递给顶点着色器,并且预计会在每个顶点着色器运行时更改。attribute
限定符只能用于数据类型float
,vec2
,vec3
,vec4
,mat2
,{{ 1}}和mat3
。属性变量不能声明为数组或结构。