1

CallList のオブジェクトがニア プレーンと交差すると、ちらつきが発生します...どうすればよいですか?

OpenGLとSDLを使用しています。

はい、ダブルバッファリングされています。

4

4 に答える 4

5

Zファイティングをしているようです。

「Z ファイティングは、2 つ以上のプリミティブが Z バッファーで同様の値を持っている場合に発生する 3D レンダリングの現象であり、同一平面上のポリゴンで特によく見られます。この効果により、疑似ランダム ピクセルが 1 つのポリゴンの色でレンダリングされます。または別の非決定論的な方法で、シーンがアニメーション化されると変化し、1 つのポリゴンが z テストに「勝ち」、次に別のポリゴンが「勝ち」、というようになります。」(ウィキペディアより)

問題の詳細については、OpenGL FAQを参照してください。

glPolygonOffset が役立つかもしれませんが、問題が発生する可能性もあります。Tom Forsyth は彼のFAQで適切な説明をしています 注: ZBIAS について述べていますが、それは DirectX の同等物にすぎません。

于 2008-09-10T22:07:24.747 に答える
3

問題は、回転関数にいくつかの浮動小数点エラーがあり、model_view マトリックスが壊れていたことです。

時間の無駄で申し訳ありません。

openGL はニア プレーンとのポリゴンの交差をサポートしているため、ニア プレーンを移動することが何らかの問題の解決策と見なされるべきではないと思いますが、通常は別の何かが間違っています。

于 2008-09-13T19:21:42.220 に答える
2

ニア クリッピング プレーンをもう少し先に配置してみてください。たとえば、gluPerspective -> 3 番目のパラメーターzNearを使用し ます。

于 2008-09-10T21:07:30.400 に答える
0

ああ、あなたは近い飛行機を意味しました。:)

ええと...同じ平面にポリゴンを描画するときのもう1つのことは、glPolygonOffsetを使用することです

説明から

  glPolygonOffset is useful for rendering hidden-line images,
  for applying decals to surfaces, and for rendering solids
  with highlighted edges.
于 2008-09-10T21:08:56.403 に答える