Partilhar via


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 vindo de um ponto no espaço relativo à posição da câmera. Em particular, os títulos que apresentam cenas 3D vão querer usar X3DAudio. Os sons que não requerem posicionamento 3D, tais como bandas sonoras ou sons ambientes não posicionados, podem ignorar completamente o X3DAudio.

Ouvintes e emissores

Para controlar sons em espaço tridimensional, o X3DAudio emprega os conceitos de ouvintes e emissores. Ouvintes e emissores representam a posição de tudo o que está ouvindo sons 3D, e o ponto de onde 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 orientação do ouvinte geralmente é a mesma que a posição e orientação da câmera. Isso é verdade se um título usa uma visão de perspetiva em primeira pessoa ou em terceira pessoa. A posição do ouvinte é expressa em coordenadas mundiais. É importante notar que é a posição do ouvinte relativa a um emissor que determina como calcular os volumes finais do alto-falante.
  • Um emissor é definido como um (ou mais) pontos no espaço a partir dos quais um som origina-se. 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 a relativa ao ouvinte que determina como os volumes finais do alto-falante são calculados.
  • X3DAudio usa coordenadas para destros. Para usar com coordenadas destras, 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 também incluir a velocidade. Ao contrário de um motor de renderização 3D, X3DAudio só usa velocidade para calcular efeitos Doppler (não é usado para calcular a posição).

Para obter mais detalhes sobre ouvintes e emissores, consulte os tópicos de referência X3DAUDIO_LISTENER e estrutura X3DAUDIO_EMITTER.

Usando X3DAudio com XAudio2

Para toda a interação entre X3DAudio e XAudio2, utilize as seguintes funções X3DAudio.

  • X3DAudioInitialize

    Chame a função X3DAudioInitialize para inicializar o 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.

  • X3DAudioCalculate

    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çãoX3DAudioCalculate. Os valores calculados por X3DAudioCalculate podem então ser aplicados a vozes ou efeitos do XAudio2, conforme apropriado para os sinais passados para a função. Você pode aplicar valores de volume e pitch calculados por X3DAudio a uma voz com os métodos IXAudio2Voice::SetOutputMatrix e IXAudio2SourceVoice::SetFrequencyRatio. Outros valores calculados por X3DAudio precisarão ser aplicados a um efeito de reverberação usando o IXAudio2Voice::SetEffectParameters método.

Para obter um exemplo passo a passo do uso do X3DAudio com o XAudio2, consulte Como integrar o X3DAudio ao XAudio

X3DAudio