OpenAL全球声音

  • 本文关键字:声音 OpenAL openal
  • 更新时间 :
  • 英文 :


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

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

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

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

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

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

只有当您使用夹紧距离模型之一时,这才会起作用。默认为CCD_ 3,所以你应该不会有任何问题。(距离模型是一个方程,它决定了当与听众的距离发生变化时,音量的变化方式。你可以用OpenAL函数选择其中一个模型。钳制距离模型是这样一个模型,当声音正好放在听众身上时,声音不会变得无限大。因此,音量被箝位到某个最大值。)。)但是,如果您使用非钳制距离模型,那么您应该打开标志,并将您的声音与听众保持一个参考距离。因此,它将处于,例如,{ref_distance,0,0}。默认参考距离为1.0,但您可以使用OpenAL函数更改它。(参考距离是声音音量等于1的距离。)

最新更新