Visão geral do X3DAudio
X3DAudio é uma API usada com XAudio2 para posicionar o som no espaço 3D para criar a ilusão de som proveniente de um ponto no espaço em relação à posição da câmera. Em particular, os títulos que apresentam cenas 3D desejarão usar X3DAudio. Sons que não exigem posicionamento 3D, como trilhas sonoras ou sons ambientes não posicionados, podem ignorar o X3DAudio completamente.
Ouvintes e emissores
Para gerenciar sons no espaço 3D, o X3DAudio emprega os conceitos de ouvintes e emissores. Ouvintes e emissores representam a posição do que está ouvindo sons 3D e o ponto do qual esses sons se originam.
- Um ouvinte é definido como um ponto no espaço e uma orientação. É a posição em que o som é ouvido. A posição e a orientação do ouvinte geralmente são iguais à posição e à orientação da câmera. Isso é verdadeiro se um título usa uma exibição de perspectiva em primeira pessoa ou em terceira pessoa. A posição do ouvinte é expressa em coordenadas mundiais. É importante observar que é a posição do ouvinte em relação a um emissor que determina como calcular os volumes finais do alto-falante.
- Um emissor é definido como um (ou mais) pontos no espaço do qual um som é originado. A posição do emissor pode estar em qualquer lugar no espaço 3D. Como um ouvinte, a posição de um emissor é expressa em coordenadas mundiais. É a posição do emissor em relação ao ouvinte que determina como os volumes finais do locutor são calculados.
- X3DAudio usa coordenadas à esquerda. Para usar com coordenadas destros, os desenvolvedores precisam negar o elemento .z dos membros OrientTop, OrientFront, Position e Velocity de X3DAUDIO_LISTENER e X3DAUDIO_EMITTER.
Além da posição, ouvintes e emissores podem incluir velocidade. Ao contrário de um mecanismo de renderização 3D, o X3DAudio usa apenas a velocidade para calcular efeitos do Doppler (ele não é usado para calcular a posição).
Para obter mais detalhes sobre ouvintes e emissores, consulte os tópicos de referência da estrutura X3DAUDIO_LISTENER e X3DAUDIO_EMITTER .
Usando X3DAudio com XAudio2
Para toda a interação entre X3DAudio e XAudio2, use as seguintes funções X3DAudio.
-
Chame a função X3DAudioInitialize para inicializar X3DAudio. Normalmente, você só precisa chamar X3DAudioInitialize uma vez no tempo de vida de um jogo, a menos que a configuração do alto-falante seja alterada.
-
Depois de inicializar o X3DAudio, você pode determinar o volume e outros valores para um determinado som passando o emissor do som e o ouvinte para a função X3DAudioCalculate . Os valores calculados por X3DAudioCalculate podem ser aplicados a vozes ou efeitos XAudio2 conforme apropriado para os sinalizadores passados para a função. Você pode aplicar valores de volume e de tom calculados por X3DAudio a uma voz com os métodos IXAudio2Voice::SetOutputMatrix e IXAudio2SourceVoice::SetFrequencyRatio . Outros valores calculados pelo X3DAudio precisarão ser aplicados a um efeito reverb usando o método IXAudio2Voice::SetEffectParameters .
Para obter um exemplo passo a passo do uso de X3DAudio com XAudio2, consulte Como integrar o X3DAudio ao XAudio
Tópicos relacionados