我目前正在编写一个简单的 3d 声音系统,但我遇到了困难。
问题是: 我在空间中有一个点,声音来自那里,当然我还有听者,他的点和方向。
距离不是问题,它工作得很好,但是当我想计算声音的声像(左/右多少)时,这完全是一场灾难。
我已经在网上搜索过了,但找不到任何可用的解决方案,然后我尝试自己用三角形和东西计算它,但你不想知道结果是什么。
我就不展示代码了,因为我写了三遍,每一个版本都不能用。
我不希望你一定要给我代码,如果我能得到一个数学解决方案,我会很高兴。我想知道声音是从相机向左还是向右发出的。
我在 C++ 11 中工作,声音库是 Audiere。
编辑: 感谢willywonkadailyblah我想出了一些解决办法。你可以在这里观看: Get x position of sound from camera
通过点积,我可以获得三角形的 cos alpha,然后通过简单的皮塔哥拉斯定理,我可以获得距离 (A)。
最后,我将全距除以心距,然后乘以声距。
最佳答案
您可以计算相机方向与连接相机和声源的 vector 的点积。这给出了 vector 之间角度的余弦值。如果点积比一更接近零,则声源更“靠边”而不是“靠前”。
关于c++ - 获取3d空间中声音的 "pan",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38705361/