我刚刚注意到,当使用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吗?
发布于 2021-11-01 03:31:04
在https://www.gamedev.net/forums/topic/711052-xaudio-sound-intensity-and-inverse-square-distance/5443074/上被用户"Aressera“回答
这是一种常见的混淆,是由于声音强度和声压之间的差异引起的。声强是一个确实下降的能量量,如1/(r*r)。然而,我们听不到声音强度/能量,我们听到的是压力,它与强度的平方根成正比。因此,声压下降了大约1/r。XAudio确实是正确的。
https://stackoverflow.com/questions/69777538
复制相似问题