版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、圖形學課件目錄1. 圖元生成2. 視圖3. 曲面4. 光照5. 紋理貼圖6. 混合7. 幀緩沖區(qū)(片斷測試)8. 剔除9. 粒子系統(tǒng)10. 交互11. 綜合1.圖元生成OpenGL的基本圖元有點(Point)、線段(Line)、多邊形(Ploygon)、三角形(Triangle)、四邊形(Quadrangle)。線段又分為獨立線段、不閉合的線(Line Strip)和首尾閉合的線(Line Loop)。三角形分為獨立三角形、三角形鏈(Triangle Strip)和三角扇形(Triangle Fan)。四邊形則分為獨立的四邊形和四邊形鏈(Quadrangle Strip)。1.圖元生成直線生成
2、(1)直線的生成介紹:直線是openGL函數(shù)庫中最基本的圖元之一,線段是由兩個頂點連接起來形成的圖元。glBegin的圖元參數(shù)是GL_LINES、GL_LINE_STRIP和GL_LINE_LOOP時分別表示繪制獨立的線段、首尾相連但不閉合的折線段及首尾相連閉合的折線段。該示例演示了直線在坐標下的生成。操作說明:用鼠標拖動右側函數(shù)中的參數(shù),使其大小發(fā)生改變,然后觀察左邊直線隨之發(fā)生的變化。 1.圖元生成多邊形的生成(2)多邊形的生成介紹:多邊形也是一種常用的渲染方式。如果將一個多邊形的任意兩個頂點連接起來形成的線段都在多邊形的內部,該多邊形就是凸多邊形,反之就是凹多邊形。這兩種多邊形OpenG
3、L都可以處理,但在一般情況下,我們要求使用的多邊形都是凸多邊形。繪制多邊形時,glBegin的參數(shù)應該是GL_POLYGON。該示例演示了多邊形的生成。 返回目錄在指示OpenGL繪制我們希望在場景中顯示的的幾何模型后,我們必須決定模型在場景中的位置,并且選擇一個觀察點來觀察場景。計算機圖形:創(chuàng)建三維物體的二維圖像(在平面屏幕顯示) 物體的三維坐標 屏幕上的像素坐標 1 變換包括模型視圖和投影操作 2 裁剪 3 視口變換2.視圖2.視圖視圖和模型變換(1)模型變換介紹:視圖和模型變換可以組合為單個模型視圖矩陣。 使用模型變換的目的是設置模型的位置和方向。函數(shù) glTranslate*()、gl
4、Rotate*()和glScale*()通過移動、旋轉、拉伸、收縮或反射,對物體進行變換。本示例演示了在三維空間中利用模型視圖變換創(chuàng)建物體,使物體旋轉的方法。2.視圖視圖和模型變換(2)視圖變換介紹:視圖變換用于修改觀察點的位置和方向??梢允褂媚P妥儞Q函數(shù)模擬 或者gluLookAt() 函數(shù)定義視線,還可以創(chuàng)建自己的工具函數(shù),對旋轉和移動進行封裝。本示例演示了各變換函數(shù)在不同參數(shù)下對物體空間位置的作用過程。操作說明:用鼠標拖動函數(shù)中的參數(shù),使其大小發(fā)生改變,然后觀察左窗口坐標軸和右窗口汽車模型位置的改變。2.視圖投影變換(3)投影變換介紹:投影變換的目的是定義一個視景體。 1)透視投影 2)
5、正投影:視景體是個平行的長方體。物體和照相機之間的距離并不影響它看上去的大小。本示例演示了在投影變換下物體的投影效果。操作說明:用鼠標拖動函數(shù)中的參數(shù)改變其大小,觀察右窗口屏幕上模型的變化。2.視圖視口變換(4)視口變換介紹:視口是個矩形的窗口區(qū)域,圖像就是在這個區(qū)域中繪制的。視口是用窗口坐標來測量的,窗口坐標反映了屏幕上的像素相對于窗口左下角的位置。定義視口:使用glViewPort()函數(shù)。本實例演示了怎樣在單個窗口內顯示多個視口。操作說明:鼠標拖動修改主窗口大小,觀察這些視口在窗口模式下正確的調整大小。2.視圖矩陣堆棧(5)操縱矩陣堆棧介紹:變換是以矩陣的形式存儲的,我們可以用執(zhí)行堆棧操
6、作的函數(shù)glPushMatrix()和glPopMatrix()控制堆棧頂部的矩陣。矩陣堆棧適用于創(chuàng)建層次式的模型 ,也就是通過簡單的模型構建復雜的模型。如:太陽系、機器人手臂。 返回目錄 3.曲面基本的OpenGL函數(shù)庫只支持對簡單的點、直線和填充凸多邊形進行建模和渲染。GLU提供了一些函數(shù),通過多邊形分格化,提供了對各種通過多邊形近似模擬的并可以使用二次方程計算的、2D和3D形狀進行建模和渲染 。求值器提供了一種方式,只用少數(shù)的控制點來指定曲線或表面上的點。我們可以使用OpenGL的求值器函數(shù)繪制基本的曲線和表面。3.曲面 二次方程表面(1)二次方程表面介紹:創(chuàng)建和渲染二次方程表面類似于使
7、用分格化對象,可以使用下面步驟: 1)使用gluNewQuadric() 函數(shù)創(chuàng)建一個二次方程對象然后指定這個二次方程對象的屬性 2)使用gluQuadricCallback()函數(shù)注冊一個錯誤處理函數(shù) 3)根據(jù)需要調用相應的二次方程表面渲染函數(shù)在完成操作后銷毀這個對象本實例演示了利用二次幾何體創(chuàng)建球、圓盤、圓柱和圓錐。操作說明:方向鍵:控制旋轉 空格鍵:切換繪制幾何體形狀3.曲面求值器(2)求值器介紹: 求值器可以創(chuàng)建以Bezier(Bernstein)為基礎的樣條和表面。這些求值器能在任何度的曲線及曲面上計算指定數(shù)目的點。隨后,OpenGL利用曲線和曲面上的點生成標準OpenGL圖元.一維
8、求值器使用4個點可以繪制一條三次Bezier曲線,我們可以使用glMap2*()和glEvalCoord2*()函數(shù)定義并調用二維求值器本示例演示了Bezier曲面的生成。操作說明:空格鍵:切換控制點的可見性 上下鍵:增加減少曲面的細分數(shù)目 左右鍵:控制旋轉 返回目錄4.光照OpenGL對于光照效果提供了直接的支持,只需要調用某些函數(shù),便可以實現(xiàn)簡單的光照效果。OpenGL在處理光照時采用這樣一種近似:把光照系統(tǒng)分為三部分,分別是光源、材質和光照環(huán)境。這些因素綜合起來,就形成了最終的光照效果。4.光照光源控制(1)光源控制介紹:OpenGL在處理光照時采用這樣一種近似: 把光照系統(tǒng)分為三部分,
9、分別是光源、材質和光照環(huán)境。光源控制主要是控制光源的位置和一些特性。該示例主要演示光源在不同位置時產生的效果??刂普f明:用鼠標拖動下圖函數(shù)中的參數(shù)來改變大小,然后觀察上圖中足球的光照效果的變化。 4.光照材質(2) 材質介紹:材質與光源相似,也需要設置眾多的屬性。不同的是,光源是通過glLight*函數(shù)來設置的,而材質則是通過glMaterial*函數(shù)來設置的。本示例演示了不同的光照材質在不同的物品材質上產生的效果??刂普f明:用鼠標拖動下圖函數(shù)中的參數(shù)來改變大小,以此改變光照和圓環(huán)的材質,然后再觀察光照效果發(fā)生的變化。4.光照光照模型(3)光照模型介紹:在OpenGL中,光照模型包括四個部分的
10、內容:全局環(huán)境光線的強度、觀察點位置是在較近位置還是在無限遠處、物體正面與背面是否分別計算光照、鏡面顏色的計算是否從其它光照計算中分離出來,并在紋理操作以后在進行應用。本示例演示了GL_LIGHT_MODEL_AMBIENT屬性光下的光照效果。 返回目錄5. 紋理貼圖紋理貼圖允許把一幅磚墻圖像映射到一個多邊形的表面上,并把整面磚墻畫成單個多邊形。紋理貼圖能夠保證當這個多邊形進行變換或渲染時,映射到多邊形表面的圖像也能夠表現(xiàn)出正確的行為。 紋理貼圖是一個相當大的主題,并且具有相當程度的復雜性,以下是紋理貼圖的簡單例子。5. 紋理貼圖(1)紋理貼圖介紹:一般的紋理貼圖就是指將所選圖片的選中部分,顯
11、示到圖形中你所規(guī)定的地方,就像將圖片“貼”上去一樣。本例運用了大量有關紋理貼圖的函數(shù),這些在可變程序界面里有具體體現(xiàn)。操作說明: 點擊藍色字體,改變數(shù)據(jù)類型。 拖動藍色字體,改變數(shù)據(jù)大小。 5. 紋理貼圖(2)簡單的3D貼圖介紹:這個示例畫利用紋理貼圖,由OpenGL對六邊形的六個面進行貼圖,展示了貼圖的3D圖像的效果操作說明: 無 5. 紋理貼圖(3)不同紋理過濾的紋理貼圖介紹:這個示例利用GL_NEAREST、GL_LINEAR、GL_LINEAR_MIPMAP_NEAREST這三種常用的紋理過濾方法,展示了三種紋理過濾在3D圖像中的運用效果,glTexParameteri()中的GL_T
12、EXTURE_MAG_FILTER與GL_TEXTURE_MIN_FILTER運用不同的紋理過濾可以帶來不一樣的奇妙效果。操作說明: F: 紋理過濾器的切換 L: 開啟/關閉光照 Arrow buttons: 旋轉物體 5. 紋理貼圖(4)紋理貼圖制造的世界介紹:這個示例利用前面所講的紋理貼圖的知識,將許許多多的三角形拼湊到一起形成了一個粗糙的世界。在這里我們引入?yún)^(qū)段(sector)的概念,每個區(qū)段由許多三角形組成。操作說明: F: 紋理過濾器的切換 B: 開啟/關閉混合 Arrow buttons和PgUp,PgDn: 移動視角5. 紋理貼圖(5)環(huán)境映射介紹:環(huán)境紋理的目標是渲染具有完美反
13、射能力的物體,它的表面顏色就是反射到人眼周圍環(huán)境的顏色。換句話說,就是在一間有著無限大的房間中有著一個小球(小到跟房間比就是一個點),把房間墻壁上的圖像映射到這個小球上。操作說明: Space:切換物體模型 Arrow buttons: 旋轉物體 返回目錄6.混合OpenGL 中的很多特效都是通過混合來完成的,混合就是把屏幕上已有的顏色與新的顏色進行合成。至于合成的方法,取決于顏色的Alpha值,還有所用的混合函數(shù)。 我們可以通過alpha混合來創(chuàng)建半透明的片段,仍然保留一些原先存儲的顏色值。顏色混合是諸如透明化、數(shù)字合成、油漆這類技巧的核心。6.混合混合方程式(1)混合方程式(有兩個例子)介
14、紹:在啟用混合后我們需要使用混合方程式組合像素 。在標準的混合中,幀緩沖區(qū)中的顏色與新片段的顏色進行組合(使用加法),產生新的幀緩沖區(qū)顏色。glBlendEquation()或glBlendEquationSeparate()函數(shù)選擇其它數(shù)學操作來計算顏色片段和幀緩沖區(qū)像素的差、最小值和最大值。示例簡單的透明利用alpha混合實現(xiàn)了半透明的效果 操作說明:F:紋理過濾器的切換 B: 開啟/關閉混合 L: 開啟/關閉光照 方向鍵:旋轉物體 示例2D圖像文字演示了開啟混合后繪制文字,顏色會隨著文字的移動而逐漸改變6.混合三維混合 (2)三維混合介紹:多邊形的繪圖順序極大的影響最終的混合效果,在決定
15、正確的繪圖順序時,還需要考慮深度緩沖區(qū)的效果。在同一個場景中同時渲染透明和半透明的物體,就需要使用深度緩沖區(qū),對那些位于不透明物體后面的所有物體執(zhí)行隱藏表面消除。本示例演示了使用Alpha混合等技術實現(xiàn)的小游戲操作說明:點擊鼠標左鍵射擊靶子 返回目錄 7.幀緩沖區(qū)(片段測試)在屏幕上繪制幾何圖形,文本或圖像時,openGL會執(zhí)行一些計算,進行旋轉、移動和縮放,以便確定光照效果以及物體投影到窗口坐標的方式,并確定哪些像素的顏色應該繪制。在openGL確定了每個片段是否應該生成以及應該使用什么顏色之后,這個片段仍然需要經(jīng)歷一些處理階段,這些操作控制是否需要這個片段以及如何把它寫入到幀緩存區(qū)中。本節(jié)
16、描述片段在進入幀緩沖區(qū)之前必須經(jīng)歷的所有測試。7.片段測試裁剪測試(1)裁剪測試介紹:剪裁測試用于限制繪制區(qū)域。我們可以使用glScissor()函數(shù)指定一個矩形的剪裁窗口,當啟用剪裁測試后,只有在這個窗口之內的像素才能被繪制,其它像素則會被丟棄。本示例展示了如何經(jīng)過裁剪測試顯示局部圖案。控制說明:上下控制文本的滾動。7.片段測試alpha測試(2)alpha測試介紹:當每個像素即將繪制時,如果啟動了Alpha測試,OpenGL會檢查像素的Alpha值,只有Alpha值滿足條件的像素才會進行繪制,不滿足條件的則不進行繪制。可以用glAlphaFunc()函數(shù)設置參考值和比較函數(shù)。本示例演示了利
17、用alpha測試等技巧做成的小游戲。控制說明:鼠標控制射擊準心,點擊左鍵射擊。7.片段測試模板測試(3)模板測試介紹:模板測試把像素存儲在模板緩沖區(qū)的值與一個參考值進行比較。根據(jù)測試結果,對模板緩沖區(qū)中的這個值進行相應的修改??梢允褂胓lStencilFunc()和glStencilOp()函數(shù)選擇需要使用的特定比較函數(shù)、參考值以及對模板緩沖區(qū)所執(zhí)行的修改操作。本示例展示了運用模板測試制造蒙版。控制說明: Arrow buttons :球的旋轉 PgUp、PgDn:球上下 A、Z:視角遠近7.片段測試深度測試(4)深度測試介紹:深度緩沖區(qū)一般用于隱藏表面的消除。如果像素出現(xiàn)了一種新的候選顏色,
18、只有當新物體比原來的物體更靠近觀察點時,它才會被繪制。默認此情況下的深度測試只需向glEnable()函數(shù)傳遞GL_DEPTH_TEST,還可以使用glDepthFunc()函數(shù)為深度測試選擇不同的比較函數(shù)。本示例演示了深度測試實現(xiàn)的霧氣效果??刂普f明: Arrow buttons:箱子旋轉 返回目錄8. 剔除(1)正面剔除介紹:剔除是針對那些不會被顯示的圖形而設計的,將玩家看不到的地方不已顯示是一種可以顯著提高計算機工作效率的策略,這個示例為了便于大家觀察,利用glCullFace函數(shù),實現(xiàn)了正面剔除效果(一般都是剔除大家看不到的部分,如:背面)。 操作說明: F: 紋理過濾器的切換 B:
19、開啟/關閉混合 L: 開啟/關閉光照 C: 開啟/關閉剔除 Arrow buttons: 旋轉物體 8. 剔除(2)剔除介紹:本例子在空間內建立了500個“星星”,利用剔除技術,將觀察者視線外的“星星”剔除,以減少程序運行時所消耗的資源。正上方a/b:a代表顯示“星星”個數(shù),b代表所設置的“星星”總數(shù)操作說明: 移動鼠標 返回目錄 9. 粒子系統(tǒng)通常粒子系統(tǒng)在三維空間中的位置與運動是由發(fā)射器控制的。發(fā)射器主要由一組粒子行為參數(shù)以及在三維空間中的位置所表示。粒子行為參數(shù)可以包括粒子生成速度(即單位時間粒子生成的數(shù)目)、粒子初始速度向量(例如什么時候向什么方向運動)、粒子壽命(經(jīng)過多長時間粒子湮滅
20、)、粒子顏色、在粒子生命周期中的變化以及其它參數(shù)等等。使用大概值而不是絕對值的模糊參數(shù)占據(jù)全部或者絕大部分是很正常的,一些參數(shù)定義了中心值以及允許的變化。9. 粒子系統(tǒng)(1)粒子火花介紹:這個示例利用粒子系統(tǒng)實現(xiàn)了絢麗的火花效果。在本例中,粒子系統(tǒng)struct particles利用alpha值實現(xiàn)了生命周期,并在struct particles中包含了衰減周期、位置、顏色、移動方向、加速度。 操作說明: PgUp和PgDn :拉近和拉遠觀察點 Enter: 開啟彩虹模式 L: 關閉彩虹模式/每次按下改變粒子顏色 Arrow buttons: 改變粒子運動方向9. 粒子系統(tǒng)(2)瀑布介紹:本例
21、是以線元為基本造型單位,運用動力學原理模擬瀑布的運動軌跡,結合層次包圍盒技術和建立聚類樹加速粒子與障礙物之間的碰撞檢測,并采用逐漸淡化融合的方法繪制粒子,形成了具有真實感的實時瀑布飛濺的效果。 操作說明: 無 返回目錄10.交互有些圖形應用程序只是簡單的繪制靜態(tài)的二維或三維圖像。另外還有一些應用程序允許用戶標識屏幕上的物體,并且移動、更改或刪除這些物體(或進行其它操作)。支持這類具有交互式操作的應用程序本來就是OpenGL的設計目標之一。OpenGL可以注冊一些回調函數(shù),用來處理輸入事件,并提供了選擇機制幫助實現(xiàn)在三維場景中判斷用戶選擇的是哪個物體。10.交互處理輸入事件(1)處理輸入事件介紹:下面的這些函數(shù)注冊一些回調函數(shù),當指定的事件發(fā)生時,這些函數(shù)便會被調用: glutReshapeFu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版木材采購合同與木材質量保證協(xié)議4篇
- 2025年度門樓安全門采購與安裝合同4篇
- 招投標與合同管理中的2025年度合規(guī)性審查3篇
- 二零二五年度人力資源派遣中介委托合同3篇
- 2025年有機農業(yè)專用農藥農膜供應合同范本4篇
- 二零二五版龍門吊拆除與專業(yè)運輸及安裝調試服務合同4篇
- 2025年度綠色生態(tài)農業(yè)承包合同范本
- 二零二五年度按揭房屋買賣合同稅費計算指南3篇
- 2025年度模特經(jīng)紀公司模特簽約合同范本4篇
- 2025年度交通設施建設履約擔保合同模板2篇
- GB/T 45120-2024道路車輛48 V供電電壓電氣要求及試驗
- 2025年中核財務有限責任公司招聘筆試參考題庫含答案解析
- 春節(jié)文化常識單選題100道及答案
- 華中師大一附中2024-2025學年度上學期高三年級第二次考試數(shù)學試題(含解析)
- 12123交管學法減分考試題及答案
- 2025年寒假實踐特色作業(yè)設計模板
- 《數(shù)據(jù)采集技術》課件-XPath 解析庫
- 財務報銷流程培訓課程
- 成人腦室外引流護理-中華護理學會團體 標準
- 24年追覓在線測評28題及答案
- 春節(jié)慰問困難職工方案春節(jié)慰問困難職工活動
評論
0/150
提交評論