引子
因此我們來理解這樣一個(gè)式子,ACb,AC為矩陣,b為一個(gè)向量
上面的兩種理解方式也揭示了對(duì)向量的變換和對(duì)坐標(biāo)系的變換是等價(jià)的,這一點(diǎn)也可以通過后面旋轉(zhuǎn)變換的圖示中看出來。
各種變換
平移矩陣
縮放矩陣
平移矩陣和縮放矩陣很容易理解,并且從矩陣形式我們也可以看到為什么用四維的向量表示一個(gè)頂點(diǎn)了,除了w分量用來做透視除法以外,另一個(gè)作用不也正好是為了把平移整合進(jìn)來嗎,都做乘法而不做加法。在數(shù)學(xué)上也就是將三維空間的坐標(biāo)表示成其齊次形式.
旋轉(zhuǎn)變換
旋轉(zhuǎn)變換相對(duì)來說較為復(fù)雜,對(duì)繞x、y或z軸旋轉(zhuǎn)的情況比較好理解。
以繞z軸旋轉(zhuǎn)為例
于是
寫成矩陣形式為
繞任意軸旋轉(zhuǎn)的旋轉(zhuǎn)矩陣為
同理,前面學(xué)到的正交投影矩陣,透視矩陣以及攝像機(jī)矩陣,本質(zhì)上和上面的變換都是一樣的。
前面可以看到一般傳入渲染管線的是一個(gè)由攝像機(jī)矩陣,投影矩陣,變換矩陣相乘得到的總的變換矩陣,
在頂點(diǎn)著色器中一般是這樣的形式
gl_Position = uMVPMatrix * vec4(aPosition,1);
上面的代碼中的變量uMVPMatrix表示了模型(M)、視圖(V)、投影(P)三中變換綜合,
注意到矩陣乘法的順序,對(duì)每個(gè)點(diǎn)所做的變換是有順序的,對(duì)每個(gè)點(diǎn)先進(jìn)行模型變換(平移縮放旋轉(zhuǎn))、再進(jìn)行視圖變換(攝像機(jī)視角)再進(jìn)行投影變換,這三個(gè)變換順序是不可變得,因?yàn)楦淖冺樞蜃罱K看到的效果都是不一樣的。
對(duì)每個(gè)點(diǎn)所做的綜合變換本質(zhì)上就是對(duì)這個(gè)點(diǎn)進(jìn)行矩陣相乘,然而就我們傳入的是最終的綜合變換矩陣而言,剛才的理解不是特別準(zhǔn)確,換個(gè)思路理解成綜合變換矩陣就是對(duì)坐標(biāo)系的變換會(huì)更好,因?yàn)楫吘刮覀兪且淮涡詫⑦@個(gè)相乘后的綜合矩陣傳進(jìn)去的。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注