1

对于我正在编写的 3D iPad 应用程序,我希望音频在单个虚拟听众转向/远离声源时增加/减少音量。听者总是静止的。听者只能旋转。声音总是静止的。声音充满了用户周围的方向范围。声音与听者的距离都相等。

我认为这些声音类似于 3D 图形中的光源。对于每个声音,都有一个从听者指向该声源的向量。听者有一个传出方向向量。我想通过听者向量的 dotProduct 和每个音频源向量来加权每个音频源的贡献。因此,随着听者的“头部”围绕声音贡献方向旋转。

我描述的内容中有多少可以由 OpenAL 处理,我需要自己编写多少?

谢谢,
道格

4

1 回答 1

3

是的,您可以在 OpenAL 中执行此操作。其实你可以做得更好!使用点积,您只需在平行时获得全音量,在垂直时获得零音量,使用 OpenAL,您可以定义来自源的声音锥体。

在源上,您需要将 AL_CONE_INNER_ANGLE 设置为小于 AL_CONE_OUTER_ANGLE,这样您就可以在内锥角内获得全音量,并且在外锥角外衰减为零。当然,您还需要设置 AL_DIRECTION。

已经有一段时间了,我不确定你是否可以设置听者的锥体/方向,但这并不重要,因为你的所有对象都是静态的,你可以简单地旋转源的方向,模拟它:D

于 2010-10-03T02:15:12.770 回答