OpenAL 全局声音

OpenAL global sounds

是否可以创建 "global" 的声源,这意味着它们的音量和音调完全不受听众位置和速度的影响?

我想在我的应用程序中同时使用系统声音(不受听者影响)和 3 维声音,但找不到任何解决方案。

如果您的声音是立体声,那么您可以将它们放在任何地方,它们不受相对距离、旋转或速度的影响。

但是如果它们是单声道的,你需要做更多的工作:

所有音频源都有 position & velocity relative to listener 标记。打开它并将源坐标保留在默认位置 {0,0,0},速度为零。

alSourcei(source, AL_SOURCE_RELATIVE, 1); // This turns on the flag

这仅在您使用 clamped 距离模型之一时有效。 Clamped inverse distance 是默认值,因此您应该不会有任何问题。 (距离模型是一个方程式,它确定当与听众的距离发生变化时音量会以何种方式变化。您可以 select 这些模型之一具有 OpenAL 功能。clamped 距离模型就是这样一种模型,当它正好放在听者身上时,声音不会变得无限大。因此,音量被 钳位 到某个最大值。)但是如果你使用 non-clamped 距离模型,那么你应该打开标志 将你的声音放置在离听众恰好一个 参考距离 的地方。因此,例如,它将位于 {ref_distance,0,0}。默认参考距离为 1.0,但您可以使用 OpenAL 函数更改它。 (参考距离是声音音量等于 1 的距离。)