私の OpenGL プログラムでは、次のことを順番に実行しています。
// Drawing filled polyhedrons
// Drawing points using GL_POINTS
// Displaying information for each above point beside it
ポイント情報 (ポイント識別子/番号など) を表示するために、 gluProject ()を使用して、ポイントの 3D 座標を 2D ウィンドウ座標に変換します。glRasterPos () と 2D 文字レンダリング コードを使用して、その 2D ウィンドウ位置にポイント識別子を書き込みます。
レンダリングされたポイントが別のプリミティブによってオクルードされると、OpenGL パイプラインで発生する自動オクルージョン テストと深度テストにより、自動的に表示されなくなります。ただし、このオクルージョン情報を取得していないため、オクルードされている場合でも、ポイント識別子テキストがポイントの横に表示されます。
3D (レンダリングされた) ポイントがその前にある他の 3D (レンダリングされた) プリミティブによって遮られているかどうかを判断する方法は? または、オクルードされていない場合にのみ、その横にポイント情報テキストを表示するより良い方法はありますか?
注: 追加のレンダリング パスが必要なメソッドがあることは承知しています。私はそれらが私の目的のために高価であると感じています.