0

一人称3Dゲームを作りたいのですが、カメラの数式を正しく設定できません。

したがって、0から359までの回転があります。次に、x、y座標、zは同じままです。

カメラの回転:0-前面、90-左、180-背面、270-右ですが、調整できます

カメラの公式は何ですか?

プラットフォーム:Panda3d、python、opengl

ありがとうございました

4

2 に答える 2

3

OK、Doomスタイルのカメラの動きが必要なようです。つまり、上下に回転する必要はありません。このことを考慮:

  1. カメラを通して見た「世界」をレンダリングする必要があります。
  2. 正のxが右にあり、正のyが正面にあると仮定すると、カメラが右に移動すると、世界の画像が左に移動します。
  3. カメラを積極的に左に向けると、世界のイメージが右に向きます。

それでは、方程式を作成してみましょう。

1.まず、ワールド座標をカメラの位置に変換します。

Xwt = Xw - Xc;
Ywt = Yw - Yc;
Zwt = Zw;

(Xc,Yc,Zc) = camera position
(Xw,Yw,Zw) = world coordinates of object in the scene
(Xwt,Ywt,Zwt) = world coordinates of object translated to camera position

2.次に、移動した座標をカメラの回転と反対の角度で回転させます。

Xwc =  Xwt * Cos(psi) + Ywt * Sin(psi);
Ywc = -Xwt * Sin(psi) + Ywt * Cos(psi);
Zwc =  Zwt

Psi = angle of camera rotation
(Xwc,Ywc,Zwc) = world coordinates of object transformed to camera orientation

2つのステップを組み合わせて、マトリックス形式に変換できます。

于 2010-12-20T16:23:20.780 に答える
0

私は後で私の問題を修正したチュートリアルを見つけました:

https://www.panda3d.org/forums/viewtopic.php?t=3037

于 2010-12-20T14:51:45.607 に答える