2014-01-16 212 views
3

因此,我將紋理傳遞給片段着色器,並且我希望在其上覆蓋具有50%alpha的顏色。我有一半的工作,但原來的紋理失去了它的阿爾法。WebGL/three.js片段着色器 - 用alpha透明顏色覆蓋alpha透明紋理

請參見:

uniform sampler2D texture; 
varying vec2 vUv; 

void main() { 
    vec4 tColor = texture2D(texture, vUv); 

    vec4 color = vec4(1.0, 0.0, 0.0, 0.5); 
    gl_FragColor = vec4(mix(tColor.rgb, color.rgb, color.a), 1.0); 
} 

很明顯這裏,在gl_FragColor紋理的alpha不考慮,但我不知道如何整合它。

回答

3
gl_FragColor = vec4(mix(tColor.rgb, color.rgb, color.a), 1.0); 

你正在傳遞,1.0最後一個參數是alpha,而你硬編碼它到1

+0

哦球。這是我想要的:'gl_FragColor = vec4(mix(tColor.rgb,color.rgb,color.a),tColor.a);' – user2994359

相關問題