5

コンピュータ グラフィックス コースのインタラクティブ シーンに取り組んでいます。カラー キューブを生成するプログラムをセットアップし、キーボードで回転させました。ただし、カメラのニア クリップ プレーンによって切り開かれています。

クリッピングされたカラー キューブ

gluPerspective を使用しようとしましたが、OpenGL のドキュメントにはその使用例がありません。オンラインのサンプルプログラムで使用されていることがわかり、コードを半分複製しました。

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective( 65, 1, 0.01, 100 );
glMatrixMode(GL_MODELVIEW);

何かご意見は?

更新: 以下のコメントで示唆されているように、代わりに次のコードで glFrustum を使用してみました:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum( -0.5, 0.5, -0.5, 0.5, 0.1, 100 );
glMatrixMode(GL_MODELVIEW);

繰り返しますが、違いはありませんでした。結果の行列を正しくプッシュしていませんか?

4

1 に答える 1

2

オブジェクトをカメラから少し離す必要があるかもしれません。現在、それらは 0.0 よりも近いようです。

「立方体をカメラから 1 単位離れた場所に移動しました。回転すると、近距離と遠距離の両方のクリップ面でクリップされます」という更新を考慮すると、クリッピング深度 (100 - 0.1) に対してキューブが大きすぎる可能性があります。立方体をカメラから 50 離し、クリッピング プレーンを 0.1 .. 1000 に設定して、すべてが収まるようにします。

問題が解決しない場合は、行列コードを確認する必要があります。

于 2012-10-18T14:10:04.717 に答える