資源描述:
《OpenGL繪圖相關(guān)函數(shù)(I)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第二章2021/9/312.6OpenGL圖形軟件包OpenGL的主要功能OpenGL的繪制流程OpenGL的基本語法OpenGL的程序?qū)嵗?021/9/32OpenGL圖形軟件包OpenGL是SGI(SiliconGraphicsInc.)公司對IRISGL進(jìn)行改進(jìn),擴(kuò)展可移植性,形成的一個跨平臺開放式圖形編程接口。目前,OpenGL標(biāo)準(zhǔn)由1992年成立的獨立財團(tuán)OpenGLArchitectureReviewBoard(ARB)以投票方式產(chǎn)生,并制成規(guī)范文檔公布。2021/9/33OpenGL的主要功能模型繪制
2、模型觀察顏色模式光照應(yīng)用圖像效果增強(qiáng)位圖和圖像處理紋理映射實時動畫交互技術(shù)2021/9/34OpenGL的繪制流程——工作方式一個完整的窗口系統(tǒng)的OpenGL圖形處理系統(tǒng)的結(jié)構(gòu)為:最底層為圖形硬件,第二層為操作系統(tǒng),第三層為窗口系統(tǒng),第四層為OpenGL,最上面的層為應(yīng)用軟件。圖2.34OpenGL圖形處理系統(tǒng)在計算機(jī)系統(tǒng)中的層次結(jié)構(gòu)2021/9/35OpenGL的繪制流程——流水線圖2.35一條簡化的OpenGL繪制流水線包括命令、頂點數(shù)據(jù)和紋理等數(shù)據(jù)的OpenGL命令將放在命令緩沖區(qū)中,對幾何頂點數(shù)據(jù)進(jìn)行必要的
3、變換、光照計算并進(jìn)行投影后進(jìn)入光柵化流程,根據(jù)幾何形狀、顏色及紋理數(shù)據(jù)生成圖像的幀緩存地址和像素點值,結(jié)果置入幀緩沖存儲器中。注意:只有當(dāng)緩沖區(qū)被清空時,緩沖區(qū)中的命令和數(shù)據(jù)才會傳遞給流水線的下一個階段,OpenGL命令才會得到執(zhí)行。2021/9/36OpenGL的基本語法——相關(guān)庫OpenGL核心庫:gl115個函數(shù)OpenGL實用程序庫:glu43個函數(shù)OpenGL編程輔助庫:aux31個函數(shù)OpenGL實用程序工具包(OpenGLutilitytoolkit,GLUT):glut30多個函數(shù)Windows專用
4、庫:wgl6個函數(shù)2021/9/37OpenGL的基本語法——命名規(guī)則OpenGL函數(shù)都遵循一個命名約定,即采用以下格式:<庫前綴><根命令><可選的參數(shù)個數(shù)><可選的參數(shù)類型>例如函數(shù)glColor3f(…),gl表示這個函數(shù)來自庫gl.h,根命令Color表示該函數(shù)用于顏色設(shè)定,3f表示這個函數(shù)采用了三個浮點數(shù)參數(shù)。符號常量的表示:GL開頭,下劃線(_)分開,大寫。例如:GL_RGB,GL_POLYGON等2021/9/38OpenGL的基本語法——數(shù)據(jù)類型OpenGL數(shù)據(jù)類型內(nèi)部表示法定義為C類型C字面值后綴
5、GLbyte8位整數(shù)signedcharBGLshort16位整數(shù)shortSGLint,GLsizei32位整數(shù)longLGLfloat,GLclampf32位浮點數(shù)floatFGLdouble,GLclampd64位浮點數(shù)doubleDGLubyte,GLboolean8位無符號整數(shù)unsignedcharUbGLshort16位無符號整數(shù)unsignedshortUsGLuint,GLenum,GLbitfield32位無符號整數(shù)unsignedlongUi表2.2OpenGL的數(shù)據(jù)類型2021/9/39Op
6、enGL程序?qū)嵗^文件包含利用OpenGL實現(xiàn)圖形繪制,首先要引入OpenGL核心庫以及其他需要使用的庫的頭文件。glut保證了gl.h和glu.h被正確包含。#include#include2021/9/310OpenGL程序?qū)嵗翱诠芾沓跏蓟╣lutInit)創(chuàng)建窗口(glutCreateWindow)設(shè)定窗口的顯示模式(glutInitDisplayMode)指定窗口的位置和大?。╣lutInitWindowPosition和glutInitWindowS
7、ize)指定窗口的顯示內(nèi)容函數(shù)(glutDisplayFunc)運行框架(glutMainLoop)2021/9/311OpenGL程序?qū)嵗L制圖形指定窗口背景色(glClearColor)顏色管理,使用RGB顏色模型。一種顏色用紅、綠、藍(lán)三種顏色成分混合而成,每種顏色成分使用0.0到1.0之間的任意有效浮點數(shù)來表示顏色值(見下頁)。2021/9/312OpenGL程序?qū)嵗L制圖形混合色紅色成分(R)綠色成分(G)藍(lán)色成分(B)黑0.00.00.0紅1.00.00.0綠0.01.00.0黃1.01.00.0
8、藍(lán)0.00.01.0紫1.00.01.0青0.01.01.0深灰0.250.250.25淺灰0.750.750.75棕0.600.400.12南瓜橙0.980.6250.12粉紅0.980.040.70紫紅0.600.400.70白1.01.01.0表2.2OpenGL的一些常用混合色2021/9/313OpenGL程序?qū)嵗L制圖形刷新窗口的緩沖區(qū)glC