audio - 3D 音频引擎

标签 audio platform-agnostic

尽管 3D 图形引擎取得了所有进步,但令我感到奇怪的是,音频并未受到同等程度的关注。现代游戏会实时渲染 3D 场景,但我们仍然会或多或少地获得伴随这些场景的预置音频。

想象一下——如果你愿意的话——一个 3D 引擎,它不仅可以模拟元素的物理外观,还可以模拟它们的音频属性。从这些模型中,它可以根据接触的 Material 、它们的速度、与虚拟耳朵的距离等动态生成音频。现在,当你蹲在沙袋后面,子弹从头顶飞过时,每个子弹都会发出独特而逼真的声音。

这种技术的明显应用将是游戏,但我相信还有许多其他可能性。

是否正在积极开发这种技术?有谁知道任何试图实现这一目标的项目?

谢谢,
肯特

最佳答案

我曾经做过一些改进 OpenAL 的研究,模拟 3D 音频的问题在于你的大脑使用了太多的线索——不同角度的衰减略有不同,你前面和后面的声音之间的频率差异——对您自己的头脑非常具体,对其他人来说并不完全相同!

比如说,如果你想要一副耳机,让它听起来像一个生物在游戏中的树叶中和角色的前面,那么你实际上必须把那个玩家带进工作室,测量他们自己的特殊性耳朵和头部在不同距离改变声音的幅度和相位(幅度和相位不同,对大脑处理声音方向的方式都非常重要),然后教游戏对声音进行衰减和相移那个特定的球员。

确实存在用塑料模拟的“标准头”,用于获得头周围各个方向的通用频率响应曲线,但对于大多数玩家来说,平均或标准听起来永远不会完全正确。

因此,目前的技术基本上是向播放器出售五个便宜的扬声器,让他们将它们放在 table 周围,然后声音——虽然不是特别好再现——实际上听起来就像它们来自播放器的后面或旁边,因为,嗯,它们来自播放器后面的扬声器。 :-)

但是有些游戏确实会费心计算声音如何通过墙壁和门被消音和衰减(这可能很难模拟,因为耳朵会在几毫秒的不同延迟内通过各种 Material 和反射表面接收相同的声音)环境,如果事情听起来很现实,所有这些都必须包括在内)。然而,他们倾向于将他们的库保密,因此像 OpenAL 这样的公共(public)引用实现往往非常原始。

编辑:这是我当时找到的在线数据集的链接,可以用作创建更逼真的 OpenAL 声场的起点,来自 MIT:

http://sound.media.mit.edu/resources/KEMAR.html

享受! :-)

关于audio - 3D 音频引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/700947/

相关文章:

apache-flex - swf流音频播放器

Eclipse 中的 Java 错误 - soundresource 无法解析为变量

java - 一次只能播放一个声音片段

sql - 将具有 2 列子行的所有行列为重复项的 SQL 查询是什么?

llvm - 使用LLVM作为虚拟机——多平台和多架构编码

python - 如何识别 Python 运行在哪个操作系统上?

model-view-controller - 什么不应该在 MVC View 中?

Node.js - 以平台无关的方式查找主目录

python - wavfile.write : Identical arrays but only one works

audio - FMOD中的setFrequency不能令人满意地工作