游戏引擎中的声音系统

一、声音基础

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)。

相关推荐
BuHuaX27 分钟前
Unity_数据持久化_IXmlSerializable接口
xml·unity·c#·游戏引擎·游戏策划
lihongli0001 小时前
消息系统技术文档
网络·unity·游戏引擎
Edision_li6 小时前
基于Mediapipe_Unity_Plugin实现手势识别
unity·游戏引擎·unity 手势识别
与火星的孩子对话6 小时前
Unity Shader编程完全入门指南:从零到实战 C# 实战案例
unity·c#·游戏引擎
深海潜水员1 天前
【Unity】背包系统 + 物品管理窗口 (上)
开发语言·vscode·游戏·unity·c#·游戏引擎
伽蓝_游戏1 天前
Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(6)
游戏·ui·unity·架构·c#·游戏引擎·.net
X_StarX1 天前
【Unity笔记04】数据持久化
笔记·unity·游戏引擎·数据存储·数据持久化·大学生
AgilityBaby1 天前
解决「CPU Virtualization Technology 未开启或被占用」弹窗问题
ue5·游戏引擎·无畏契约·cpu 虚拟化技术
EngZegNgi2 天前
Unity —— Android 应用构建与发布
android·unity·自动化·游戏引擎·构建
向宇it2 天前
【unity实战】简易的车辆控制系统
游戏·unity·c#·游戏引擎