Información general sobre X3DAudio
X3DAudio es una API que se usa con XAudio2 para colocar el sonido en el espacio 3D para crear la ilusión de sonido procedente de un punto en el espacio en relación con la posición de la cámara. En concreto, los títulos que presentan escenas 3D querrán usar X3DAudio. Los sonidos que no requieren posicionamiento 3D, como bandas sonoras o sonidos ambientales no colocados, pueden omitir X3DAudio por completo.
Agentes de escucha y emisores
Para administrar sonidos en el espacio 3D, X3DAudio emplea los conceptos de agentes de escucha y emisores. Los agentes de escucha y los emisores representan la posición de cualquier sonido 3D auditiva y el punto desde el que se originan esos sonidos.
- Un agente de escucha se define como un punto en el espacio y una orientación. Es la posición en la que se escucha el sonido. La posición y la orientación del agente de escucha generalmente son las mismas que la posición y la orientación de la cámara. Esto es cierto si un título usa una vista de perspectiva de primera o tercera persona. La posición del agente de escucha se expresa en coordenadas del mundo. Es importante tener en cuenta que es la posición del agente de escucha en relación con un emisor que determina cómo calcular los volúmenes finales del altavoz.
- Un emisor se define como uno (o más) puntos en el espacio desde el que se origina un sonido. La posición del emisor puede estar en cualquier lugar del espacio 3D. Al igual que un agente de escucha, la posición de un emisor se expresa en coordenadas del mundo. Es la posición del emisor relativa al agente de escucha que determina cómo se calculan los volúmenes finales del altavoz.
- X3DAudio usa coordenadas izquierdas. Para usar con coordenadas a la derecha, los desarrolladores deben negar el elemento .z de los miembros OrientTop, OrientFront, Position y Velocity de X3DAUDIO_LISTENER y X3DAUDIO_EMITTER.
Además de la posición, los agentes de escucha y los emisores pueden incluir velocidad. A diferencia de un motor de representación 3D, X3DAudio solo usa la velocidad para calcular los efectos de Puntero (no se usa para calcular la posición).
Para obtener más información sobre los agentes de escucha y los emisores, consulte los temas de referencia de X3DAUDIO_LISTENER y X3DAUDIO_EMITTER estructura.
Uso de X3DAudio con XAudio2
Para toda la interacción entre X3DAudio y XAudio2, use las siguientes funciones X3DAudio.
-
Llame a la función X3DAudioInitialize para inicializar X3DAudio. Normalmente, solo necesitas llamar a X3DAudioInitialize una vez en la duración de un juego, a menos que se cambie la configuración del hablante.
-
Después de inicializar X3DAudio, puede determinar el volumen y otros valores de un sonido determinado pasando el emisor del sonido y el agente de escucha a la función X3DAudioCalculate . Los valores calculados por X3DAudioCalculate se pueden aplicar a las voces o efectos XAudio2 según corresponda para las marcas que se pasan a la función. Puede aplicar valores de volumen y tono calculados por X3DAudio a una voz con los métodos IXAudio2Voice::SetOutputMatrix y IXAudio2SourceVoice::SetFrequencyRatio . Otros valores calculados por X3DAudio deberán aplicarse a un efecto de reverberación mediante el método IXAudio2Voice::SetEffectParameters .
Para obtener un ejemplo paso a paso del uso de X3DAudio con XAudio2, vea How to: Integrate X3DAudio with XAudio (Cómo: Integrar X3DAudio con XAudio)
Temas relacionados