2011-10-22 27 views
3

侦听器方向的第一个向量的目的是什么?教程说这两个向量是'at'和'up',但是不应该设置position已经确定'at'的位置?关于OpenAL侦听器方向的说明

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

我错过了什么?

回答

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”,则矢量必须垂直。

+0

所以基本上“at”是前向矢量,并且up。 –