Chrome 22 と Firefox 15 の両方でこの WebGL フラグメント シェーダーをコンパイルすると、次のようになります。
precision mediump float;
uniform vec2 u_resolution;
uniform sampler2D u_tex;
void main() {
vec2 texCoord = gl_FragCoord.xy / u_resolution;
vec4 floatColor = texture2D(u_tex, texCoord);
mat3 outerMat = outerProduct(floatColor.rgb,floatColor.rgb);
gl_FragColor = vec4(outerMat[0], 1);
}
次のエラーが表示されます。
ERROR: 0:8: 'outerProduct' : no matching overloaded function found
ERROR: 0:8: '=' : cannot convert from 'const mediump float' to '3X3 matrix of float'
OpenGL ES 2.0 GLSL 仕様はそれmat3 outerProduct(vec3,vec3)
がサポートされていることを示しており、WebGL 仕様は ES シェーダーを受け入れると述べているため、何が問題なのかわかりません。outerProduct は WebGL フラグメント シェーダーでサポートされていませんか、それとも間違っていますか?