2012-04-11 12 views
0

OpenGLで3Dモデルをレンダリングする際に問題があります。私はそれをレンダリングすることができますが、三角形が表示されたときに、彼らは上になるように戦っているように見えます。なぜこれが起こっているのかは分かりません。 ここに私が話していることのビデオがあります:Jittery Triangles.私はこのビデオで即時モードを使用していますが、VBOを使って同じことをしていました。OpenGLでのレンダリング中に三角形が戦闘/ジャンプするようです

*編集:Well Thanks Tim!何らかの理由で私の近所の飛行機が0.00001に設定され、それを0.1に変更することで問題が解決されました。

+0

コードサンプルはどうですか?近く/遠い飛行機のセットアップはどうですか? – Tim

+0

も参照してください:http://stackoverflow.com/questions/6892489/how-to-get-the-rid-of-the-z-fighting-problem-in-opengl – moorephysics

+0

近所の飛行機が近すぎると問題が生じるのはなぜですか? – anthropomorphic

答えて

3

これはzファイティングと呼ばれ、zバッファで精度が失われた場合に発生します。通常の原因は、次のとおりです。非常に遠く離れてカメラから

  1. オブジェクト
  2. 非常に接近したり、正確に同じ場所で
  3. オブジェクト
  4. ファークリッピング非常に遠く離れてい平面
  5. マトリックス数学不正確

私は#3があなたの問題の最も可能性の高い原因であると言います。あなたは常に浮動小数点エラーのために注意を払う必要があります!

#4でも問題はありませんが、カメラの変換が原点から遠く離れていれば通常は切り詰められますが、double型の行列を使用して解決でき、gpuに渡す直前に浮動小数点数に変換できます。

ここにはprojection matrix Z-buffer mathの良い記事があります。

関連する問題