当我有一个具有透明度(和一个 alpha 通道)的纹理时,透明区域似乎作为具有值(0、0、0、1)的 vec4s 通过。丢弃任何 alpha 值为 0 的颜色很容易(显然 0 仍然存在......)。但这也导致了 0 到 1 之间的透明度问题。一切都显示为完全不透明,我无法想象是什么原因造成的。
这是我的着色器的样子。我一直在玩它,但这是我目前正在处理的一个。只需将 alpha 值始终设为 0.5f,看看会发生什么。仍然完全不透明:
#version 150 core
uniform sampler2D sampler;
in vec4 pass_Color;
in vec2 pass_TextureCoord;
in float pass_alpha;
out vec4 frag_Color;
void main(void) {
frag_Color = pass_Color;
vec3 color = texture2D(sampler, pass_TextureCoord);
frag_Color = vec4(color, pass_alpha);
}