そのため、適用されたテクスチャの一部にアルファチャネルがある場合に、OpenGLで3Dモデルをレンダリングするための最良の方法を見つけようとしています。
デプスバッファを有効にして、3Dモデルのすべての三角形の描画を開始したときに、モデル内の別の三角形の前にある三角形を描画すると、それに到達したときに後ろの三角形がレンダリングされません。問題は、前の三角形がアルファ透明度を持ち、後ろの三角形まで透けて見えるはずなのに、後ろの三角形がまだレンダリングされていない場合です。
デプスバッファを無効にすると、その問題は解消されますが、三角形が不透明な場合でも、後でレンダリングすると、その背後にある三角形が上にレンダリングされるという明らかな問題が発生します。
たとえば、基本的にいくつかのコーンが互いに積み重ねられ、ベースが透明な松の木をレンダリングしようとしています。次の図は、デプスバッファが有効になっている場合に発生する問題を示しています。
透明な三角形の輪郭がどのように見えるかがわかります。
次の図は、デプスバッファが無効になっている場合の様子を示しています。
ここでは、ツリーの背面にある三角形の一部が、ツリーの残りの部分の前にどのようにレンダリングされているかを確認できます。
この問題に対処し、松の木を適切にレンダリングする方法はありますか?
PS私はすべてをレンダリングするためにシェーダーを使用しています。