如何根据物体位置计算左耳和右耳的音量。速度,球员位置和前向矢量? (3D声音)

时间:2017-07-30 03:12:16

标签: c++ unity3d audio game-engine

请假设:

3D体积的最小距离= 1.0;
3D体积的最大距离= 100.0;

这是函数的声明:

一个物体可以是一个靠近玩家的球。

void CalculateSoundVolume(Vec3 objectPosition, 
                          Vec3 objectVelocity, 
                          Vec3 userHead, 
                          Vec3 userFoward, 
                          float& leftEarVolume, 
                          float& rightEarVolume)  
{

}

1 个答案:

答案 0 :(得分:2)

您可以开始使用这个基本事实:

声速是声波在弹性介质中传播时每单位时间的行进距离。在20°C(68°F)的干燥空气中,声速为343米/秒(1,125英尺/秒; 1,235公里/小时; 767英里/小时; 667公里),或一公里2.91秒或一英里4.69 s。

声压级(SPL)随着距离加倍( - )6 dB而降低。声压落在初始值的声压的1/2倍(50%)。它以距离的比率1 / r下降。声音强度水平随距离加倍减少( - )6 dB。

详细说明传播的基本模型,它将告诉你玩家在现实生活中会听到什么。