偵聽器方向的第一個向量的目的是什麼?教程說這兩個向量是'at'和'up',但是不應該設置position已經確定'at'的位置?關於OpenAL偵聽器方向的說明
我也很困惑爲什麼所有的教程都將位置設置爲0,0,0,但將方向設置爲'0,0,-1。
我錯過了什麼?
偵聽器方向的第一個向量的目的是什麼?教程說這兩個向量是'at'和'up',但是不應該設置position已經確定'at'的位置?關於OpenAL偵聽器方向的說明
我也很困惑爲什麼所有的教程都將位置設置爲0,0,0,但將方向設置爲'0,0,-1。
我錯過了什麼?
將「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」,則矢量必須垂直。
所以基本上「at」是前向矢量,並且up。 –