X3DAudio 概述

X3DAudio 是一种与 XAudio2 配合使用的 API,用于在 3D 空间中定位声音,以创建来自空间中某个点相对于相机位置的声音的错觉。特别是,具有 3D 场景的游戏需要使用 X3DAudio。 不需要 3D 定位的声音(如配乐或未定位的环境声音)可能会完全绕过 X3DAudio。

侦听器和发射器

为了管理 3D 空间中的声音,X3DAudio 采用 侦听器发射器的概念。 侦听器和发射器表示听到 3D 声音的任何位置,以及这些声音的来源点。

  • 侦听器定义为空间中的点和方向。 它是 听到声音的位置。 侦听器的位置和方向通常与相机的位置和方向相同。 无论游戏使用第一人称还是第三人称透视视图,都是如此。 侦听器的位置以世界坐标表示。 请务必注意,侦听器 相对于 发射器的位置决定了如何计算最终说话人音量。
  • 发射器定义为声音 源自空间中的一 (个或多个) 点。 发射器的位置可以是 3D 空间中的任意位置。 与侦听器一样,发射器的位置以世界坐标表示。 发射器 相对于 侦听器的位置决定了最终说话人音量的计算方式。
  • X3DAudio 使用左手坐标。 若要与右手坐标一起使用,开发人员需要否定 X3DAUDIO_LISTENER 和 X3DAUDIO_EMITTER 的 OrientTop、OrientFront、Position 和 Velocity 成员的 .z 元素。

除了位置,侦听器和发射器还可以包括速度。 与 3D 渲染引擎不同,X3DAudio 仅使用速度来计算多普勒效果, (它不用于计算位置) 。

有关侦听器和发射器的更多详细信息,请参阅 X3DAUDIO_LISTENERX3DAUDIO_EMITTER 结构参考主题。

将 X3DAudio 与 XAudio2 配合使用

对于 X3DAudio 和 XAudio2 之间的所有交互,请使用以下 X3DAudio 函数。

有关将 X3DAudio 与 XAudio2 配合使用的分步示例,请参阅 如何:将 X3DAudio 与 XAudio 集成

X3DAudio