在FMOD中使用customRollOff实现更自然的声音衰减
2011-12-08 18:51
344 查看
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:合适的指数。
指数衰减:用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:合适的指数。
相关文章推荐
- 用Python实现声音判断1---使用资源介绍
- 使用3.0实现微信打飞机——13.添加声音
- 使用Custom Draw优雅的实现ListCtrl的重绘 收藏
- 使用Custom Draw优雅的实现ListCtrl的重绘[转]
- ios使用AVCaptureVideoDataOutput实现连续拍照消除快门声音
- 使用Custom Draw优雅的实现ListCtrl的重绘
- SQL Server Report Builder 2.0中使用custom code实现sum distinct
- 使用AudioRecord实现声音采集
- 使用AudioTrack实现声音播放
- 使用base64实现socket.io传输图片和声音文件
- 使用Custom Draw优雅的实现ListCtrl的重绘
- 使用Custom Draw优雅的实现ListCtrl的重绘
- Windows界面——使用Custom Draw优雅的实现ListCtrl的重绘
- 使用 audio 和 embed 实现浏览器兼容的网页声音播放
- Unity编辑器开发,使用CustomPropertyDrawer实现枚举中文显示
- Windows界面——使用Custom Draw优雅的实现ListCtrl的重绘
- 使用Custom Draw优雅的实现ListCtrl的重绘[转]
- 使用C#实现通过网络发送和播放麦克风的声音
- (转)使用Custom Draw实现ListCtrl的重绘
- Windows界面——使用Custom Draw优雅的实现ListCtrl的重绘