2

関数 gluPerspective() を使用して、ニア Z クリッピング プレーンとファー Z クリッピング プレーンを設定できます。

ある遠くの Z 平面でクリッピングされたシーンを描き、この Z 平面を超えて別のシーンを描きたいと思います。このクリッピングをフレームごとに 2 回行うことは可能ですか?

4

3 に答える 3

1

これを実行できない理由はありません。

最初のパースペクティブをセットアップし、最初のシーンを描画し、次に 2 番目のパースペクティブをセットアップして 2 番目のシーンを描画するだけです。すべて同じフレームの描画内で行います。
これは、一般にマルチパス レンダリングと呼ばれます。

于 2009-02-26T13:11:36.673 に答える
1

glClear(GL_DEPTH_BUFFER_BIT);最初に最も遠いシーンを描画し、最も近いシーンを描画する前に を実行する必要がある場合があります。

于 2009-02-26T13:14:44.107 に答える
1

可能性として、シーンに異なる深度範囲を割り当てることができます。擬似コードは次のようになります。

  glDepthRange(0.5, 1.0)
  draw_far_scene
  glDepthRange(0.0, 0.5)
  draw_near_scene

近く/遠くのシーンで適切なクリッピングを実行するには、射影行列を設定する必要があります。

深度範囲の割り当ては、深度バッファが両方のレンダリングを「マージ」するのを防ぐために必要です。

于 2009-02-27T07:02:53.040 に答える