これは、3Dオブジェクトを描画した後に正投影をオンにする方法です。
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,Screen_Width,Screen_Height,0,0,1);
そして、これは私が3Dオブジェクトを描画した後、オルソでテクスチャをブレンドして描画する方法です。
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glColor4f(1,1,1,1);
glBindTexture(GL_TEXTURE_2D,Texture1);
glBegin(GL_QUADS);
//draw 1st quad
glEnd();
glBindTexture(GL_TEXTURE_2D,Texture2);
glBegin(GL_QUADS);
//draw 2nd quad
glEnd();
glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);
Quad1はQuad2より少し大きく、Quad2の一部をカバーしています。両方のテクスチャには、RGBAとしてのアルファチャネルがあります。
問題は、Quad1とQuad2が3Dオブジェクトをアルファで正しくオーバーレイしますが、Quad1のアルファがQuad2の上にある場合は機能しないことです。RGBのみのようにQuad2の上に描画します。
どうすればこの問題を解決できますか?