2

少しGLUTを学んだばかりで、可動カメラ、照明をセットアップし、classいくつかの3Dフォームを含むものを作成しました。

しかし今は、カメラがそのようなオブジェクトを通過できないようにしたいと考えています。特定のポイントまたは実際のカメラ位置に障害物があるかどうかを確認できるタイプOpenGLまたはコマンドはありますか?glut

4

2 に答える 2

3

OpenGL はラスタライザー API であり、衝突のチェックや処理は行いません。衝突を検出する一般的な方法は、境界ボックスまたは境界球です。カメラの位置をポイントとして扱い、それが障害物のバウンディング ボリューム内にあるかどうかを確認できます。境界球の半径を取得するには、モデル内のすべての頂点をループして、その中心までの距離を保存する必要があります。このループは、フレームごとではなく、1 回だけ行う必要があります。

于 2012-10-25T07:31:01.910 に答える
2

OpenGLはシーングラフではありません。つまり、シーンや世界の内部表現はありません。OpenGLは描画APIであり、フレームバッファーにポイント、ライン、三角形を一度に1つずつ描画するだけで、それらを忘れてしまいます。

したがって、OpenGLは衝突検出を行いません。OpenGLを使用して衝突検出システムを実装すること可能ですが、これはOpenGLではなく、プログラムが実行するものです。

于 2012-10-25T08:38:08.390 に答える