0
我不能編譯以下片段着色器:簡單vec4.x的比較> 5
uniform vec3 color;
uniform sampler2D tDiffuse;
varying vec2 vUv;
void main() {
vec4 texel = texture2D(tDiffuse, vUv);
vec3 luma = vec3(0.299, 0.587, 0.114);
float v = dot(texel.xyz, luma);
if (texel.x > 5)
gl_FragColor = vec4(v * color, texel.w);
else
gl_FragColor = texel;
}
如果更改(texel.x> 5)〜(1> 5)能正常工作。但不知何故texel.x會導致編譯錯誤。有沒有人看到這個代碼顯而易見的問題?
我不知道!你每天學習新的東西。謝謝 – 2014-08-29 16:14:02
完全OpenGL中的GLSL會進行隱式轉換。那麼,原始代碼將是合法的。在OpenGL ES中,這些運算符沒有隱式轉換。 – 2014-08-30 04:00:22