Vue d’ensemble de X3DAudio
X3DAudio est une API utilisée avec XAudio2 pour positionner le son dans l’espace 3D afin de créer l’illusion du son provenant d’un point dans l’espace par rapport à la position de la caméra. En particulier, les titres qui comportent des scènes 3D souhaitent utiliser X3DAudio. Les sons ne nécessitant pas de positionnement en 3D, tels que les bandes sonores ou les sons ambiants non positionnés, peuvent contourner complètement X3DAudio.
Écouteurs et émetteurs
Pour gérer les sons dans l’espace 3D, X3DAudio utilise les concepts d’écouteurs et d’émetteurs. Les écouteurs et les émetteurs représentent la position de tout ce qui entend des sons 3D, et le point d’où ces sons proviennent.
- Un écouteur est défini comme un point dans l’espace et une orientation. C’est la position à laquelle le son est entendu. La position et l’orientation de l’écouteur sont généralement identiques à la position et à l’orientation de la caméra. Cela est vrai qu’un titre utilise une vue de perspective à la première personne ou à la troisième personne. La position de l’écouteur est exprimée en coordonnées mondiales. Il est important de noter que c’est la position de l’écouteur par rapport à un émetteur qui détermine comment calculer les volumes finaux de l’orateur.
- Un émetteur est défini comme un (ou plusieurs) points dans l’espace d’où provient un son. La position de l’émetteur peut être n’importe où dans l’espace 3D. Comme un écouteur, la position d’un émetteur est exprimée en coordonnées mondiales. C’est la position de l’émetteur par rapport à l’écouteur qui détermine la façon dont les volumes finaux de l’orateur sont calculés.
- X3DAudio utilise des coordonnées gauchers. Pour utiliser les coordonnées droites, les développeurs doivent nier l’élément .z des membres OrientTop, OrientFront, Position et Velocity de X3DAUDIO_LISTENER et X3DAUDIO_EMITTER.
En plus de la position, les écouteurs et les émetteurs peuvent inclure la vitesse. Contrairement à un moteur de rendu 3D, X3DAudio utilise uniquement la vitesse pour calculer les effets Doppler (il n’est pas utilisé pour calculer la position).
Pour plus d’informations sur les écouteurs et les émetteurs, consultez les rubriques de référence X3DAUDIO_LISTENER et X3DAUDIO_EMITTER structure.
Utilisation de X3DAudio avec XAudio2
Pour toutes les interactions entre X3DAudio et XAudio2, utilisez les fonctions X3DAudio suivantes.
-
Appelez la fonction X3DAudioInitialize pour initialiser X3DAudio. En règle générale, vous n’avez besoin d’appeler X3DAudioInitialize qu’une fois dans la durée de vie d’un jeu, sauf si la configuration du haut-parleur est modifiée.
-
Après avoir initialisé X3DAudio, vous pouvez déterminer le volume et d’autres valeurs d’un son donné en passant l’émetteur du son et l’écouteur à la fonction X3DAudioCalculate . Les valeurs calculées par X3DAudioCalculate peuvent ensuite être appliquées aux voix ou effets XAudio2 en fonction des indicateurs passés à la fonction. Vous pouvez appliquer des valeurs de volume et de pitch calculées par X3DAudio à une voix avec les méthodes IXAudio2Voice::SetOutputMatrix et IXAudio2SourceVoice::SetFrequencyRatio . Les autres valeurs calculées par X3DAudio devront être appliquées à un effet de réverbération à l’aide de la méthode IXAudio2Voice::SetEffectParameters .
Pour obtenir un exemple pas à pas d’utilisation de X3DAudio avec XAudio2, consultez Guide pratique pour intégrer X3DAudio à XAudio
Rubriques connexes