現在、JOGLを使用して最初のFPSゲームを設計しています。 (OpenGLのためのJavaバインディング)。OpenGL衝突検出
これまでのところ、私はworld(一連の立方体)とプレーヤーモデルを生成することができました。私は、プレイヤーとキューブとの間の衝突検出が素晴らしいと思っています。
今、私は銃を追加しようとしています。私は、銃モデルを正しく描き、プレーヤーモデルにロードしました。私が実装しようとしている最初の銃は、あなたが目指しているところに瞬間的な視線のレーザーを撃つレーザー銃です。私が敵のモデルを実装する前に、私はレーザーと壁との間の衝突検出を行いたいと思っています。
私のレーザーは、現在、一連の小さな立方体で描かれています。最初の立方体は選手の銃の最後に描かれ、そこから連続的に引き出されます。アイデアは、何か、つまり世界のキューブで衝突が検出されるまで、レーザーの立方体を引き続き描くことでした。
私は世界の立方体の位置を知っています。問題は、文字モデルを描画するためにglMatrixPushを呼び出さなければならないことです。その後、このモデルビュー内でレーザーが描画されます。私が私の古い座標系を失ったことを意味する - それで、私は1つのシステムで世界を描き、次に別のシステムで世界を描きます。このプレイヤーマトリックスの中で、私はglRotateとglTranslateを何回か呼び出すと、カメラが回転しているようにすべてを同期させることができます。この新しいシステムのz軸に沿って平行移動することによって、レーザーが構築されます。
私の問題は、これらのすべての変換を通じて、主にカメラを含む回転のために、私のレーザーが地図座標系にどこに存在しているか分かりません。
この問題を解決する方法について誰かが知っていますか?私は、レーザーの新しい座標をマップの古い座標に変換する方法が必要だと信じていますが、私はそれに行われたすべての変換を元に戻す方法についてはわかりません。また、OpenGLが提供するいくつかの機能が、私が気づいていないようなこのような問題を処理する可能性があります。
+1私はあなたがそれよりも問題の部分を説明したと思う:) – Trillian