關於矩陣的乘法
前言
以前總是這樣乘矩陣,ModelMatrix*ViewMatrix*ProjectionMartix,但不知什麼時候開始出現另一種乘法,ProjectionMartix*ViewMatrix*ModelMatrix,雖然早就知道矩陣乘法不具有交換律,但卻都沒有去好好確認過為什麼會有這樣的差異。最近發生在C++的引擎使用第一種方法,但webgl的引擎卻是使用第二種方法!剛好有這機會我就來探究原因。
內容
首先先把webgl的引擎用第一種方法乘,然後列印出來跟C++來比對,發現內容遽然不一樣!後來發現是兩邊的矩陣乘法的做法不一樣,C++的乘法來自一般數學課程對矩陣乘法的定義,webgl的引擎的乘法來自three.js的矩陣乘法,再來是我觀察unity3d也是使用第二種乘法,這時的我才發現原來矩陣的乘法有2種,一種是row*col另一種則是col*row。
沒有留言:
張貼留言