2012-10-01 48 views
1

當兩者的Chrome 22和Firefox 15編譯這個WebGL的片段着色器:WebGL片段着色器是否支持outerProduct?

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着色器,所以我不確定發生了什麼問題。 WebGL片段着色器中是否不支持outerProduct,或者我做錯了什麼?

回答

0

嘗試mat3 outerMat = outerProduct(vec3(floatColor.rgb),vec3(floatColor.rgb));

擴大,也許給它一個明確的類型比使用.rgb更好。

相關問題