これは、同じ視点 (仮想カメラ) からの同じ 3D シーンの 2 つの画像で、backCulling がある場合とない場合があります。画像は最終的なメッシュではなく、深度バッファーの内容を示しています。
バックカリングなし
glDisable(GL_CULL_FACE);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glDepthFunc(GL_LESS);
バックカリングあり
glEnable(GL_CULL_FACE);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glDepthFunc(GL_LESS);
質問
- 2 つの画像にこのような違いがあるのはなぜですか? もちろん、違いが予想されますが、BackCulling を使用しないと深度マップが非常に滑らかであるのに、BackCulling を使用すると深度値がそれほど連続していないように見える理由がわかりません。
- BackCulling がない場合、特定のピクセルの深度バッファの値は? それはカメラに近いものですか (滑らかな画像はこのように見えます)、それとも多くのものが同じ 2d ポイント/ピクセルに投影されるため、別のものを期待する必要がありますか?
リファレンス - 3D シーン - 2D フレーム