WebGL顶点着色器属性的有效类型是什么?

时间:2017-10-03 20:48:33

标签: opengl-es webgl vertex-shader

以下属性似乎很好:

attribute vec4 coord;

以下属性抱怨属性“不能是bool或int”:

attribute int ty;

以下属性会引发“语法错误”:

attribute uint ty;

这些结果似乎很随意。我找不到顶点着色器属性的有效类型列表。 在WebGL中属性类型是否有效的规则是什么?

1 个答案:

答案 0 :(得分:5)

OpenGL ES Shading Language 1.00 specification, page 36, section 4.3.3: "Attribute"

  

attribute限定符用于声明基于每个顶点从OpenGL ES传递到顶点着色器的变量。在顶点着色器以外的任何类型的着色器中声明属性变量是错误的。就顶点着色器而言,属性变量是只读的。属性变量的值通过OpenGL ES顶点API或作为顶点数组的一部分传递给顶点着色器。它们将顶点属性传递给顶点着色器,并且预计会在每个顶点着色器运行时更​​改。 attribute限定符只能用于数据类型floatvec2vec3vec4mat2,{{ 1}}和mat3 。属性变量不能声明为数组或结构。