質問
一人称3Dゲームを作りたいのですが、カメラの式を正しく設定できません。
だから私は回転を持っています:0から359。次にx、y座標、zは同じままです。
カメラの回転:0-フロント、90-左、180-バック、270-右右 - しかし、私はそれを適応させることができます
カメラの式は何ですか?
プラットフォーム:panda3d、python、opengl
ありがとうございました
解決
OK、運命スタイルのカメラの動き、つまり、上下ターンは必要ないようです。このことを考慮:
- カメラを通して見られるように、「世界」をレンダリングする必要があります。
- 正のxが右に、正のyが前面にあると仮定すると、カメラが右に移動すると、世界のイメージが左に移動します。
- カメラが前向きに左に曲がると、世界のイメージは右に変わります。
それでは、方程式を構築してみましょう。
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つのステップを組み合わせて、マトリックスフォームに変換できます。
他のヒント
後で問題を修正したチュートリアルを見つけました。
所属していません StackOverflow