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