bool MIX_SetTrack3DPosition(MIX_Track *track, const MIX_Point3D *position);
| MIX_Track * | track | 設定するトラック |
| const MIX_Point3D * | position | トラックの新しい3D空間位置. NULLも可 |
(SDL_mixerは非常に強力な3D APIであることを目指していないので注意すること. OpenALのような他のAPIが提供するドップラー効果, 距離モデル, 減衰などの3D機能はない. これは音の位置の使用やサラウンド設定の活用に十分な機能になることを目的としている.)
positionがNULLでない場合, このトラックは3D位置モードに切り替わる.
positionがNULLの場合, 位置ミキシング(この関数による3D空間とMIX_SetTrackStereo()の強制ステレオモードの両方)は無効になる.
3D位置モードでは, SDL_mixerはこのトラックを距離による減衰(利き手が遠いほど小さくなる)や空間化(ステレオ出力とサラウンド出力の場合, 方向がわかるように適切な位置にスピーカーを配置する)で3D空間にあるかのようにミックスする.
モノラルスピーカー出力の場合, 空間化は無効化されるが, 距離による減衰は機能する. 単一のスピーカーで行えるのはこれだけである.
座標系はOpenGLやOpenALと同じ「右手系」である. 詳しくはMIX_Point3Dを参照すること.
聞き手は常に(0,0,0)にあり, 変えることはできない.
トラックの入力はモノラル(1チャネル)へと変換されるため, どのような入力でも正しいスピーカー出力が行える.
この関数はどのスレッドからも安全に呼べる.