0

OpenGL で 3D モデルをレンダリング中に問題が発生しました。私はそれをレンダリングすることができますが、レンダリングすると、三角形が頂点に立つために戦っているように見えます。なぜこれが起こるのか、私にはよくわかりません。これが私が話していることのビデオです:Jittery Triangles。このビデオでは即時モードを使用していますが、VBO を使用して同じことを行っていました。

*編集: ありがとうティム! 何らかの理由でニアプレーンを 0.00001 に設定し、それを 0.1 に変更すると問題が解決しました。

4

1 に答える 1

3

これは z ファイティングとして知られており、z バッファーで精度が失われたときに発生します。通常の原因は次のとおりです。

  1. カメラから非常に離れたオブジェクト
  2. オブジェクトが非常に接近している、またはまったく同じ場所にある
  3. 非常に遠くにあるファー クリッピング プレーン
  4. 行列演算の不正確さ

#3があなたの問題の最も可能性の高い原因だと思います。常に浮動小数点エラーに注意する必要があります!

#4 は別の考えられる問題ですが、通常はカメラ変換が原点から非常に離れている場合にのみ発生し、double の行列を使用してそれらを GPU に渡す直前に float に変換することで解決できます。

これは、射影行列 Z-buffer mathに関する優れた記事です。

于 2012-04-11T19:22:24.757 に答える