一、工具類
1.GLTool 包含了了?大部分GLTool中類似C語?言的獨?立函數(shù)
2.GLMatrixStack 矩陣的工具類, 可以加載單元矩陣/矩陣/矩陣相乘/壓棧/出棧/縮放/平移/旋轉(zhuǎn)
3.GLFrame 矩陣工具類,表示位置通過設(shè)置 vOrigion, vForward, vUp
4.GLFrustum 矩陣工具類, 用來快速設(shè)置正/透視投影矩陣, 完成坐標(biāo) 3D->2D的映射過程
5.GLBatch 三角形批次類, 幫助類, 它可以傳輸頂點/光照/紋理/顏色數(shù)據(jù)到存儲著色器中
二、自定義常用的全局變量
1.GLShaderManager shaderManager;
- 存儲著色器管理工具類似于 AFN 的管理者 manager, 用來初始化等等操作
2.GLMatrixStack modelViewMatrix;
- 模型矩陣
3.GLMatrixStack projectionMatrix;
- 投影矩陣
4.GLFrame cameraFrame;
- 設(shè)置觀察者位置
5.GLFrame objectFrame;
- 設(shè)置圖形環(huán)繞時視圖坐標(biāo)
//投影設(shè)置
6.GLFrustum viewFrustum; //容器器類(7種不不同的圖元對應(yīng)7種容器器對象)
- 設(shè)置圖元繪制時投影方式
a.GLBatch pointBatch;
b.GLBatch lineBatch;
c.GLBatch lineStripBatch;
d.GLBatch lineLoopBatch; GLBatch triangleBatch;
e.GLBatch triangleStripBatch;
f.GLBatch triangleFanBatch;
三、常用的重要函數(shù)
main函數(shù)
1. int main(int argc, char* argv[])
程序入口.OpenGL 是?面向過程編程.所以你會發(fā)現(xiàn)利用OpenGL處理圖形/圖像都是鏈?zhǔn)叫问?以及基于OpenGL封裝的圖像處理框架也是鏈?zhǔn)骄幊碳凑{(diào)用各個函數(shù)方法
2.void ChangeSize(int w, int h)
?自定義函數(shù).通過 glutReshaperFunc (函數(shù)名)注冊為重塑函數(shù).當(dāng)屏幕?小發(fā)?變化/或者第?次創(chuàng)建窗?時,會調(diào)?用該函數(shù)調(diào)整窗口?小/視?大小.
3.void RenderScene(void)
?自定義函數(shù).通過 glutDisplayFunc (函數(shù)名)注冊為顯示渲染函數(shù).當(dāng)屏幕發(fā)?生變化/或者開發(fā)者主動渲染會調(diào)?用此函數(shù),?用來實現(xiàn)數(shù)據(jù)->渲染過程
1.系統(tǒng)?自動觸發(fā)
2.開發(fā)者?手動調(diào)?用函數(shù)觸發(fā).
4.void SetupRC()
設(shè)置你需要渲染的圖形的 相關(guān)頂點數(shù)據(jù)/顏?色數(shù)據(jù)等數(shù)
5.void SpecialKeys(int key, int x, int y)
鍵位設(shè)置,通過不同的鍵位對其進(jìn)行設(shè)置;控制Camera的移動,從而改變視口(一般就是特殊鍵位, 類似 f1, f2, 上下左右, 空格)
6.void KeyPressFunc(unsigned char key, int x, int y)
用戶敲擊”空格”鍵位觸發(fā):
1.判斷?用戶輸?入的是”空格”
2.設(shè)置窗?口名稱
3.手動觸發(fā)重新渲染