0

OpenGL を使用してシャドウ マッピングを行っています。深度をシャドウ マップと比較すると、Z ファイティングの問題が発生します。glPolygonOffset を使用して問題を解決できます。この関数は、Z ファイティングの問題が解決されるように、ポリゴンを少しプッシュ (またはプル) するのに役立ちます。しかし、関数 glPolygonOffset について質問があります。ポリゴンの傾きがオフセットに関係している理由がよくわかりません。

ここから:

factor パラメーターは、ビューアーのほぼ真横にある塗りつぶされたプリミティブの正しい結果を保証するために必要です。この場合、同一平面上にある 2 つのプリミティブによって生成された同じピクセルの Z 値の差は、X または Y の最大 Z 勾配と同じくらい大きくなる可能性があります。この Z 勾配は、ほぼエッジオンのプリミティブでは大きく、ほとんど存在しません。正面向きのプリミティブ用。factor パラメータを使用すると、このタイプの変数の差を結果の深度オフセットに追加できます。

ここで、「2 つの共平面プリミティブによって生成された同じピクセルの Z 値の差が、X または Y の最大 Z 勾配と同じくらい大きくなる可能性がある」理由がわかりません。

4

1 に答える 1

2

ポリゴンにZ勾配がある場合、ピクセルの左端と右端の間でz座標に違いがあります。

したがって、何かを前面に配置するには、ピクセル内のどこでz座標が計算されても、それが前面にあることを確認する必要があります。

于 2012-01-16T05:44:24.263 に答える