glFrustum()
パースペクティブ モードを使用して 3D シーンをレンダリングしました。次に、2D オブジェクトを 3D シーン上に配置して、特定の 3D オブジェクトのラベルとして機能させます。gluProject()
2D ラベル オブジェクトを配置する位置を使用して 3D オブジェクトの 2D 位置を計算しました。glOrtho()
2D ラベル オブジェクトは、正投影モードを使用してレンダリングされます。これは完全に機能し、2D ラベル オブジェクトが 3D オブジェクトの上に移動します。
ここで、2D オブジェクトに az 値を与えて、深度バッファーを使用してシーン内の他の 3D オブジェクトの背後に隠すことができるようにします。2D オブジェクトに az 値を指定しましたが、深度バッファーによって非表示にする必要があることがわかっていますが、オブジェクトをレンダリングすると常に表示されます。
問題は、なぜ 2D オブジェクトがまだ表示されているのに非表示になっていないのかということです。
正射投影と遠近投影が互換性のない深度バッファー値を格納することをどこかで読みました。これは本当ですか?もしそうなら、どうすればそれらの間で変換できますか?