




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
5.8在OpenGL中繪制圖形5.8.1點的繪制5.8.2直線的繪制5.8.3多邊形面的繪制5.8.4OpenGL中的字符函數5.8.5OpenGL中的反走樣5.8在OpenGL中繪制圖形5.8.1點的繪制15.8.1點的繪制點的繪制glBegin(GL_POINTS);glVertex3f(0.0f,0.0f,0.0f);glVertex3f(10.0f,0.0f,0.0f);glEnd();點的屬性(大小)voidglPointSize(GLfloatsize);5.8.1點的繪制點的繪制25.8.2直線的繪制直線的繪制模式GL_LINESGL_LINE_STRIPGL_LINE_LOOP(a)GL_LINES(b)GL_LINE_LOOP(c)GL_LINE_STRIP圖5-60OpenGL畫線模式5.8.2直線的繪制直線的繪制模式(a)GL_LINES3直線的屬性線寬voidglLineWidth(GLfloatwidth)線型glEnable(GL_LINE_STIPPLE);glLineStipple(GLintfactor,GLushortpattern);直線的屬性4圖5-61畫線模式用于構造線段圖5-61畫線模式用于構造線段55.8.3多邊形面的繪制三角形面的繪制GL_TRIANGLESGL_TRIANGLE_STRIPGL_TRIANGLE_FAN四邊形面的繪制GL_QUADSGL_QUADS_STRIP多邊形面的繪制(GL_POLYGON)5.8.3多邊形面的繪制三角形面的繪制6多邊形面的繪制規則所有多邊形都必須是平面的。多邊形的邊緣決不能相交,而且多邊形必須是凸的。解決:對于非凸多邊形,可以把它分割成幾個凸多邊形(通常是三角形),再將它繪制出來。多邊形面的繪制規則7問題:輪廓圖形狀態會看到組成大表面的所有小三角形。處理OpenGL提供了一個特殊標記來處理這些邊緣,稱為邊緣標記。glEdgeFlag(True)glEdgeFlag(False)問題:輪廓圖形狀態會看到組成大表面的所有小三角形。處理Ope82.多邊形面的屬性(1)多邊形面的正反屬性(繞法) 指定頂點時順序和方向的組合稱為“繞法”。繞法是任何多邊形圖元的一個重要特性。一般默認情況下,OpenGL認為逆時針繞法的多邊形是正對著的。
glFrontFace(GL_CW); glFrontFace(GL_CCW);2.多邊形面的屬性(1)多邊形面的正反屬性(繞法)9(2)多邊形面的顏色glShadeModel(GL_FLAT)用指定多邊形最后一個頂點時的當前顏色作為填充多邊形的純色,唯一例外是GL_POLYGON圖元,它采用的是第一個頂點的顏色。glShadeModel(GL_SMOOTH)從各個頂點給多邊形投上光滑的陰影,為各個頂點指定的顏色之間進行插值。(2)多邊形面的顏色glShadeModel(GL_FLA10例glBegin(GL_TRIANGLES); glColor3f(1.0,0.0,0.0); glVertex2f(5.0,5.0); glColor3f(0.0,1.0,0.0); glVertex2f(25.0,5.0); glColor3f(0.0,0.0,1.0); glVertex2f(5.0,25.0);glEnd();GL_FLATGL_SMOOTH例glBegin(GL_TRIANGLES);GL_FLA11(3)多邊形面的顯示模式glPolygonMode(GLenumface,GLenummode);參數face用于指定多邊形的哪一個面受到模式改變的影響。參數mode用于指定新的繪圖模式。(3)多邊形面的顯示模式glPolygonMode(GLe12(4)多邊形面的填充 多邊形面既可以用純色填充,也可以用32×32的模板位圖來填充。voidglPolygonStipple(constGLubyte*mask);glEnable(GL_POLYGON_STIPPLE);(4)多邊形面的填充 多邊形面既可以用純色填充,也可以用13(5)多邊形面的法向量法向量是垂直于面的方向上點的向量,它確定了幾何對象在空間中的方向。在OpenGL中,可以為每個頂點指定法向量。 voidglNormal3{bsidf}(TYPEnx,TYPEny,TYPEnz); voidglNormal3{bsidf}v(constTYPE*v);(5)多邊形面的法向量法向量是垂直于面的方向上點的向量,它145.8.4OpenGL中的字符函數GLUT位圖字符voidglutBitmapCharacter(void*font,intcharacter);GLUT矢量字符 voidglutStrokeCharacter(void*font,intcharacter);5.8.4OpenGL中的字符函數GLUT位圖字符155.8.5OpenGL中的反走樣[☆程序5-12]啟用反走樣 glEnable(primitiveType);啟用OpenGL顏色混和 glEnable(GL_BLEND);指定顏色混合函數 glBlendFunc(GL_SCR_ALPHA, GL_ONE_MINUS_SRC_ALPHA);5.8.5OpenGL中的反走樣[☆程序5-12]16顏色混和函數用于計算兩個相互重疊的對象的顏色。在RGBA顏色模式(A表示透明度)中,已知源像素的顏色值為(Sr,Sg,Sb,Sa)目標像素的顏色值為(Dr,Dg,Db,Da)顏色混合后像素的顏色為:
(RS·Sr+RD·Dr,GS·Sg+GD·Dg,BS·Sb+BD·Db,AS·Sa+AD·Da)顏色混和函數用于計算兩個相互重疊的對象的顏色。17定義混合因子 voidglBlendFunc(GLenumsrcfactor, GLenumdestfactor);定義混合因子18表5-1源混和因子和目標混合因子常量RGB混合因子Alpha混合因子GL_ZERO(0,0,0)0GL_ONE(1,1,1)1GL_SRC_COLOR(RS,GS,BS)ASGL_ONE_MINUS_SRC_COLOR(1,1,1)-(RS,GS,BS)1-ASGL_DST_COLOR(RD,GD,BD)ADGL_ONE_MINUS_DST_COLOR(1,1,1)-(RD,GD,BD)1-ADGL_SCR_ALPHA(AS,AS,AS)ASGL_ONE_MINUS_SRC_ALPHA(1,1,1)-(AS,AS,AS)1-ASGL_DST_ALPHA(AD,AD,AD)ADGL_ONE_MINUS_DST_ALPHA(1,1,1)-(AD,AD,AD)1-AD表5-1源混和因子和目標混合因子常量RGB混合因子Al195.8在OpenGL中繪制圖形5.8.1點的繪制5.8.2直線的繪制5.8.3多邊形面的繪制5.8.4OpenGL中的字符函數5.8.5OpenGL中的反走樣5.8在OpenGL中繪制圖形5.8.1點的繪制205.8.1點的繪制點的繪制glBegin(GL_POINTS);glVertex3f(0.0f,0.0f,0.0f);glVertex3f(10.0f,0.0f,0.0f);glEnd();點的屬性(大小)voidglPointSize(GLfloatsize);5.8.1點的繪制點的繪制215.8.2直線的繪制直線的繪制模式GL_LINESGL_LINE_STRIPGL_LINE_LOOP(a)GL_LINES(b)GL_LINE_LOOP(c)GL_LINE_STRIP圖5-60OpenGL畫線模式5.8.2直線的繪制直線的繪制模式(a)GL_LINES22直線的屬性線寬voidglLineWidth(GLfloatwidth)線型glEnable(GL_LINE_STIPPLE);glLineStipple(GLintfactor,GLushortpattern);直線的屬性23圖5-61畫線模式用于構造線段圖5-61畫線模式用于構造線段245.8.3多邊形面的繪制三角形面的繪制GL_TRIANGLESGL_TRIANGLE_STRIPGL_TRIANGLE_FAN四邊形面的繪制GL_QUADSGL_QUADS_STRIP多邊形面的繪制(GL_POLYGON)5.8.3多邊形面的繪制三角形面的繪制25多邊形面的繪制規則所有多邊形都必須是平面的。多邊形的邊緣決不能相交,而且多邊形必須是凸的。解決:對于非凸多邊形,可以把它分割成幾個凸多邊形(通常是三角形),再將它繪制出來。多邊形面的繪制規則26問題:輪廓圖形狀態會看到組成大表面的所有小三角形。處理OpenGL提供了一個特殊標記來處理這些邊緣,稱為邊緣標記。glEdgeFlag(True)glEdgeFlag(False)問題:輪廓圖形狀態會看到組成大表面的所有小三角形。處理Ope272.多邊形面的屬性(1)多邊形面的正反屬性(繞法) 指定頂點時順序和方向的組合稱為“繞法”。繞法是任何多邊形圖元的一個重要特性。一般默認情況下,OpenGL認為逆時針繞法的多邊形是正對著的。
glFrontFace(GL_CW); glFrontFace(GL_CCW);2.多邊形面的屬性(1)多邊形面的正反屬性(繞法)28(2)多邊形面的顏色glShadeModel(GL_FLAT)用指定多邊形最后一個頂點時的當前顏色作為填充多邊形的純色,唯一例外是GL_POLYGON圖元,它采用的是第一個頂點的顏色。glShadeModel(GL_SMOOTH)從各個頂點給多邊形投上光滑的陰影,為各個頂點指定的顏色之間進行插值。(2)多邊形面的顏色glShadeModel(GL_FLA29例glBegin(GL_TRIANGLES); glColor3f(1.0,0.0,0.0); glVertex2f(5.0,5.0); glColor3f(0.0,1.0,0.0); glVertex2f(25.0,5.0); glColor3f(0.0,0.0,1.0); glVertex2f(5.0,25.0);glEnd();GL_FLATGL_SMOOTH例glBegin(GL_TRIANGLES);GL_FLA30(3)多邊形面的顯示模式glPolygonMode(GLenumface,GLenummode);參數face用于指定多邊形的哪一個面受到模式改變的影響。參數mode用于指定新的繪圖模式。(3)多邊形面的顯示模式glPolygonMode(GLe31(4)多邊形面的填充 多邊形面既可以用純色填充,也可以用32×32的模板位圖來填充。voidglPolygonStipple(constGLubyte*mask);glEnable(GL_POLYGON_STIPPLE);(4)多邊形面的填充 多邊形面既可以用純色填充,也可以用32(5)多邊形面的法向量法向量是垂直于面的方向上點的向量,它確定了幾何對象在空間中的方向。在OpenGL中,可以為每個頂點指定法向量。 voidglNormal3{bsidf}(TYPEnx,TYPEny,TYPEnz); voidglNormal3{bsidf}v(constTYPE*v);(5)多邊形面的法向量法向量是垂直于面的方向上點的向量,它335.8.4OpenGL中的字符函數GLUT位圖字符voidglutBitmapCharacter(void*font,intcharacter);GLUT矢量字符 voidglutStrokeCharacter(void*font,intcharacter);5.8.4OpenGL中的字符函數GLUT位圖字符345.8.5OpenGL中的反走樣[☆程序5-12]啟用反走樣 glEnable(primitiveType);啟用OpenGL顏色混和 glEnable(GL_BLEND);指定顏色混合函數 glBlendFunc(GL_SCR_ALPHA, GL_ONE_MINUS_SRC_ALPHA);5.8.5OpenGL中的反走樣[☆程序5-12]35顏色混和函數用于計算兩個相互重疊的對象的顏色。在RGBA顏色模式(A表示透明度)中,已知源像素的顏色值為(Sr,Sg,Sb,Sa)目標像素的顏色值為(Dr,Dg,Db,Da)顏色混合后像素的顏色為:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 評價隋唐地方管理制度
- 訴訟檔案借閱管理制度
- 診所消毒隔離管理制度
- 試乘試駕基地管理制度
- 財政單據核銷管理制度
- 貨物入庫餐飲管理制度
- 貨物進出單據管理制度
- 貨車司機行為管理制度
- 過橋貸款協議書范本
- 水廠投資合同協議書范本
- 江西省九江市外國語學校2025屆英語八下期末學業質量監測試題含答案
- 2025年全國統一高考語文試卷(全國一卷)含答案
- 四川體彩銷售員考試試題及答案
- 2025年河北省萬唯中考定心卷生物(二)
- 廠區物業維修管理制度
- 2025年福建省高中自主招生模擬數學試卷試題(含答案)
- 瀘州理綜中考試題及答案
- 餐飲運營餐飲管理流程考核試題及答案在2025年
- 內鏡室患者服務專員職責與流程
- 2025龍巖市上杭縣藍溪鎮社區工作者考試真題
- 2025建設銀行ai面試題目及最佳答案
評論
0/150
提交評論