【发布时间】:2015-12-30 18:08:18
【问题描述】:
是否可以创建“全局”的声源,这意味着它们的音量和音高根本不受听者位置和速度的影响?
我想要在我的应用程序中同时使用系统声音(不受听众影响)和 3 维声音,但我找不到任何解决方案。
【问题讨论】:
标签: openal
是否可以创建“全局”的声源,这意味着它们的音量和音高根本不受听者位置和速度的影响?
我想要在我的应用程序中同时使用系统声音(不受听众影响)和 3 维声音,但我找不到任何解决方案。
【问题讨论】:
标签: openal
如果您的声音是立体声的,那么您可以将它们放在任何地方,它们不受相对距离、旋转或速度的影响。
但如果它们是单声道的,你需要做更多的工作:
所有音频源都有position & velocity relative to listener 标志。打开它并将源坐标保持在默认位置{0,0,0},速度为零。
alSourcei(source, AL_SOURCE_RELATIVE, 1); // This turns on the flag
这仅在您使用 clamped 距离模型之一时才有效。 Clamped inverse distance 是默认的,所以你应该没有任何问题。 (距离模型是一个方程,它确定当与听众的距离发生变化时音量会以何种方式变化。您可以使用 OpenAL 函数选择其中一个模型。clamped 距离模型就是这样一种模型,其中当声音完全放在听者身上时,它不会变得无限响亮。因此,音量clamped 到某个最大值。)但是如果您使用非固定距离模型,那么您应该打开标志和将您的声音放置在距离听众一参考距离的位置。例如,它将位于{ref_distance,0,0}。默认参考距离为1.0,但您可以使用 OpenAL 函数对其进行更改。 (参考距离是声音的音量等于1的距离。)
【讨论】: