是否有可能创建“全局”声源,这意味着它们的音量和音高不会受到听众位置和速度的影响?
我希望我的应用程序中的系统声音(不受监听器影响)和3维声音,我找不到任何解决方案。
答案 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
的距离。)