Xaudio 声音强度和平方反比距离
Posted
技术标签:
【中文标题】Xaudio 声音强度和平方反比距离【英文标题】:Xaudio sound intensity and inverse square distance 【发布时间】:2021-10-30 07:21:56 【问题描述】:我刚刚注意到,在使用 Xaudio 时,声音强度遵循以下公式:
volume=1/distance
但是根据https://sound.pressbooks.com/chapter/intensity-and-distance-april-2019-version/ 正确的应该是:
volume=1/(distance*distance)
有什么方法可以将默认公式更改为正确的公式?
我正在使用X3DAudioCalculate
- https://docs.microsoft.com/en-us/windows/win32/api/x3daudio/nf-x3daudio-x3daudiocalculate
代码 - https://github.com/Esenthel/EsenthelEngine/blob/master/Engine/Source/Sound/Sound%20Buffer.cpp#L529
示例: 我在 (1,0,0) 位置播放声音,然后是 (2,0,0),然后是 (4,0,0)
监听器在 (0,0,0)
使用GoldWave程序录制系统音频,得到以下结果:
X3DAUDIO_DSP_SETTINGS.pMatrixCoefficients 是 full=1,然后是 1/2,然后是 1/4
但是预期值不应该是 1,然后是 1/4,然后是 1/16?
【问题讨论】:
目前任何寻求帮助的人都必须查找 xaudio,找出要使用的编程语言,编写一个基本程序来理解问题,编写另一个程序来演示解决方案等等搜索文档。如果您可以提供一个最小的示例,设置语言标签,链接到文档,您将避免其他人不得不做繁重的工作。请记住,SO 用户在所有方面本质上都是懒惰的。降低帮助你的障碍只会是有益的 更新了我的帖子 【参考方案1】:得到https://www.gamedev.net/forums/topic/711052-xaudio-sound-intensity-and-inverse-square-distance/5443074/用户“Aressera”的回答
这是一种常见的混淆,源于两者之间的差异 声强和声压。声音强度是一种能量 确实像 1/(r*r) 一样下降的量。然而,我们不 听到声音强度/能量,我们听到压力,这是成比例的 为强度的平方根。因此,声压下降 1/r。 XAudio 确实是正确的。
【讨论】:
以上是关于Xaudio 声音强度和平方反比距离的主要内容,如果未能解决你的问题,请参考以下文章