一上陕、基礎(chǔ)圖形管線
OpenGL中圖元只不過是頂點的集合以預(yù)定義的方式結(jié)合在一起常潮。
管線分為:2個部分台谍,上半部分是客戶機端,下半部分是服務(wù)器端责语。
服務(wù)器和客戶端是功能和運行上都是異步的。它們是各自獨立的軟件塊或硬件塊目派。
二坤候、著色器
渲染過程,必備的2個著色器“頂點著色器”和“片元著色器” 企蹭。
三白筹、3種向OpenGL著色器傳遞渲染數(shù)據(jù)的方法
屬性
Uniform
紋理
3.1屬性
屬性: 就是對一個頂點都要作改變的數(shù)據(jù)元素智末。實際上,頂點位置本身就是一個屬性遍蟋。屬性可以是浮點類型吹害、整型、布爾類型虚青。
3.2 Uniform值
通過設(shè)置Uniform變量就緊接著發(fā)送一個圖元批次命令它呀。Uniform 變量實際上可以無限次限制地使用,設(shè)置一個應(yīng)用于整個表面的單個顏色值棒厘。還可以設(shè)置一個時間值纵穿。
3.3紋理
紋理!后續(xù)課程詳講!
3.4 輸出
輸出數(shù)據(jù):簡單的從一個階段傳遞到下一個階段∩萑耍客戶端的代碼接觸不到這些內(nèi)部變量谓媒。我們的OpenGL開發(fā)暫時接觸不到!
四、創(chuàng)建坐標(biāo)系
五何乎、透視投影setPerspective(float fFov,float fAspect,float fNear,float fFar)
六句惯、使用存儲著色器
6.1.使用背景
6.2存儲著色器的使用
單位著色器
平面著色器
上色著色器
默認(rèn)光源著色器
點光源著色器
紋理替換矩陣
紋理調(diào)整著色器
紋理光源著色器
//定義著色器
GLShaderMananger shaderManager;
//初始化著色器
shaderManager.lnitalizeStockShaders()
//使用
shaderManager userStockManager(參數(shù)列表)
七、OpenGL圖元
點
線
線帶
線環(huán)
三角形
三角形金字塔
三角形帶
三角形扇
OpenGL圖元----點
// 修改點的大小
glPointSize(4.0f);
// 設(shè)置點的大小范圍支救,點和點之間的距離
GLfloat sizes[2] = {2.0f,4.0f};
GLfloat stepSize = 1.0f;
// 獲取點的大小范圍和步長
glGetFloatv(GL_POINT_SIZE RANGE,sizes);
glGetFloatv(GL_POINT_GRAULRITY,&stepSize);
// 3.通過使用程序點大小模式設(shè)置點大小
glEnable(GL_PROGAM_POINT_SIZE);
// GLSL程序
gl_PointSize = 5.0f;
八抢野、GlBatch 容器(幫助類)
void GLBatch::Begain(Gl eunm primitive,GLuint nVerts,GLuint nTe xttureUnints = 0);
void GLBatch::CopyNormalDataf(GLfloat *vNorms);
void GLBatch::CopyColorData4f(GLfloat *vColors);
void GLBatch::CopyTexCoordData2f(GLFloat *vTextCoords,GLuint u iTextureLayer)