3D 空間の座標

3D 空間での音源とリスナーの位置・速度・向きは、直交座標の 3 本の座標軸、x 軸、y 軸、z 軸の値で表される。これらの軸は、アプリケーションで設定された視点が基準になっている。x 軸の値は左から右に、y 軸の値は下から上に、z 軸の値は手前から奥に行くほど大きくなる。

D3DVECTOR 構造体は、3 つの軸で位置・速度・向きを表す値を保持する。

慣習的に、ベクトルはかっこで囲まれ、カンマで区切られた (x, y, z) の順序の 3 つの値で表される。

位置の場合、これらの値はデフォルトでメートル単位である。アプリケーションが 3D グラフィックスの測定単位としてメートル以外のものを使っている場合は、距離係数を設定し、アプリケーションの使う距離単位が何メートルに相当するのかを浮動小数点の値として表現する。たとえば、アプリケーションがフィート単位を使っている場合は、距離係数として 0.3048 を指定するが、これは 1 フィートをメートル単位で表現したものである。詳細については、「距離係数」を参照すること。

速度の場合、ベクトルは、各軸に沿った移動速度を 1 秒あたりの単位数で表す。この場合も、デフォルトの単位はメートルであるが、アプリケーションで変更できる。

向きの場合、値は任意の単位であり、互いに相対的である。3D 環境のベース ビューが水平北向きで、リスナーの向きが (-1, 0, 1) の場合、リスナーは北西を向いている。ベクトルの値は絶対的な単位ではないので、このベクトルは (-5, 0, 5) または (-0.25, 0, 0.25) と表すこともできる。

2D 空間でのベクトルのしくみは、グラフ用紙に描いてみるとわかりやすい。値が用紙の下から上、左から右に向かって大きくなるようにする。(0, 0) から (1, 1) に向かって描いた直線は、(0, 0) から (5, 5) に向かって描いた直線と、向き、つまり方向が同じである。ただし、2 番目の直線は距離、つまり速度が大きいことを示す。3D ベクトルの場合も、上下方向の軸が増えるだけで、これと同様である。