您好,登錄后才能下訂單哦!
引子
因此我們來理解這樣一個式子,ACb,AC為矩陣,b為一個向量
上面的兩種理解方式也揭示了對向量的變換和對坐標系的變換是等價的,這一點也可以通過后面旋轉變換的圖示中看出來。
各種變換
平移矩陣
縮放矩陣
平移矩陣和縮放矩陣很容易理解,并且從矩陣形式我們也可以看到為什么用四維的向量表示一個頂點了,除了w分量用來做透視除法以外,另一個作用不也正好是為了把平移整合進來嗎,都做乘法而不做加法。在數學上也就是將三維空間的坐標表示成其齊次形式.
旋轉變換
旋轉變換相對來說較為復雜,對繞x、y或z軸旋轉的情況比較好理解。
以繞z軸旋轉為例
于是
寫成矩陣形式為
繞任意軸旋轉的旋轉矩陣為
同理,前面學到的正交投影矩陣,透視矩陣以及攝像機矩陣,本質上和上面的變換都是一樣的。
前面可以看到一般傳入渲染管線的是一個由攝像機矩陣,投影矩陣,變換矩陣相乘得到的總的變換矩陣,
在頂點著色器中一般是這樣的形式
gl_Position = uMVPMatrix * vec4(aPosition,1);
上面的代碼中的變量uMVPMatrix表示了模型(M)、視圖(V)、投影(P)三中變換綜合,
注意到矩陣乘法的順序,對每個點所做的變換是有順序的,對每個點先進行模型變換(平移縮放旋轉)、再進行視圖變換(攝像機視角)再進行投影變換,這三個變換順序是不可變得,因為改變順序最終看到的效果都是不一樣的。
對每個點所做的綜合變換本質上就是對這個點進行矩陣相乘,然而就我們傳入的是最終的綜合變換矩陣而言,剛才的理解不是特別準確,換個思路理解成綜合變換矩陣就是對坐標系的變換會更好,因為畢竟我們是一次性將這個相乘后的綜合矩陣傳進去的。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。