游戏引擎中的声音系统

一、声音基础

1.1 音量

声音振幅的大小

压强p:由声音引起的与环境大气压的局部偏差


1.2 音调


1.3 音色


1.4 降噪

1.5 人的听觉范围

1.6 电子音乐

将自然界中连续的音乐转换成离散的信号记录到内存中

采样 - 量化 - 编码

香农定理:采样频率是信号频率的两倍,就可实现无损采样。

采样:

量化:

编码格式:

二、三维音频渲染

三维场景中有无数的声源,每个声源从不同的方向,不同的距离表现的效果都不一样。

2.1 Listener

位置:一般放在摄像机和人物中间。不放在摄像机身上是因为当人物离开时仍然能听到声音;不放到人物身上的原因是当视野离开后,仍然能听到声音。这两种情况都不合理。

速度:多普勒效应

朝向:不同的朝向效果也不一样

2.2 空间化

到达左右耳的时间,方向都会影响音效的空间感。(听声辨位)

2.3 Panning

通过移动声源位置,模拟声音的变化。

但是当声音移动到两耳中间的时候,听到声音会变小

添加sin,cos解决这个问题

这样的话在声音移动的时候就可以保证听到的音量大小保持不变。

2.4 声音的衰弱

高频的声音衰减的快,低频的声音衰减的慢

通过在不同的频率之间插值计算,就可以体现出你距离声源的远近。


2.5声音的阻挡

声音是通过波的形式传播的

利用射线来计算声音的遮挡。

2.6 混响

回响-声音的反弹

不同的材质对声音的吸收也不同

在浴室中唱歌好听的原因:浴室空间小混响效果好

2.7 多普勒效应

多普勒效应(Doppler effect)是波源与观察者有相对运动时,观察者接受到波的频率与波源发出的频率并不相同的现象。生活中比较常见的例子是远方急驶过来的火车鸣笛声变得尖细(即频率变高,波长变短),而离我们而去的火车鸣笛声变得低沉(即频率变低,波长变长),这就是多普勒效应现象,同样的现象也发生在私家车鸣响与火车的敲钟声,音频参见[声的多普勒效应]。而关于频率和波长的直观感受如下图所示(来自wiki)。

相关推荐
Magnum Lehar18 小时前
vscode游戏引擎的build-clean配置
ide·vscode·游戏引擎
Magnum Lehar18 小时前
vscode游戏引擎的build-all全局配置
ide·vscode·游戏引擎
weixin_531638941 天前
Rokid AR交互开发工具对比
unity·游戏引擎·xr
Magnum Lehar1 天前
wpf3d游戏引擎ControlTemplate.xaml.cs文件实现
游戏引擎·wpf
留待舞人归1 天前
【Unity3D优化】优化多语言字体包大小
游戏·unity·游戏引擎·unity3d·优化
wsdchong之小马过河1 天前
2025虚幻引擎一般用什么模型格式
游戏引擎·虚幻
Magnum Lehar2 天前
wpf游戏引擎前端的Transform.cs实现
前端·游戏引擎·wpf
Magnum Lehar2 天前
wpf3d游戏引擎前端ControlTemplate实现
前端·游戏引擎·wpf
EQ-雪梨蛋花汤2 天前
【Unity笔记】Unity Animation组件使用详解:Play方法重载与动画播放控制
笔记·unity·游戏引擎
AgilityBaby2 天前
Untiy打包安卓踩坑
android·笔记·学习·unity·游戏引擎