我目前正在编写一个简单的3D音响系统,但是我被卡住了。
问题是: 我在空间中有一个点,声音来自哪里,当然我有听众,有他的观点和方向。
距离不是问题,它运作得很好,但是当我想要计算声音的平移(左/右多少)时,这是一场彻底的灾难。
我在互联网上搜索过,但我找不到任何可用的解决方案,然后我尝试用三角形和东西自己计算,但你不想知道结果是什么是。
我不会显示代码,因为我已经写了三次,每个版本都无法使用。
我不希望你必须给我代码,如果我得到一个数学解决方案,我会很高兴。如果声音是从相机左侧或右侧多少,我想得到。
我在c ++ 11工作,声音库是Audiere。
编辑: 感谢willywonkadailyblah我找到了一些解决方案。你可以在这里观看: Get x position of sound from camera
使用点积我可以得到三角形的cos alpha然后用一个简单的pitagoras定理我可以得到距离(A)。
最后,我将pandistance与听觉距离分开并乘以声音距离。
答案 0 :(得分:1)
您可以计算摄像机方向的点乘积以及连接摄像机和声源的矢量。这给出了矢量之间角度的余弦。如果点积比零更接近于零,则声源更靠近侧面"比在前面"。