我有一个纹理传递到片段着色器中,我想在其上方叠加一种50%不透明度的颜色。我已经让它部分工作了,但原始纹理失去了它的透明度。
参考:
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
中没有考虑纹理的透明度,但我不确定如何集成它。
gl_FragColor = vec4(mix(tColor.rgb, color.rgb, color.a), tColor.a);
- user2994359