| 0からのゲームプログラミング > カメラ |
| Back Next |
| 更新日 2004.04.19 |
| カメラ |
| モデラーでは、視点と注視点を自由に変更し、モデリングすることが出来ましたね。それと同じように、プログラムでも視点と注視点を変更してみましょう。 どこを変更するのかと言うと、InitRender メンバ関数に以下のコードがありました。 ScreenStage.cpp |
|
上のコードのカメラ位置とカメラの注視位置を変更すると、見るところが違ってきます。例えば、以下の表のように注視点は固定にして、視点を時計回り [ 右回り ] に変更していくと、以下のようになります。 |
| 番号 | 視点 | 注視点 | ||||
| x座標 | y座標 | z座標 | x座標 | y座標 | z座標 | |
| 0 | -200 | 400 | 400 | 0 | 0 | 0 |
| 1 | -300 | 300 | 100 | 0 | 0 | 0 |
| 2 | -250 | 200 | -50 | 0 | 0 | 0 |
| 3 | -150 | 100 | -200 | 0 | 0 | 0 |
0.![]() 2. ![]() |
1.![]() 3. ![]() |
イメージが湧きますでしょうか。このカメラの操作は、CCamera クラス にまとめています。カメラの操作と書きましたが、単に座標変換をしているだけです。 参考 < CCamera クラス > ・メンバ関数 View では、ビュー・トランスフォーム ( ワールド座標 → ビュー座標 ) を行っています。D3DXMatrixLookAtRH を呼び出し、SetTransform しています。 ・メンバ関数 Projection では、射影・トランスフォーム ( ビュー座標 → 射影座標 ) を行っています。D3DXMatrixPerspectiveFovRH を呼び出し、SetTransform しています。 ※詳しくは、ヘッダのソースと、DirectX のヘルプを参照のこと。 |
| 【スポンサード リンク】 |
| Back Next |
| 0からのゲームプログラミング > カメラ |