2016-04-14 10 views
0

私はDirectXを使用しています。カメラや写真の設定は既にあります。カメラは、回転させたいオブジェクトをあらゆる角度から見るように見ています。オブジェクトを回転させて3Dのあらゆる角度から見ることができます

オブジェクトを行列にレンダリングするときは、回転行列と変換行列を掛けることによって作成されます。私が今作成した回転行列は、XMMatrixRotationRollPitchYaw(x、y、z)で作成されます。

私はこれを達成できるようにx、y、zを設定する方法はありますか?理論的には

答えて

0

あなただけ(XMMatrixRotationRollPitchYawはラジアンではなく度がかかるためので、実際にXM_PIラジアンに0から実行)、ヨー、ピッチ、ロールのそれぞれについて、0度から180度に実行されているネストされた3つのforループを行うことができます。

ただし、あなたは、四元数は、多くの場合、カメラの回転を制御するために使用されている理由であるオイラー角を、使用してgimbal lock問題に実行します。

もちろん、これはすべての単一度の角度からオブジェクトを見たいと仮定しています。オブジェクトのすべての部分が表示されていることを確認したい場合は、45度(XM_PI/4.fラジアン)の大きなインクリメントで行うことができます。

異なるオイラー角を結合して同じ3D回転を生成できるので、いくつかの重複は終了します。

関連する問題