Microsoft DirectX 8.0 (Visual Basic) |
3D 空間での音源とリスナーの位置、速度、および向きは、デカルト座標の 3 本の座標軸、x 軸、y 軸、および z 軸の値で表される。これらの軸は、アプリケーションで確立された視点から相対的である。x 軸の値は左から右に、y 軸の値は下から上に、z 軸の値は手前から奥に行くほど大きくなる。
D3DVECTOR 型は、3 つの軸で位置、速度、または向きを記述する値を格納する。
慣習的に、ベクトルはかっこで囲まれ、カンマで区切られた (x, y, z) の順序の 3 つの値で表される。
位置の場合、これらの値はデフォルトでメートル単位である。アプリケーションが 3D グラフィックの測定単位としてメートル以外のものを使っている場合、距離係数を設定し、アプリケーションの使う距離単位が何メートルに相当するかを浮動小数点の値として表現する。たとえば、アプリケーションがフィート単位を使っている場合、距離係数として 0.3048 を指定するが、これは 1 フィートをメートル単位で表現したものである。詳細については、「距離係数」を参照すること。
速度の場合、ベクトルは、各軸に沿った移動速度を 1 秒あたりの単位で表す。この場合も、デフォルトの単位はメートルであるが、アプリケーションで変更できる。
向きの場合、値は任意の単位であり、互いに相対的である。3D 空間のベース ビューが北向きで、地面のレベルで、リスナーの向きが (1, 0, 0)、つまり、x 軸が正で、ほかの 2 つの軸が変わらない場合、リスナーは真東を向く。このベクトルが (1, 0, 1) の場合、リスナーの向きは北東になる。(-1, 0, 1) の場合、リスナーは北西を向く。ベクトルの値は絶対的な単位ではないので、最後の例は (-5, 0, 5) または (-0.25, 0, 0.25) と表すこともできる。
2D 空間でのベクトルのしくみは、グラフ用紙に描いてみるとわかりやすい。値が用紙の下から上、左から右に向かって大きくなるようにする。(0, 0) から (1, 1) に向かって描いた直線は、(0, 0) から (5, 5) に向かって描いた直線と、向き、つまり方向が同じである。ただし、2 番目の直線は距離、つまり速度が大きいことを示す。3D ベクトルの場合も、軸が増えるだけで、これと同様である。