2016-08-01 34 views
0

我目前正在编写一个简单的3d声音系统,但我被卡住了。在3d空间中获取声音的“声像”

问题是: 我在空间中有一个点,声音来自哪里,当然我有听众,他的点和方向。

距离不是问题,它完美的工作,但是当我想要计算声音的平移(多少左/右),那么这是一场完全的灾难。

我已经在网上搜索过它,但是我找不到任何可用的解决方案,然后我试着用三角形和东西来自己计算它,但是你不想知道结果是什么。

我不会显示代码,因为我已经写了三次,每个版本都不可用。

我不想让你一定给我代码,我会很高兴,如果我得到一个数学解决方案。如果声音是来自相机的左侧或右侧,我想知道。

我在C++ 11中工作,声音库是Audiere。

编辑: 感谢willywonkadailyblah我想出了一些解决方案。你可以在这里看到: Get x position of sound from camera

与点积我可以得到三角形的cosα,然后用一个简单的pitagoras定理我可以得到距离(A)。

最后,我将听到的距离与距离分开,并乘以声音距离。

+1

你最好展示你的最佳尝试,并解释具体症状是什么以及你的确切目标是什么。有简单的方法和复杂的方法(具有花哨的头部响应功能)。 –

回答

1

您可以计算出摄像机方向和连接摄像机和声源的矢量的乘积。这给出了矢量之间角度的余弦。如果点积比零更接近于零,则声源比“前面”更“靠边”。

+0

感谢你,我想出了一些东西。我会告诉你这一点,但我想问你检查公式。有时候我很孤独。 – Bady

+0

@Bady确保你除以两个矢量的幅度来得到余弦。 – 2016-08-02 19:00:04