圖解:
一、幾何變換
在opengl中,平移、旋轉、放縮等變換是通過乘以一個變換矩陣來實現的。
1、平移
2、放縮
注意:放縮時是以原點爲中心進行放縮,若想以物體中心爲中心進行放縮,則需先將物體移至原點,放縮之後再移回去。
3、旋轉
1)沿座標軸旋轉
2)沿任意軸旋轉
4、爲什麼要用矩陣實現幾何變換
1)gpu擅長進行矩陣運算
2)將幾個幾何變換先進行矩陣運算,再作用到每個頂點上可以大大減小運算量
5、用堆棧管理矩陣
6、模型變換與視點變換
opengl用矩陣來實現各種變換,如模型變換、視點變換、投影變換、紋理變換,其中模型變換和視點變換放在一個模塊中,
如圖:,調用這句話後才能對模型和視點進行變換。
若想單獨對視點進行變換,則使用下面這個函數:
7、全局變換和局部變換
局部座標系的變換順序如果逆置,則效果爲全局座標系的變換順序,如下圖。
二、投影變換
透視投影(Perspective projection):有一個投影點,投影點點與物體頂點連成一條直線投射在投影平面上
平行投影(Parallel projection):沒有投影點,所有頂點的投影方向一致
正投影(Orthographic projection):特殊的平行投影,投影方向始終與投影平面垂直
opengl進行投影變換的函數:
注意:,調用這句話後才能對投影矩陣進行變換。
三、視口變換
當投影窗口的長寬比與視口的長寬比不一致時,物體會變形。