OpenGL ES平移矩陣和旋轉矩陣的左乘與右乘效果


OpenGL ES平移矩陣和旋轉矩陣的左乘與右乘

在OpenGL 、OpenGL ES中矩陣起着舉足輕重的作用,而矩陣之間的左乘與右乘在效果上是不同的。

一、先平移后旋轉

場景效果:人繞樹旋轉。

原理:以樹為參考點,首先將人平移到樹坐標系的指定位置(平移矩陣),然后旋轉一定角度(旋轉矩陣)。

公式:

pos = (matRotate * matTrans * vec4(pos,1.0)).xyz;

其中matRotate表示旋轉矩陣;

matTrans表示平移矩陣;

pos表示三維世界的坐標。

 

二、先旋轉后平移

場景效果:以太陽為參考點的地球自轉。

原理:以太陽為參考點,首先旋轉地球(旋轉矩陣),然后將地球平移到太陽坐標系的指定位置(平移矩陣)。

公式:

pos = (matTrans * matRotate * vec4(pos,1.0)).xyz;

其中matRotate表示旋轉矩陣;

matTrans表示平移矩陣;

pos表示三維世界的坐標。

 

注意事項:

OpenGL|ES是基於右手坐標系運算的,因此在上述公式中,矩陣是從右向左起作用的,也就是距離vec4的pos越近,越先起作用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM