我使用这个片段着色器:的OpenGL - GLSL着色器,alpha混合
#version 150 core
uniform sampler2D texture1;
in vec4 pass_Color;
in vec2 pass_TextureCoord;
out vec4 out_Color;
void main(void) {
out_Color = pass_Color;
// Override out_Color with our texture pixel
out_Color = texture(texture1, pass_TextureCoord) * pass_Color ;
}
我们pass_Color我举一个RGBA值。我改变了alpha值。纹理是rgba,也是一个PNG文件。我使用混合模式GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA。
现在的问题是,我通过在阿尔法值不会影响任何东西..
,我希望它..
究竟是什么你想要它影响(它看起来像你期望融合发生在你的片段着色器通过设置out_Color两次......)?顺便说一下(这是用于混合的值,而不是pass_Color.a),它真的是您感兴趣的纹理(texture1,pass_TextureCoord).a * pass_Color.a的值。 –
你是什么意思?在纹理()调用.a不编译 – Gopgop
我的意思是只有alpha分量影响混合。并且您将纹理的alpha分量乘以pass_Color.a的alpha分量。这是两者相乘的结果,它决定了你的片段如何混合。 –