<td id="rfthz"><mark id="rfthz"></mark></td>
      <div id="rfthz"></div>
        1. <menu id="rfthz"></menu>

          <div id="rfthz"></div>

        2. 歡迎光臨ELBE網(wǎng)站!
          您的位置: ELBE > 行業(yè)資訊 > 四元數應用——轉矩陣、Slerp插值與萬(wàn)向節
          網(wǎng)站頭像

          文章分類(lèi)

          Article classification
          聯(lián)系我們

          ELBE

          電話(huà):021-58780503 微信:18017854633 郵箱:sales_fullyear@126.com 地址:上海市浦東新區城南路168弄3號峰匯商務(wù)廣場(chǎng)B座911室
          四元數應用——轉矩陣、Slerp插值與萬(wàn)向節
          時(shí)間:2022-12-16 查看:34 作者:小葉

          四元數系列:

          四元數-基本概念

          四元數-旋轉

          四元數應用-轉矩陣Slerp插值與萬(wàn)向節

          四元數應用-旋轉混合順序無(wú)關(guān)

          —————————————————————————————————————————

          今天,我們來(lái)談?wù)勔恍╆P(guān)于四元數的例子。與前兩篇文章相比,它們可能有點(diǎn)分散,這是對前兩章的補充說(shuō)明。具體來(lái)說(shuō),我們將討論三個(gè)問(wèn)題。第一個(gè)是四元數和矩陣的轉換,第二個(gè)是四元數的插入值。最后,我們來(lái)談?wù)勅f(wàn)向節鎖的問(wèn)題。話(huà)不多說(shuō),開(kāi)始談話(huà)。

          1.四元數矩陣形式

          目前,大多數底層的圖形API,空間坐標的轉換仍然基于矩陣。因此,當我們使用四元數來(lái)操作旋轉時(shí),最終傳輸給頂點(diǎn)著(zhù)色器的數據應以矩陣的形式進(jìn)行。然而,從應用層的角度來(lái)看,我們可以通過(guò)滿(mǎn)足以下公式來(lái)實(shí)現轉換。

          我相信大多數人對背誦公式并不滿(mǎn)意。推導公式的主要方法有兩種。其中一個(gè)是從代數的角度解決問(wèn)題。直率地說(shuō),這是一個(gè)硬算。我們在四元數和旋轉(2)中提到了一個(gè)公式:

          我們可以找到三個(gè)矩陣,然后添加上述轉換公式。這里沒(méi)有推導,感興趣的人可以自己計算。以下是一種更靈性的證明方法。當給出以下兩個(gè)四元數時(shí):

          如下圖所示:

          可以說(shuō),兩個(gè)四元數相乘轉換為矩陣L右乘四元數q。發(fā)散思維,把這種行為寫(xiě)成矩陣R左乘四元數q,具體形式如下圖所示:

          最體看L和R括號中的四元下標非常重要,因為四元不符合交換規律,括號中的下標實(shí)際上是不同的我們必須注意這個(gè)地方?;A知識完成后,直接應用于下面。根據旋轉公式和上述定義,我們很容易得到以下公式:

          然后將L和R在上述矩陣中,我們可以得到:

          證畢!

          2.四元數的Slerp插值

          事實(shí)上,插值問(wèn)題一直是圖形學(xué)中的一個(gè)經(jīng)典問(wèn)題。一般來(lái)說(shuō),線(xiàn)性插值可以滿(mǎn)足大多數情況,但對于旋轉,線(xiàn)性插值肯定不好。讓我們下圖:

          很明顯,左圖(線(xiàn)插)比右圖(球插)差。從動(dòng)畫(huà)的角度來(lái)看,為了保證每幀的旋轉均勻變化,線(xiàn)性插值得到的旋轉結果必須不均勻,主要考慮旋轉角度。然后我們從代數的角度來(lái)思考。如果兩個(gè)單位的四元數之間的插值,如左圖的線(xiàn)性插值,則得到的四元數不得為單位的四元數。我們希望旋轉插值不會(huì )改變長(cháng)度,因此顯然右圖的球面(Slerp)插值更合理。

          四元數球面插值證明很多,Wiki上面有非常詳細的證據和實(shí)現Code。事實(shí)上,主要思想是施密特正交。首先,根據 和 解算兩個(gè)正 交四元,然后通過(guò)加權計算最終 。下圖可以很好地解釋這件事。

          下面主要討論的是這個(gè)問(wèn)題。上圖給出了一種球面插值公式,暫時(shí)稱(chēng)為加法形式。由于四元旋轉是相乘的,我們的上述公式也可以寫(xiě)成:

          鑒于刨根問(wèn)底的精神,先說(shuō)四元數的差異。(Difference),這更容易理解,類(lèi)似于矩陣,A與B的差異可以理解為先旋轉A,然后旋轉B,得到A和B兩者之間的差值,表示為 。然后,如果我們去t倍差或直接說(shuō)差乘以t因子,我們將引用四元數和旋轉(1)中提到的四元數指數形式。對于 ,我們來(lái)看看 和 具體情況如下:

          最后我們令 以及 ,根據以下公式重新審視球面插值:

          可見(jiàn),兩種表現形式可以相互轉化。

          三、萬(wàn)向節死鎖

          事實(shí)上,這個(gè)問(wèn)題不能算作四元的應用。在萬(wàn)向節鎖的早期階段,它被用來(lái)處理旋轉過(guò)程中機械臂缺乏自由度的問(wèn)題。由于當時(shí)機械臂的關(guān)節是單自由的,在模擬人體的一些球形關(guān)節(自由度為3的關(guān)節)時(shí),將使用三組正交機械關(guān)節進(jìn)行模擬。

          如圖所示,當關(guān)節2旋轉90時(shí),機械關(guān)節1-3共同模擬手腕活動(dòng)°之后關(guān)節1和關(guān)節3會(huì )重疊,所以旋轉關(guān)節1和旋轉關(guān)節3只會(huì )沿著(zhù) 旋轉軸,這就是萬(wàn)向節鎖。值得一提的是,當你旋轉關(guān)節1、關(guān)節2和關(guān)節3時(shí),當你旋轉關(guān)節3時(shí),無(wú)論如何旋轉都不會(huì )影響關(guān)節2和關(guān)節1,所以只有關(guān)節2旋轉90°萬(wàn)向節鎖會(huì )產(chǎn)生。

          當早期的計算機動(dòng)畫(huà)移動(dòng)機器人時(shí),最簡(jiǎn)單的方法是直接模擬歐拉角的旋轉。這導致了通用鎖。那么如何理解計算機動(dòng)畫(huà)中的這個(gè)問(wèn)題呢?畢竟,動(dòng)畫(huà)中沒(méi)有機械關(guān)節。

          假設三個(gè)歐拉角的旋轉順序如下

          當 的時(shí)候, 和 它將重疊,如右圖,從而產(chǎn)生萬(wàn)向節鎖。

          因此,為了避免這個(gè)問(wèn)題,圖形旋轉開(kāi)始使用軸角,因為軸角可以說(shuō)三個(gè)歐拉角等同于繞特定軸旋轉的角度。OpenGL有個(gè)函數glRotate實(shí)現函數的方法是使用軸角。當然,并不是說(shuō)軸角沒(méi)有萬(wàn)向鎖。當三個(gè)正交軸角按一定順序旋轉時(shí),仍然會(huì )產(chǎn)生萬(wàn)向鎖,但這種情況很難發(fā)生。

          所以軸角解決了這個(gè)問(wèn)題,為什么要用四元數?

          4.總結四元數

          最后點(diǎn)一個(gè)問(wèn)題,呼應前面的文章,具體說(shuō)說(shuō)四元數的好處:

          解決萬(wàn)向節鎖(Gimbal Lock)問(wèn)題。(不要用四元數模擬歐拉角?。┲恍璐鎯?個(gè)浮點(diǎn),比矩陣輕。例如,矩陣至少需要9個(gè)float表示旋轉信息,即使加上旋轉縮放,也會(huì )比矩陣少存2-6個(gè)float,對于在PC游戲的開(kāi)發(fā)可能并不明顯,畢竟,現在內存很大,但在家用機器(尤其是上一代)中,內存相對較緊是相當有利的。無(wú)論是求逆、串聯(lián)等操作,四元數都比矩陣更高效。例如,逆轉相當于逆轉。即使是正交矩陣,轉移的操作成本也遠高于逆轉。此外,在大多數情況下,由于縮放,逆轉操作將更加復雜。然而,使用四元數需要考慮轉換四元數和矩陣的成本,但綜合考慮,四元數的運行成本相對較低。

          基本上四元數在我這里就結束了,以后會(huì )有人請人 @Obsver Anonym 請期待更新一篇具體應用的文章!

          繼續閱讀與本文標簽相同的文章
          cache
          Processed in 0.006904 Second.
          东北少妇不戴套对白第一次,亚洲欧洲AV无码电影在线观看,亚洲AV无码之日韩精品,欧美日韩精品一区二区三区不卡