ページ 1 / 1
3Dオブジェクトの見た目上の奥回転
Posted: 2016年4月10日(日) 23:43
by みや

DXライブラリで3Dステージエディタを作っています。
エディタ上でカメラの位置や見ている方向は動かせるのですが、配置しているオブジェクトを回転させる処理で躓きました。
MV1SetRotationXYZ関数で回転させていて、Y軸回転は操作している通りに(つまり右キーを押したら右回転)実装できましたが、
X軸回転がうまく動きませんでした。具体的には、
X軸回転させるとき、上キーを押すと画面で見て奥方向に回転するつもりだったのですが、当然かもしれませんが、ワールド上のX軸のまわりの回転をしてしまいます。
これをうまく画面で見て奥方向に回転させる方法は無いでしょうか?
画像を添付しておきます。
Re: 3Dオブジェクトの見た目上の奥回転
Posted: 2016年4月10日(日) 23:50
by みや
補足ですが、カメラの見ている方向の正規化したベクトルは取得できます。ただしそのベクトルのy成分は0
Re: 3Dオブジェクトの見た目上の奥回転
Posted: 2016年4月29日(金) 14:42
by yuni
こんにちは。
カメラのZ軸がわかっているなら
カメラから見た上方向((0,1,0)もしくはz軸を90度回転)を定義して外積したら
カメラのX軸が出る(外積で直行ベクトルが計算できる)ので、
それで軸の回転行列を作って回せばいいんじゃないでしょうか。
気になるのはベクトルですね。
みや さんが書きました:
カメラの見ている方向の正規化したベクトルは取得できます。ただしそのベクトルのy成分は0
この場合、カメラが真上、もしくは真下を見ると
ベクトルが(0,0,0)になるのですが、大丈夫なんでしょうか。