【问题标题】:Does iOS OpenAL support directional sound or only positional sound?iOS OpenAL 支持定向声音还是仅支持位置声音?
【发布时间】:2011-04-20 07:37:16
【问题描述】:
对于我正在编写的 3D iPad 应用程序,我希望音频在单个虚拟听众转向/远离声源时增加/减少音量。听者总是静止的。听者只能旋转。声音总是静止的。声音充满了用户周围的方向范围。声音与听者的距离都相等。
我认为这些声音类似于 3D 图形中的光源。对于每个声音,都有一个从听者指向该声源的向量。听者有一个传出方向向量。我想通过听者向量的 dotProduct 和每个音频源向量来加权每个音频源的贡献。因此,随着听者的“头部”围绕声音的方向旋转,声音的贡献也会发生变化。
OpenAL 可以处理多少我描述的内容,我需要自己编写多少?
谢谢,
道格
【问题讨论】:
标签:
ipad
opengl-es
ios4
openal
【解决方案1】:
是的,您可以在 OpenAL 中执行此操作。其实你可以做得更好!使用点积,您只需在平行时获得全音量,在垂直时获得零音量,使用 OpenAL,您可以定义来自源的声音锥体。
在音源上,您需要将 AL_CONE_INNER_ANGLE 设置为小于 AL_CONE_OUTER_ANGLE,以便在内锥角内获得全音量,并在外锥角外衰减为零。当然,您还需要设置 AL_DIRECTION。
已经有一段时间了,我不确定你是否可以设置听者的锥体/方向,但这并不重要,因为你的所有对象都是静态的,你可以简单地旋转源的方向相反,模拟它:D