0

我正在使用这个片段着色器:

#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  ;
}

现在通过_Color,我给出一个rgba值。我改变了阿尔法值。纹理也是 rgba,它是一个 PNG 文件。我使用混合模式 GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA。

现在的问题是我传入的 alpha 值不会影响任何东西..

我想要它..

4

1 回答 1

0

我最终这样做了:

vec4 tex =  texture(texture1, pass_TextureCoord);
out_Color = vec4(tex.r*(pass_Color[0]),tex.g*(pass_Color[1]),tex.b*(pass_Color[2]),tex.a*(pass_Color[3])) ;

工作得很好!

于 2013-08-24T20:01:43.820 回答