OpenAL:如何使用线性衰减?

时间:2011-04-25 16:17:51

标签: c++ openal

我想控制声源音量按距离逐渐消失的方式,我该怎么做?

编辑:我还想知道如何相应地缩放声音坐标系:我不想听到远离声源的声音:现在我必须更改渲染代码缩放坐标以使其按我的意愿工作。

编辑2:虽然,一个解决方案可能是在我发送它们之前乘以我的坐标...但是有更优雅的方法吗?

1 个答案:

答案 0 :(得分:4)

这将是alDistanceModel(AL_LINEAR_DISTANCE)或更好alDistanceModel(AL_LINEAR_DISTANCE_CLAMPED),这将完全取消遥远的来源。

阅读章节3.4.3和3.4.4 here。您还必须为每个源(AL_MAX_DISTANCE)中列出的公式(AL_REFERENCE_DISTANCEalSourcef)设置参数。

如果参数没有意义,则关闭衰减。如果声音是立体声,同样(立体声就是......立体声 - 只有单声道声音是3D)。