3Dにおける角度の表現について
Posted: 2014年1月05日(日) 22:24
お世話になります。
実例で学ぶゲーム3D数学
リンク先の本を読んでいてて思ったことが1つ、質問が1つあります。
まず、思ったことは、リンク先の本の 第9章 3Dにおける方向と角変位 で、3つの角変位を紹介しています。
1.行列を使った角変位
2.オイラー角を使った角変位
3.4元数を使った角変位
それぞれ、長所と短所があるのはわかりました。
しかし、Dxライブラリでは、行列を使った関数しかありません。
つまり、いまのところは、DirectX 9.0c くらい(?)では行列を使った角変位しかサポートしていない
ということになるのでしょうか?
2と3は、読んでいてて確かに難しくて、単純によみすすめれるものではありませんでした。
実際に、使う数学的な知識としては、1の行列を使った角変位のみを理解しておけば、
Dxライブラリにおいては、不自由しないということでしょうか?
次に質問です。
DirectX Graphicsでは、ワールド座標に物体があると仮定して、
モデル空間のベクトル「v」を、スクリーン空間に変換したベクトル「v’」を導き出すには、
v’ = ワールド行列 x ビュー行列 x 射影行列 x ビューポート行列
となっています。
ここでは、すべて行列で、計算がすんでいるので、問題ないのですが、言葉の定義が、
本の作者や、書かれた年代で、微妙に変化しているので、なかなかパッとしません。
そこで、とてもモヤモヤしているのですが、このモヤモヤをはっきりとしたものとするには
どういったアプローチをとるのがいいのでしょうか?
まだ、3Dのプログラムをきちんと理解して、組めていない私にとっては、
どういった手順で、理解していくのがおすすめでしょうか?
なんか、高校受験のどういった勉強が効率的でしょうか?というような質問になってしまいますが、
なかなか、私では突破口がみつからないので、手助けをお願いします。
実例で学ぶゲーム3D数学
リンク先の本を読んでいてて思ったことが1つ、質問が1つあります。
まず、思ったことは、リンク先の本の 第9章 3Dにおける方向と角変位 で、3つの角変位を紹介しています。
1.行列を使った角変位
2.オイラー角を使った角変位
3.4元数を使った角変位
それぞれ、長所と短所があるのはわかりました。
しかし、Dxライブラリでは、行列を使った関数しかありません。
つまり、いまのところは、DirectX 9.0c くらい(?)では行列を使った角変位しかサポートしていない
ということになるのでしょうか?
2と3は、読んでいてて確かに難しくて、単純によみすすめれるものではありませんでした。
実際に、使う数学的な知識としては、1の行列を使った角変位のみを理解しておけば、
Dxライブラリにおいては、不自由しないということでしょうか?
次に質問です。
DirectX Graphicsでは、ワールド座標に物体があると仮定して、
モデル空間のベクトル「v」を、スクリーン空間に変換したベクトル「v’」を導き出すには、
v’ = ワールド行列 x ビュー行列 x 射影行列 x ビューポート行列
となっています。
ここでは、すべて行列で、計算がすんでいるので、問題ないのですが、言葉の定義が、
本の作者や、書かれた年代で、微妙に変化しているので、なかなかパッとしません。
そこで、とてもモヤモヤしているのですが、このモヤモヤをはっきりとしたものとするには
どういったアプローチをとるのがいいのでしょうか?
まだ、3Dのプログラムをきちんと理解して、組めていない私にとっては、
どういった手順で、理解していくのがおすすめでしょうか?
なんか、高校受験のどういった勉強が効率的でしょうか?というような質問になってしまいますが、
なかなか、私では突破口がみつからないので、手助けをお願いします。