次の方法で共有


ベクトル、頂点、およびクオータニオン (Direct3D 9)

Direct3D では、頂点は位置と方向を表します。プリミティブの各頂点は、位置、色、テクスチャー座標を決定するベクトル、およびその方向を決定する法線ベクトルによって示されます。

クオータニオンは、ベクトルを定義する 3 要素の [x, y, z] の 3 つの値に、4 番目の要素を追加したものです。クオータニオンは、通常は 3D 回転に使用される行列メソッドの代替として使用されます。クオータニオンは、3D 空間内の軸と、その軸の周りの回転を表します。たとえば、クオータニオンは (1,1,2) の軸と、1 ラジアンの回転を表します。クオータニオンは、役立つ情報を伝達しますが、真の価値はクオータニオンに実行できる合成と補間の 2 つの操作にあります。

クオータニオンの合成は、結合と似ています。2 つのクオータニオンの合成は次のようになります。

Quaternions notation

ジオメトリに適用される 2 つのクオータニオンの合成とは、「ジオメトリが軸 2 を 2 回転し、次に軸 1 の周りを 1 回転すること」を意味します。この場合、Q は 1 つの軸の周りの回転を示しており、その結果として q2 が、次に q1 がジオメトリに適用されます。

クオータニオンの補間を使用して、アプリケーションは 1 つの軸と方向から別の軸と方向へのスムーズで合理的なパスを計算します。そのため、q1 と q2 の間の補間は、1 つの方向から別の方向へと動かす簡潔な方法を提供します。

合成と補間を一緒に使用することで、一見複雑そうですが、実際にはジオメトリを操作する簡単な方法が提供されます。たとえば、指定された方向に回転するジオメトリがあるとします。この場合、軸 2 の周りを r2°回転し、次に軸 1 の周りを r1°回転することはわかりますが、最終的なクオータニオンはわかりません。合成を使用した場合は、ジオメトリで 2 つの回転を結合し、その結果として 1 つのクオータニオンを取得できます。さらに、オリジナルから合成されたクオータニオンを補間して、別のものへとスムーズな移行を達成できます。

D3DX ユーティリティ ライブラリには、クオータニオンと一緒に操作できる関数が含まれています。たとえば、D3DXQuaternionRotationAxis 関数は回転値を回転の軸を定義するベクトルに追加し、D3DXQUATERNION 構造体によって定義されているクオータニオンで結果を返します。また、D3DXQuaternionMultiply 関数はクオータニオンを構成し、D3DXQuaternionSlerp は 2 つのクオータニオンの間で球状線形補間を実行します。

Direct3D アプリケーションは、次の関数を使用してクオータニオンでの作業を簡単にします。

Direct3D アプリケーションは、次の関数を使用して、3 要素のベクトルでの作業を簡単にします。

2 要素および 4 要素のベクトルを使用して作業を簡単にする多くの関数が、D3DX ユーティリティ ライブラリの 算術関数 に含まれています。