关于OpenAL听众定位的澄清

时间:2011-10-22 17:23:48

标签: position orientation openal

听众方向中第一个向量的目的是什么?教程说这两个向量是'at'和'up',但是不应该设置位置已经确定'at'在哪里?

我也很困惑为什么所有教程都将位置设置为0,0,0但是将方向设置为'0,0,-1。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

将“AT”视为附在鼻子上的一根绳子,并将“UP”视为附在头顶的一根绳子。

如果没有连接到头顶的绳子,您可以顺时针/逆时针倾斜头部并仍然面向“AT”。但是既然你可以倾斜你的头,那么计算机就无法确定你的右耳(头顶朝上)或左耳(顶部你的头朝向“向下”,因为你是颠倒的)。 “AT”和“UP”向量将监听者的“头部”固定在一起,这样就不会出现它面向哪种方式的模糊性,以及它的方向。

实际上需要设置3个矢量:位置,“AT”和“UP”。 位置0,0,0表示头部位于宇宙的中心。 “AT”0,0,-1表示头部正在看屏幕,“UP”通常是0,1,0,这样“头部”的顶部朝上。通过此设置,用户在屏幕左侧看到的任何内容都会在他的左耳中发出声音。你唯一一次选择不同的东西是在第一人称风格的游戏中,玩家在虚拟的3D世界中移动。实际上,向量不必进行标准化,因此您可以使用0,42,0表示“UP”,它将执行与0,1,0相同的操作。

如果你从规范值改变“AT”和“UP”,矢量必须是垂直的。