0

jPCT ライブラリを使用して FPS に取り組んでいます。すべての FPS に必要な重要な点の 1 つは、マウスを上下に動かしすぎてプレイヤーが背後を見ないようにすることです。現在、jPCT の Web サイトにあるサンプル コードを使用して、カメラに追加された角度を追跡していますが、すべての角度をラジアンで丸める問題が心配です。jPCT のカメラから回転マトリックスを取得できます。これには、プレーヤーがどの程度「高い」位置にあるかを把握するための情報が含まれていることはわかっていますが、マトリックスからそれを取得する方法がわかりません。

プレイヤーが真上よりも「上」を向いているか、真下よりも「下」を向いているかを教えてくれる回転マトリックスで何を探すでしょうか?

4

1 に答える 1

0

プレーヤーが移動するたびにマトリックスを更新すると、浮動小数点エラーが原因で問題が発生し、回転マトリックスがスキュー マトリックスに変わります。1 つの解決策は、マトリックスを時々直交正規化することですが、通常は、プレーヤーのピッチ、ヨー (および必要に応じてロール) をフロートとして維持し、プレーヤーが向きを変えたり、上/下を見たりしたときに、それらの角度からマトリックスを構築する方がよいでしょう。等々。角度ごとに最適化されたコード (またはオイラー角度を行列に変換する単一の方法) を使用すると、現在行っているように見えるよりも遅くはありません。とにかくカメラの向きが制限されるため、ジンバル ロックの問題に遭遇することはありません。

特定の質問については、マトリックスの Z 軸 (3 番目の行または列、マトリックスの向きによって異なります) と Z 軸を下向きにする回転していないベクトルの間の角度を計算する必要があると思います。

于 2012-03-21T18:06:28.890 に答える