1
我在OpenGL紋理透明度方面遇到麻煩。正如你在下面的圖片中看到的那樣,它並不完美。值得注意的是,黑色實際上是ClearColor,我用它來清除屏幕。OpenGL:透明紋理問題
我用下面的代碼來實現混合:
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);
}
這裏是線框模式場景的截圖,萬一它有助於繪製頂點:
如果需要其他東西,隨時問,我會添加它。
你必須先繪製不透明的物體。透明對象必須在後面繪製,按相機位置的相反距離排序。 (考慮深度測試) – Rabbid76
是的,它做到了!您能否將您的評論添加爲答案,以便我可以接受它? – AProgrammer