遊戲開發中的矩陣初探

學識都 人氣:2.76W

  遊戲製作,是指一個電子遊戲的製作過程。由於遊戲的類型、大小和要求,遊戲製作需要的人員和時間也不一樣。以下是小編整理的關於遊戲開發中的矩陣初探,希望大家認真閱讀!

遊戲開發中的矩陣初探

  1.矩陣在3d空間中的作用

  (1)長方體A想繞(10,3,4)旋轉50°且沿着x方向放大2倍且向(9,-1,8)方向平移2個單位,那麼經過上面的變換後,新的長方體各個點的座標是多少呢?應用矩陣可以很輕鬆的算出答案。

  (2)知道子座標系在父座標系中的位置,可以求出子座標系中的店在父座標系中的位置。

  2.矩陣的基礎知識

  矩陣能描述任意線性變換。線性變換保留了直線和平行線,線性變換保留直線的同時,其他的幾何性質如長度、角度、面積和體積可能被變換改變了。簡單的說,線性變換可能“拉伸”座標系,但不會“彎曲”或“卷折”座標系。

  (1)平移

  以下矩陣能把一點向t矢量方向平移:

  (2)旋轉

  正方向爲從旋轉軸正向看過去的逆時針方向,比如繞z軸[0,0,1]旋轉,正方向爲x至y軸方向

  知道了繞着三軸後的旋轉矩陣,那麼下面就是繞任意向量所得的.矩陣了。設M爲單位矩陣經向量a旋轉後的矩陣,且a = (xa, ya, za),旋轉角度爲α,則

  不要問爲什麼,記住即可。

  (3)縮放

  縮放點爲r,X軸縮放sx,y軸縮放sy,z軸縮放sz,則新座標爲:

  (4)綜合

  比如要把座標系中的所有點平移[2,3,4](X軸平移2,y軸平移3,z軸平移4),

  3.子空間向父空間的變換

  把點或方向從任何子座標系C變換至父座標系P的矩陣,可寫作Mc-p。此矩陣表示把點或方向從子空間變換至父空間。以下等式把任何子空間位置矢量Pc變換至父空間位置矢量Pp,Pp = PcMc-p

  ic爲子空間x軸的單位基矢量,此矢量以父空間座標表示

  jc爲子空間y軸的單位基矢量,此矢量以父空間座標表示

  kc爲子空間z軸的單位基矢量,此矢量以父空間座標表示

  tc爲子座標系相對於父座標系的平移

  4.座標系中點的RST(旋轉平移縮放)

  OpenGl超級寶典第四版P101頁說:如果一個4×4矩陣包含了一個不同的座標系統的位置和方向(可以看成上面的Mc-p),那麼,把一個頂點Pp與這個矩陣相乘,其結果就是一個變換到該座標系統的新頂點Pc(座標還是相對於原座標系)。這看起來像公式Pc =Pp Mc-p ,錯錯錯!這用Pp完全是個誤導,把Pp改名字叫A,座標V,由於是線性變換,所以在新座標系統中A的座標還是V,所以這就與Pp = PcMc-p 一致了,Pp爲A在新座標系統中V在原座標系中的座標。

  Gl中的矩陣變換

  OpenGl中矩陣的變換是疊加的,每做一次矩陣變換,就把零點移到新的座標系中。下次變換隻影響當前座標系及其子座標系,不會影響其父座標系。載入單位矩陣是將零點重新置爲最初的零點。

  單純的矩陣運算不會移動零點位置,所以與單位矩陣相乘沒有任何效果。