Unity中Transform組件中transform矩陣獲取及驗(yàn)證unity旋轉(zhuǎn)順序
最近在做根據(jù)深度信息恢復(fù)三維空間點(diǎn)的工作,逃不出R t矩陣,以及各個(gè)坐標(biāo)系之間的轉(zhuǎn)換。
我使用的是在Unity場(chǎng)景里獲取圖像的深度信息,在恢復(fù)過程中,旋轉(zhuǎn)問題一直困擾,近期有了新的發(fā)現(xiàn),特此分享。
一、Transform組件中transform矩陣獲取
要獲取Transform里的旋轉(zhuǎn)平移矩陣,首先我新建一個(gè)名為“Mytransform”的C#腳本文件,定義matrix矩陣,用SetTRS即可獲取旋轉(zhuǎn)平移。

更改控件里的旋轉(zhuǎn)平移量,可以看到獲得的矩陣各元素的值。


我想要獲取這些值將其應(yīng)用于我的VS項(xiàng)目中,故寫了一段簡(jiǎn)單的小代碼,將其以txt文件輸出。

因?yàn)槲彝耆莡nity新手,很多操作都不懂。這里需要特別注意:
1.擴(kuò)展的類和方法必須聲明為static
2.而后就可以在腳本里直接調(diào)用了。
我這里將其包含在一個(gè)自定義的命名空間Output里。
輸出txt后將其在VS以矩陣的形式輸出。
二、驗(yàn)證unity的旋轉(zhuǎn)順序
繞坐標(biāo)軸旋轉(zhuǎn): x軸-0/ y軸-0/ z軸-0;平移: 15 12 1

繞坐標(biāo)軸旋轉(zhuǎn):x軸-30/ y軸-0/ z軸-0;平移:15 12 1

繞坐標(biāo)軸旋轉(zhuǎn):x軸-0/ y軸-30/ z軸-0;平移:15 12 1

繞坐標(biāo)軸旋轉(zhuǎn):x軸-0/ y軸-0/ z軸-30;平移:15 12 1

Unity獲取矩陣
繞坐標(biāo)軸旋轉(zhuǎn):x軸-30/ y軸-30/ z軸-30;平移:15 12 1

程序中計(jì)算矩陣R = ry*rx*rz
繞坐標(biāo)軸旋轉(zhuǎn):x軸-30/ y軸-30/ z軸-30;平移:15 12 1

所以,經(jīng)驗(yàn)證,發(fā)現(xiàn),unity的旋轉(zhuǎn)順序應(yīng)該是先z再x后y。