freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計算機(jī)圖形學(xué)ppt課件(已修改)

2025-05-16 12:18 本頁面
 

【正文】 OpenGL OpenGL ? 什么是 OpenGL? – OpenGL是一個功能強(qiáng)大的開放圖形庫( Open Graphics Library)。其前身是 SGI公司為其圖形工作站開發(fā)的 IRIS GL。為使其能夠更加容易地移植到不同的硬件和操作系統(tǒng), SGI開發(fā)了 OpenGL。 ? OpenGL被打造為開放性標(biāo)準(zhǔn),任何軟硬件廠商均可自由使用,這讓它受到廣泛的歡迎。 2 ? 背景 – 1992年 7月, SGI正式發(fā)布 OpenGL 。OpenGL SGI的預(yù)期設(shè)計目標(biāo):功能強(qiáng)大、移植性良好并能自由使用。 SGI和微軟進(jìn)行首次合作、聯(lián)手將 OpenGL Windows NT平臺。 – OpenGL規(guī)范由 ARB( Architecture Review Broad)管理,成員為 SGI、 MS、 intel、 IBM、Sun等公司。 2022年的 7月, ARB公布 OpenGL ——迄今為止最新的 OpenGL版本。 –支持各種操作系統(tǒng)和編程環(huán)境。 3 ? 從程序開發(fā)人員的角度來看, OpenGL是一組繪圖命令的API集合。利用這些 API能夠方便地描述二維和三維幾何物體,并控制這些物體按某種方式繪制到顯示緩沖區(qū)中。 ? 主要功能: – 繪制模型:點(diǎn)線多邊形、球、錐、多面體、茶壺、貝塞爾曲線 – 各種變換:基本變換(平移、縮放、旋轉(zhuǎn)、鏡像)、平行投影、透視投影 – 著色模式: RGBA( alpha),顏色索引 4 ? 主要功能: – 光照處理:材質(zhì),輻射光、環(huán)境光、漫反射光等 5 ? 主要功能: – 紋理映射:紋理數(shù)據(jù)包括顏色、亮度和 alpha,真實(shí)感紋理 6 ? 主要功能: – 位圖和圖像 – 制作動畫:雙緩存,后臺緩存用于計算場景和生成畫面,前臺緩存用于顯示畫面,產(chǎn)生平滑動畫 – 選擇和反饋 7 ? OpenGL的繪制流程和原理: 評價器:頂點(diǎn)轉(zhuǎn)換、光照設(shè)置 基片:一系列圖像的幀緩存描述值 演示程序 8 OpenGL能做什么? OpenGL怎樣學(xué)? 函數(shù)很多,先以模仿為主,熟能生巧 ? 1.頂點(diǎn)坐標(biāo) – OpenGL采用有序排列的頂點(diǎn)集合來構(gòu)造幾何圖元。 如: glVertex2s(2,5)。 //整數(shù)定義的二維坐標(biāo) glVertex3f(2,5,7)。 //浮點(diǎn)定義的三維坐標(biāo) ? 頂點(diǎn)關(guān)系 – 在 OpenGL中,同一個幾何圖元的所有被定義的頂點(diǎn)一起放在 glBegin()和 glEnd()函數(shù)之間,同時定義這些頂點(diǎn)之間的關(guān)系。如: ? glBegin(GL_POLYGON)。 ? glVertex2s(0,0)。 glVertex2s(0,11)。 ? glVertex2s(11,14)。 glVertex2s(14,7)。 ? glEnd()。 11 ? GL_POINTS 單個頂點(diǎn)集 ? GL_LINES 多組雙頂點(diǎn)線段 ? GL_POLYGON 單個簡單填充凸多邊形 ? GL_TRAINGLES 多組獨(dú)立填充三角形 ? GL_QUADS 多組獨(dú)立填充四邊形 ? GL_LINE_STRIP 不閉合折線 ? GL_LINE_LOOP 閉合折線 ? GL_TRAINGLE_STRIP 線型連續(xù)填充三角形串 ? GL_TRAINGLE_FAN 扇形連續(xù)填充三角形串 ? GL_QUAD_STRIP連續(xù)填充四邊形串 12 ? 用 OpenGL生成點(diǎn) – glPointSize()。 – glBegin(GL_POINTS)。 – glVertex2f(,)。 – glVertex3f(,)。 – glEnd()。 13 ? 用 OpenGL生成直線 – glLineWidth() – glLineStipple,線形用 16位二進(jìn)制描述,如0101010101010101表示點(diǎn)線,編程時轉(zhuǎn)為十六進(jìn)制 – glEnable(GL_LINE_STIPPLE)。 – glLineStipple(2, 0x00FF)。 14 ? 用 OpenGL生成區(qū)域填充 –區(qū)域圖形繪制 GL_POLYGON –實(shí)模式填充 –點(diǎn)畫模式(圖案 32*32)填充 ? glEnable(GL_POLYGON_STIPPLE)。 ? glPolygonStipple (fly)。 ? glRectf(, , , )。 ? glDisable(GL_POLYGON_STIPPLE)。 15 ? 用 OpenGL生成區(qū)域填充 –多邊形面的繪制 ? 多邊形是三維的,被認(rèn)為由正反兩個面組成 ? 多邊形面的控制 void glPolygonMode(GLenum face, GLenum mode) face控制是否繪制正反面 : GL_FRONT_AND_BACK GL_FRONT。 GL_BACK mode控制繪制方式: GL_POINT用一定間隔的點(diǎn)填充;GL_LINE只畫多邊形的邊框; GL_FILL填充多邊形 ? 例: glPolygonMode(GL_FRONT,GL_FILL) glPolygonMode(GL_BACK,GL_LINE) 16 ? 用 OpenGL生成區(qū)域填充 –多邊形面的繪制 ? 多邊形面的定義 void glFrontFace(GLenum mode) mode: GL_CW。 GL_CCW(逆時針,默認(rèn)) ? 多邊形面的剔除 void glCullFace(GLenum mode) mode: GL_FRONT,剔除正面 GL_BACK,剔除背面 GL_FRONT_AND_BACK,剔除全部 需要 glEnable(GL_CULL_FACE)激活和 glDisable(GL_CULL_FACE)去活 17 ? 用 OpenGL生成區(qū)域填充 –多邊形面的繪制 ? 多邊形面的法向量 面在空間中的方向,決定可以接收多少光照 ? glNormal*()設(shè)置當(dāng)前法向量。 ? void glNormal3{bsidf}(TYPE nx,TYPE ny,TYPE nz)。 ? void glNormal3{bsidf}v(const TYPE* v)。 ? 法向量需要由用戶計算并顯式指定。 18 ? 用 OpenGL生成字符 –英文字體 ? 位圖字體 – 速度快 – 定位 glRasterPos() ? 輪廓字體 – 多邊形填充 – 有利于拉伸、縮放等變換 ? 紋理映射字體 – 街道、墻面的標(biāo)記 – wglUseFontBitmaps(wglGetCurrentDC(),0,256,1000)。 – glListBase(1000)。 – glRasterPos3f(,)。 – glCallLists(20, GL_UNSIGNED_BYTE,‖Draw with List Text.‖) 19 ? 用 OpenGL生成字符 –中文字體 ? ( 1)用 wglUseFontBitmaps或 wglUseOutlines為每個字生成一個 List。 ? ( 2)為每個字調(diào)用 glCallList或?yàn)槊總€字串調(diào)用glCallLists ? 問題一:漢字字體個數(shù)太多,不能一次全部讀入 – 建立清單,相當(dāng)于字體緩存,用到的字體才加進(jìn)來 ? 問題二:漢字為雙字節(jié) – 組合為 DWORD傳給 wglUseFont*() 20 ? OpenGL的緩存( Buffer) – 1 顏色緩存( Color Buffer):顏色索引或者 RGBA數(shù)據(jù),前、后緩存; – 2 深度緩存( Depth Buffer) :保存象素 Z方向的數(shù)值,深度大的被深度小的代替,用以實(shí)現(xiàn)消隱; – 3 模板緩存( Stencil Buffer):用以保持屏幕上某些位置圖形不變,而其他部分重繪。例如大家熟悉的開飛機(jī)和賽車的游戲的駕駛艙視角,只有擋風(fēng)外面的景物變化,艙內(nèi)儀表等等并不變化。 – 4 累計緩存( Accumulation Buffer) 只保存 RGBA數(shù)據(jù),用于合成圖象,例如有某緩存中的位圖調(diào)入這里合成一幅新圖。 21 ? 安裝 GLUT工具包 GLUT不是 OpenGL所必須的,但它會給我們的學(xué)習(xí)帶來一定的方便,推薦安裝。 ? Windows環(huán)境下安裝 GLUT的步驟: 將下載的壓縮包解開,將得到 5個文件 在“我的電腦”中搜索“ ‖,并找到其所在文件夾(如果是,則應(yīng)該是其安裝目錄下面的“ VC98\Include\GL文件夾”)。把解壓得到的 。 把解壓得到的 (如果是 ,則應(yīng)該是其安裝目錄下面的“ VC98\Lib‖文件夾)。 把解壓得到的 system32文件夾內(nèi)。(典型的位置為: C:\Windows\System32) 使用 VC開發(fā) OpenGL程序的基本方法 22 ? 建立一個 OpenGL工程 這里以 VisualStudio為例。 選擇 FileNewProject,然后選擇 Win32 Console Application,選擇一個名字,然后按OK。 在談出的對話框左邊點(diǎn) Application Settings,找到 A Hello, World! application并勾上,選擇Finish。 23 ? 第一個 OpenGL程序 ? include GL/ ? void myDisplay(void) ? { ? glClear(GL_COLOR_BUFFER_BIT)。 ? glRectf(, , , )。 ? glFlush()。 ? } ? int main(int argc, char *argv[]) ? { ? glutInit(amp。argc, argv)。 ? glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE)。 ? glutInitWindowPosition(100, 100)。 ? glutInitWindowSize(400, 400)。 ? glutCreateWindow(第一個 OpenGL程序 )。 ? glutDisplayFunc(amp。myDisplay)。 ? glutMainLoop()。 ? return 0。 ? } ? 該程序的作用是在一個黑色的窗口中央畫一個白色的矩形。 24 ? 首先,需要包含頭文件 include GL/,這是 GLUT的頭文件。 ? 本來 OpenGL程序一般還要包含 GL/和 GL/,但 GLUT的頭文件中已經(jīng)自動將這兩個文件包含了,不必再次包含。 ? int main(int argc, char *argv[]),是帶命令行參數(shù)的 main函數(shù) ? 注意 main函數(shù)中的各語句,除了最后的 return之外,其余全部以 glut開頭。這種以 glut開頭的函數(shù)都是 GLUT工具包所提供的函數(shù),下面對用到的幾個函數(shù)進(jìn)行介紹。 ? glutInit,對 GLUT進(jìn)行初始化, 這個函數(shù)必須在其它的 GLUT使用之前調(diào)用一次。 其格式比較死板,一般照抄這句 glutInit(amp。argc, argv)就可以了。 ? glutInitDisplayMode,設(shè)置顯示方式,其中 GLUT_RGB表示使用RGB顏色,與之對應(yīng)的還有 GLUT_INDEX(表示使用索引顏色)。GLUT_SINGLE表示使用單緩沖,與之對應(yīng)的還有 GLUT_DOUBLE(使用雙緩沖)。更多信息,請 Google一下。 ? glutInitWindowPosition,設(shè)置窗口在屏幕中的位置。 ? glutInitWindowSize,設(shè)置窗口的大小。 25 ? glutCreateWindow,根據(jù)前面設(shè)置的信息創(chuàng)建窗口。參數(shù)將被作為窗口的標(biāo)題。注意:窗口被創(chuàng)建后,并不立即顯示到屏幕上。需要調(diào)用 glutMainLoop才能看到窗口。 ? glutDisplayFunc,設(shè)置一個函數(shù),當(dāng)需要進(jìn)行畫圖時,這個函數(shù)就會被調(diào)用。 ? glutMainLoop,進(jìn)行一個消息循環(huán)。這個函數(shù)可以顯示窗口,并且等待窗口關(guān)閉后才會返回。 ? 在 glutDisplayFunc函數(shù)中,設(shè)置了“當(dāng)需要畫圖時,請調(diào)用 myDisplay函數(shù)”。于是 myDisplay函數(shù)就用來畫圖。觀察 myDisplay中的三個函數(shù)調(diào)用,發(fā)現(xiàn)它們都以 gl開頭。這種以 gl開頭的函數(shù)都是 OpenGL的標(biāo)準(zhǔn)函數(shù) : ? glClear,清除。 GL_COLOR_BUFFER_BIT表示清除顏色, glClear函數(shù)還可以清除其它的東西。 ? glRectf,畫一個矩形。四個參數(shù)分別表示了位于對角線上的兩個點(diǎn)的橫、縱坐標(biāo)。 ? glFlush,
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1