次の属性は罰金だ:WebGL頂点シェーダ属性の有効なタイプは何ですか?
attribute vec4 coord;
次の属性は、属性が「ブール値またはint型にすることはできません」と文句を言います:
次の属性は、「構文エラー」を訴えるattribute int ty;
:
attribute uint ty;
これらの結果は非常に恣意的です。頂点シェーダの属性に有効なタイプのリストが見つかりません。 属性タイプがWebGLで有効かどうかのルールは何ですか?
次の属性は罰金だ:WebGL頂点シェーダ属性の有効なタイプは何ですか?
attribute vec4 coord;
次の属性は、属性が「ブール値またはint型にすることはできません」と文句を言います:
次の属性は、「構文エラー」を訴えるattribute int ty;
:
attribute uint ty;
これらの結果は非常に恣意的です。頂点シェーダの属性に有効なタイプのリストが見つかりません。 属性タイプがWebGLで有効かどうかのルールは何ですか?
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
、mat3
、及びmat4
と共に使用することができます。属性変数は、配列または構造体として宣言することはできません。
参考チャートが役立つ場合があります。 [WebGLのためのもの](https://www.khronos.org/files/webgl/webgl-reference-card-1_0.pdf)と[これはWebGL2のためのものです](https://www.khronos.org /files/webgl20-reference-guide.pdf)。 WebGL1の場合は右側にあり、右側には「修飾子」があります。悲しいことに、WebGL2にはリストされていませんが、WebGL2はint、ivec2、ivec3、ivec4、uint、uvec2、uvec3、uvec4、およびすべての新しい非正方行列タイプを追加します – gman