- 相關(guān)推薦
游戲開發(fā)中的矩陣初探
游戲制作,是指一個(gè)電子游戲的制作過程。由于游戲的類型、大小和要求,游戲制作需要的人員和時(shí)間也不一樣。以下是小編整理的關(guān)于游戲開發(fā)中的矩陣初探,希望大家認(rèn)真閱讀!
1.矩陣在3d空間中的作用
(1)長方體A想繞(10,3,4)旋轉(zhuǎn)50°且沿著x方向放大2倍且向(9,-1,8)方向平移2個(gè)單位,那么經(jīng)過上面的變換后,新的長方體各個(gè)點(diǎn)的坐標(biāo)是多少呢?應(yīng)用矩陣可以很輕松的算出答案。
(2)知道子坐標(biāo)系在父坐標(biāo)系中的位置,可以求出子坐標(biāo)系中的店在父坐標(biāo)系中的位置。
2.矩陣的基礎(chǔ)知識
矩陣能描述任意線性變換。線性變換保留了直線和平行線,線性變換保留直線的同時(shí),其他的幾何性質(zhì)如長度、角度、面積和體積可能被變換改變了。簡單的說,線性變換可能“拉伸”坐標(biāo)系,但不會“彎曲”或“卷折”坐標(biāo)系。
(1)平移
以下矩陣能把一點(diǎn)向t矢量方向平移:
(2)旋轉(zhuǎn)
正方向?yàn)閺男D(zhuǎn)軸正向看過去的逆時(shí)針方向,比如繞z軸[0,0,1]旋轉(zhuǎn),正方向?yàn)閤至y軸方向
知道了繞著三軸后的旋轉(zhuǎn)矩陣,那么下面就是繞任意向量所得的矩陣了。設(shè)M為單位矩陣經(jīng)向量a旋轉(zhuǎn)后的矩陣,且a = (xa, ya, za),旋轉(zhuǎn)角度為α,則
不要問為什么,記住即可。
(3)縮放
縮放點(diǎn)為r,X軸縮放sx,y軸縮放sy,z軸縮放sz,則新坐標(biāo)為:
(4)綜合
比如要把坐標(biāo)系中的所有點(diǎn)平移[2,3,4](X軸平移2,y軸平移3,z軸平移4),
3.子空間向父空間的變換
把點(diǎn)或方向從任何子坐標(biāo)系C變換至父坐標(biāo)系P的矩陣,可寫作Mc-p。此矩陣表示把點(diǎn)或方向從子空間變換至父空間。以下等式把任何子空間位置矢量Pc變換至父空間位置矢量Pp,Pp = PcMc-p
ic為子空間x軸的單位基矢量,此矢量以父空間坐標(biāo)表示
jc為子空間y軸的單位基矢量,此矢量以父空間坐標(biāo)表示
kc為子空間z軸的單位基矢量,此矢量以父空間坐標(biāo)表示
tc為子坐標(biāo)系相對于父坐標(biāo)系的平移
4.坐標(biāo)系中點(diǎn)的RST(旋轉(zhuǎn)平移縮放)
OpenGl超級寶典第四版P101頁說:如果一個(gè)4×4矩陣包含了一個(gè)不同的坐標(biāo)系統(tǒng)的位置和方向(可以看成上面的Mc-p),那么,把一個(gè)頂點(diǎn)Pp與這個(gè)矩陣相乘,其結(jié)果就是一個(gè)變換到該坐標(biāo)系統(tǒng)的新頂點(diǎn)Pc(坐標(biāo)還是相對于原坐標(biāo)系)。這看起來像公式Pc =Pp Mc-p ,錯錯錯!這用Pp完全是個(gè)誤導(dǎo),把Pp改名字叫A,坐標(biāo)V,由于是線性變換,所以在新坐標(biāo)系統(tǒng)中A的坐標(biāo)還是V,所以這就與Pp = PcMc-p 一致了,Pp為A在新坐標(biāo)系統(tǒng)中V在原坐標(biāo)系中的坐標(biāo)。
5.OpenGl中的矩陣變換
OpenGl中矩陣的變換是疊加的,每做一次矩陣變換,就把零點(diǎn)移到新的坐標(biāo)系中。下次變換只影響當(dāng)前坐標(biāo)系及其子坐標(biāo)系,不會影響其父坐標(biāo)系。載入單位矩陣是將零點(diǎn)重新置為最初的零點(diǎn)。
單純的矩陣運(yùn)算不會移動零點(diǎn)位置,所以與單位矩陣相乘沒有任何效果。
【游戲開發(fā)中的矩陣初探】相關(guān)文章:
Word2010中創(chuàng)建包含矩陣公式步驟07-07
常規(guī)游戲項(xiàng)目開發(fā)流程09-16
游戲開發(fā)需要學(xué)什么06-08
開發(fā)智力的游戲的好處10-18
網(wǎng)頁游戲主流開發(fā)技術(shù)08-07
開發(fā)制作游戲過程詳解07-11
開發(fā)智力的游戲有哪些08-04
游戲開發(fā)后的獨(dú)立推廣方法10-14