在FMOD中使用customRollOff实现更自然的声音衰减

  Fomd的3D音源可以通过setMode来制定sound或channel曲线,具体表现效果由mindistance和maxdistance两个参数决定,它们可以用Sound::set3DMinMaxDistance或Channel::set3DMinMaxDistance设置。

    指数衰减:用FMOD_3D_LOGROLLOFF指定。在这种衰减方式中,声音每隔mindistance就会减弱一半,超过maxdistance就不再衰减。(SDK中并没有说明这种衰减函数,按照描述,可知并非log曲线,而是双曲线,y=1/x)

  线性衰减:就是由maxdistance和mindistance定义一条直线,按比例衰减。

  在实际的3D游戏中,指数衰减要远远真实于线性。但对于小场景的游戏,这样仍然不够好。建议按照噪声衰减公式来模拟一条更自然的曲线,在其他编辑器中,也可以以此为基础手动重设曲线。

  噪声衰减公式 lg(1/4*3.14*x^2)

  环境音:

    (1-log(x)/log(maxdis) * ((1/x)^0.4)

  动作音,杂音:

    (mindis/(x+mindis))^a   a:合适的指数。

posted @ 2011-12-08 18:51  阿亮同学  阅读(1181)  评论(0编辑  收藏  举报