資源描述:
《《OpenGL編程基礎(chǔ)》PPT課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、OpenGL基礎(chǔ)函數(shù)OpenGL圖元繪制關(guān)于清除窗口函數(shù)的說明:glClearColor();句法:voidglClearColor(red,green,blue,alpha);描述:該函數(shù)設(shè)置當(dāng)前清空的顏色。關(guān)于清除窗口函數(shù)的說明:glClear();句法:voidglClear(被清除的緩沖區(qū)的名稱);描述:該函數(shù)將指定的緩沖區(qū)清除成glClearColor語句指定的顏色。緩沖區(qū)名稱顏色緩沖區(qū)GL_COLOR_BUFFER_BIT深度緩沖區(qū)GL_DEPTH_BUFFER_BIT累積緩沖區(qū)GL_ACCUM_BUFFER_BIT
2、模板緩沖區(qū)GL_STENCIL_BUFFER_BIT關(guān)于清除窗口函數(shù)的應(yīng)用:設(shè)置背景色:glClearColor(0.0,0.0,0.0,0.0);glClear(GL_COLOR_BUFFER_BIT);清空顏色緩沖區(qū),并將其設(shè)置為alpha值為0的黑顏色。關(guān)于清除窗口函數(shù)的應(yīng)用:設(shè)置背景色及初始化深度緩沖區(qū)。消隱處理的初始化步驟。glClearColor(0.0,0.0,0.0,0.0);glClearDepth(1.0);//將深度緩存區(qū)的數(shù)值全部設(shè)為1.0glClear(GL_COLOR_BUFFER_BIT
3、GL_DE
4、PTH_BUFFER_BIT);清空顏色緩沖區(qū)和深度緩存區(qū),將顏色緩沖區(qū)設(shè)置為黑色,將深度緩存區(qū)中所有像素設(shè)置為1.0?!咀ⅰ縊penGL深度緩存的工作原理:將觀察對象的深度,即離觀察者(通常為遠(yuǎn)裁剪面)的距離與窗口中的每一個像素關(guān)聯(lián)起來。通常先將所有像素的數(shù)值設(shè)為最大(如果視景體的深度坐標(biāo)即Z坐標(biāo)取值為-1.0~1.0,則1.0為最大值。深度緩存技術(shù)通常用在隱藏面消除、三維混合等方面。關(guān)于著色模型函數(shù)的說明:glShadeModel();句法:voidglShadeModel(mode);描述:參數(shù)mode的取值為GL_SMO
5、OTH(平滑著色模型)或GL_FLAT(單調(diào)著色模型)。GL_SMOOTH:如果圖元是多邊形,則多邊形內(nèi)部的顏色是所有頂多的顏色的均勻插值。GL_FLAT:整個圖元的顏色就是任意一個頂點的顏色。關(guān)于幾何圖元創(chuàng)建函數(shù)的說明:glBegin();句法:voidglBegin(mode);描述:標(biāo)志著一個頂點數(shù)據(jù)系列的開始,系列頂點描述了一個幾何圖元,參數(shù)mode指定了圖元的類型,可以取下頁表所列的值。glEnd();句法:voidglEnd();描述:標(biāo)志著一個頂點數(shù)據(jù)系列的結(jié)束。值含義GL_POINTS單個的點GL_LINES一對
6、頂點被解釋為一條直線GL_LINE_STRIP一系列的連續(xù)線,首尾不連接GL_LINE_LOOP一系列的連續(xù)線,并首尾連接GL_TRIANGLES3個頂點被解釋為一個三角形GL_TRIANGLE_STRIP三角形的連接串GL_TRIANGLE_FAN連接成扇形的三角形系列GL_QUADS4個頂點被解釋為一個四邊形GL_QUAD_STRIP四邊形的連接串GL_POLYGON所有頂點被解釋為簡單的凸多邊形的邊界glBegin()函數(shù)中參數(shù)mode名稱及含義表glBegin()和glEnd()之間的合法函數(shù)表函數(shù)函數(shù)的作用glVert
7、ex*()設(shè)置頂點坐標(biāo)glColor*()設(shè)置RGBA顏色glIndex*()設(shè)置顏色索引glEdgeFlag*()控制邊的繪制glArrayElement提取頂點數(shù)組數(shù)據(jù)……(省略9個函數(shù))……注意:只有OpenGL函數(shù)受到這個限制,glBegin()和glEnd()之間可以包含其它編程語言結(jié)構(gòu)。修改“初始化”工程,觀察修改運行效果。將init()函數(shù)中的glShadeModel著色模型參數(shù)設(shè)為GL_SMOOTH平滑著色模式。將display()函數(shù)中的glBegin()與glEnd()之間代碼修改如下。glBegin(GL_
8、POLYGON);//繪制多邊形glColor3f(1.0,0.0,0.0);//設(shè)置前景色,即填充色。glVertex3f(0.25,0.25,0.0);//繪制多邊形第一個頂點glColor3f(0.0,1.0,0.0);glVertex3f(0.75,0.75,0.0);//繪制多邊形第二個頂點glColor3f(0.0,0.0,1.0);glVertex3f(0.75,0.25,0.0);//繪制多邊形第三個頂點glEnd();繪制模式應(yīng)用舉例課外練習(xí)——繪制模式應(yīng)用:1、觀察GL_LINES、GL_LINE_STRIP
9、和GL_LINE_LOOP三種直線繪制模式的繪制效果。2、已知三點坐標(biāo),觀察GL_TRIANGLES;已知5~6個點坐標(biāo)時,觀察GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN三角形繪制模式的繪制效果。