OpenAL全球声音

时间:2015-12-30 18:08:19

标签: openal

是否有可能创建“全局”声源,这意味着它们的音量和音高不会受到听众位置和速度的影响?

我希望我的应用程序中的系统声音(不受监听器影响)和3维声音,我找不到任何解决方案。

1 个答案:

答案 0 :(得分:3)

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

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

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

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

仅当您使用其中一个钳制的距离模型时,此功能才有效。 Clamped inverse distance是默认值,因此您不应该遇到任何问题。 (距离模型是一个方程式,用于确定当听众的距离发生变化时音量会以何种方式变化。您可以选择其中一个具有OpenAL功能的模型。钳制距离模型就是这样一个模型当声音完全放在听众身上时,声音不会变得无限大声。因此,音量被钳制到某个最大值。)但是如果你使用非钳位距离模型,那么你应该打开标志将您的声音与听众完全相隔一个参考距离。因此,它将在例如{ref_distance,0,0}处。默认参考距离为1.0,但您可以使用OpenAL功能更改它。 (参考距离是声音的音量等于1的距离。)

相关问题