我在OpenGL中遇到了纹理透明的问题。如下图所示,效果并不理想。值得注意的是,黑色实际上是我用来清除屏幕的ClearColor。
我使用以下代码实现混合:
这是一个线框模式下的场景截图,如果有助于绘制顶点,请参考: 如果需要其他任何东西,请随时提出,我会添加它。
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
这是我的片段着色器:
#version 330 core
in vec2 tex_coords;
out vec4 color;
uniform vec4 spritecolor;
uniform sampler2D image;
void main(void)
{
color = spritecolor * texture(image, tex_coords);
}
这是一个线框模式下的场景截图,如果有助于绘制顶点,请参考: 如果需要其他任何东西,请随时提出,我会添加它。