版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第七章 圖形繪制管線(pipeline),對于一項復(fù)雜工程,使用管線結(jié)構(gòu)比使用非管線結(jié)構(gòu)可以得到更大的吞吐量。管線結(jié)構(gòu)的整體速度是由管線中最慢的那個階段決定的。 圖形繪制使用的管線稱為圖形繪制管線。從概念上,圖形繪制管線可以粗略地分為3個階段,即:應(yīng)用程序階段、幾何階段、光柵階段。每個階段又可以進一步劃分為幾個子階段,為了對子階段進行加速,又可以對子階段進行并行化處理。,應(yīng)用程序,幾何,光柵,圖形繪制管線,7.1 應(yīng)用程序階段,應(yīng)用程序階段是通過軟件實現(xiàn)的,開發(fā)者能夠?qū)υ撾A段進行完全的控制,可以通過改變實現(xiàn)方式來改進實際性能。 這一階段要完成諸如建模、碰撞檢測、加速算法、動畫、力反饋、人機交互
2、,以及一些不在其它階段執(zhí)行的計算。 在應(yīng)用程序階段末端,將需要繪制的幾何體輸入到繪制管線的下一階段。這些幾何體都是繪制圖元(如點、線、三角形等),最終需要在輸出設(shè)備上顯示出來。這就是應(yīng)用程序階段最重要的任務(wù)。 對于其它階段,由于其全部或部分是建立在硬件基礎(chǔ)之上,因此要改變實現(xiàn)過程是比較困難的。但應(yīng)用程序階段可以改變幾何和光柵階段所消耗的時間,例如可以設(shè)法減少傳遞給幾何階段的三角片數(shù)量。 由于應(yīng)用程序階段是基于軟件方式實現(xiàn)的,因此不能像幾何和光柵階段那樣分成若干個子階段。但是為了提高性能,可以使用并行處理器進行加速。,7.2 幾何階段,幾何階段主要負(fù)責(zé)大部分多邊形和頂點操作,執(zhí)行的是計算量非常高
3、的任務(wù),可以將這個階段進一步劃分為幾個功能階段。,模型和 視點變換,光照和 著色,投影,裁減,屏幕映射,7.2.1幾個坐標(biāo)系和齊次坐標(biāo),模型坐標(biāo)系:每個物體(模型)可以有自己的坐標(biāo)系,這個坐標(biāo)系稱為模型坐標(biāo)。它是在建模時確定的。 世界坐標(biāo)系:為了確定物體在場景中的比例、位置和朝向,需要為場景中的物體建立一個公共的坐標(biāo)系,這個坐標(biāo)系稱為世界坐標(biāo)系。 視點坐標(biāo)系:固定在觀察者的雙眼正中,X軸的方向向右、Y軸的方向向上、Z軸的負(fù)方向與視線同向。又稱為相機坐標(biāo)系。 規(guī)范化坐標(biāo)系:(左手系)x-1,1,y-1,1,z-1,1。 窗口坐標(biāo)系:(左手系)x0,winx-1,y0,winy-1,z0,1其中:
4、winx、winy分別為窗口的寬和高。,齊次坐標(biāo): 齊次坐標(biāo)(Homogeneous Coordinate)是比普通坐標(biāo)高一維的坐標(biāo),與普通坐標(biāo)可以相互轉(zhuǎn)換: 從普通坐標(biāo)轉(zhuǎn)換為齊次坐標(biāo): (x,y,z)(x,y,z,1) 從齊次坐標(biāo)轉(zhuǎn)換為普通坐標(biāo): (x,y,z,w) (x/w,y/w,z/w) 引入齊次坐標(biāo)后帶來了諸多便利,主要有: 可以區(qū)分坐標(biāo)和方向: (x,y,z,1) :坐標(biāo) (x,y,z,0) :方向 規(guī)范化的坐標(biāo)變換:OpenGL中的所有變換都可以用44矩陣乘法表示,例如:平移和透視投影。這是普通坐標(biāo)所做不到的。,7.2.1幾個坐標(biāo)系和齊次坐標(biāo),7.2.2 模型與視點變換,在圖形顯
5、示過程中,模型通常需要變換到若干不同的空間(坐標(biāo)系統(tǒng))中。 (1)模型變換 每個模型可以和一個模型變換相聯(lián)系,這樣就可以對它進行定位和定向。 同一個模型還可以和幾種不同的模型變換聯(lián)系在一起。就是同一個模型有多個副本,在場景中具有不同的位置、方向和大小,而不需要對基本幾何體進行復(fù)制。 起初,模型處于自身所在的模型空間中,可以認(rèn)為它根本沒有進行任何變換。 模型變換的對象是模型的頂點和法線。所有模型經(jīng)過模型變換從自己的模型坐標(biāo)系變換到公共的世界坐標(biāo)系中。,實際的繪制只對相機(或視點)可以看到的模型進行。 為了便于投影和裁減,需要將原來在世界坐標(biāo)系中表示的物體變換到相機坐標(biāo)系中,這是通過視點變換來實現(xiàn)
6、的。,(2)視點變換,(3)變換的實現(xiàn)方式,所有的模型變換和視點變換都用44的矩陣來實現(xiàn)。處于效率方面的考慮,可以在進行模型變換之前,將所有的變換矩陣(包括視點和模型變換)級聯(lián)起來,彼此相乘,形成單一矩陣。在這種情況下,模型直接變換到了相機坐標(biāo)系(或視點坐標(biāo)系)。,(4)常用變換,繞x軸旋轉(zhuǎn)角 繞y軸旋轉(zhuǎn)角 繞z軸旋轉(zhuǎn)角,平移:,旋轉(zhuǎn):,平移量為x,y,z,(4)常用變換,放大:,剪切:,x、y、z三個方向分別放大Sx、Sy、Sz倍,A,B,C,D,沿x軸方向的剪切變換,剪切程度為s=tg,7.2.3 光照和著色,幾何模型可以有與其每個頂點相關(guān)聯(lián)的顏色(或材質(zhì))和覆蓋其上的紋理。單獨使用光照或
7、紋理(特別是紋理)可以在物體表面產(chǎn)生不錯三維效果;但如果單純使用頂點顏色,效果會很差。,左圖只有紋理 右圖使用紋理加光源,續(xù)前頁,對于受光照影響的模型來說,可以用光照方程來計算模型上每個頂點的顏色,這個顏色近似模擬了光線與表面之間的實際作用。物體表面每個頂點的顏色由光源位置及性質(zhì)、頂點位置和法線、頂點所在的材料性質(zhì)來計算。模型在圖形上通常用三角形表示,有了頂點的顏色就可以通過插值繪制出顏色漸變的三角形。 通常,光照計算是在世界坐標(biāo)系中進行的,光源也在世界坐標(biāo)系中表示。但是,如果對光源及參與光照計算的所有實體都進行了視點變換,在相機坐標(biāo)系中會得到同樣的關(guān)照效果,因為這時光源與模型之間的相對位置仍
8、然保持不變。注意相機位置與光照計算無關(guān)。 OpenGL的光照計算在視點坐標(biāo)系中進行。,7.2.4 投影,目的:是將三維空間中的物體顯示到二維平面。有兩種投影方式:平行投影(正投影)和透視投影。,左邊為正(或平行)投影,右邊為透視投影,視景體:即可見空間范圍。只有在視景體中的物體才可能出現(xiàn)在屏幕上。 平行投影:平行投影的視景體是一個長方體盒。其變換矩陣為:,7.2.4 投影,透視投影:透視投影的視景體是一個四棱臺,即一個以矩形為底面的被截金字塔。棱臺的小頂面靠近視點,棱臺的大底面遠(yuǎn)離視點。其變換矩陣為:,7.2.4 投影,OpenGL中的投影:OpenGL并沒有直接將物體從三維投影到二維。不管是
9、平行投影還是透視投影,OpenGL利用投影變換矩陣將其對應(yīng)的視景體變換為一個規(guī)范的立方體(x-1,1,y-1,1,z-1,1),這個立方體是左手系,極大地簡化了后期的裁剪和消隱。 對平行投影來說,由于是將長方體變換為規(guī)范立方體,所以平行投影的特點是:幾何體投影的大小不受與視點距離的影響,同樣大小的物體其投影大小也相同,因此可以用來制作建筑藍(lán)圖。 對透視投影來說,由于是將前小后大的四棱臺變換為規(guī)范立方體,所以透視投影的特點是:近處的物體被放大、遠(yuǎn)處的物體被變小,得到逼真的視覺效果。,7.2.4 投影,7.2.5 裁減,當(dāng)一個圖元完全位于一個視體內(nèi)部的時候,那么它可以直接進入下一個階段;當(dāng)一個圖元
10、完全位于視體之外時,不需要繪制,不用進入下一個階段。但需要對哪些部分位于視體之內(nèi)的圖元進行裁減處理,被裁減圖元將包含新的頂點。 投影變換之后的圖元只需要針對規(guī)范立方體進行裁減,這使裁減算法大大簡化。有些系統(tǒng)還允許用戶在此基礎(chǔ)之上,自定義數(shù)個裁減平面。,只有通過裁減階段的圖元,才能進入屏幕映射階段。在這個階段,通過簡單的平移和縮放,圖元頂點的坐標(biāo)由規(guī)范化坐標(biāo)系( x-1,1,y-1,1,z-1,1 )變換到窗口坐標(biāo)系( x0,winx-1,y0,winy-1,z0,1 ),至此完成整個流水線的幾何階段。準(zhǔn)備進入下一個大階段:光柵階段。,7.2.6 屏幕映射,幾何階段傳給光柵階段的數(shù)據(jù)仍然是幾何圖
11、形(只不過有了顏色或紋理坐標(biāo)等屬性),光柵階段的任務(wù)就是要利用這些圖元數(shù)據(jù)為每個象素(pixel-屏幕上的點)決定正確的配色,以便正確地繪制整個圖像。這個過程稱為光柵化或者掃描轉(zhuǎn)換。對高性能圖形系統(tǒng)來說,光柵化階段必須在硬件中完成。 光柵化的結(jié)果是將視景體內(nèi)的幾何場景轉(zhuǎn)化為圖像。,7.3 光柵階段,7.3.1 圖形的光柵化,光柵化結(jié)果保存在顏色和深度位面中(通過檢測時):顏色用于顯示圖形,深度值用于消隱。,以四邊形的光柵化為例:在XY平面上,通過從多邊形最低點到最高點之間的水平掃描,完成對多邊形的掃描轉(zhuǎn)換。對每條掃描線,多邊形的掃描轉(zhuǎn)換分為四個步驟: 求交、排序、配對、著色。,X,Y,位面:屏
12、幕空間對應(yīng)著同樣大小一組位面,位面的數(shù)目決定了每個象素的變化能力。其中最基本的是顏色位面和深度位面。 緩沖區(qū):常稱一組位面為緩沖區(qū)(buffer) 。幀緩沖區(qū)(frame buffer)通常指系統(tǒng)包含的所有位面,它又細(xì)分為各種不同功能的緩沖區(qū)。,顏色緩沖區(qū)示意圖,7.3.2 位面,7.3.3 顏色位面,顏色位面就是屏幕的顯示內(nèi)容。為了避免觀察者看到光柵化過程,圖形系統(tǒng)一般都使用了雙緩沖機制:即提供兩組顏色位面,分別稱為前緩沖和后緩沖。前緩沖處于顯示狀態(tài),即屏幕看到的內(nèi)容;后緩沖用于在非顯示狀態(tài)下進行光柵化。一旦后緩沖繪制完畢,則切換前后緩沖。,7.3.4 深度位面,深度位面又稱為Z緩沖器,它為
13、每個象素存貯著一個z值,這個z值是從相機到最近圖元之間的距離。 當(dāng)將一個圖元繪制為相應(yīng)的象素時,需要計算象素位置處圖元的z值并與同一象素Z緩沖器內(nèi)容進行比較。如果新得到的z值遠(yuǎn)遠(yuǎn)小于Z緩沖器中的z值,那么說明即將繪制的圖元與相機的距離比原來距離相機較近的圖元還要近。這樣,象素的z值和顏色就由當(dāng)前圖元對應(yīng)的z值和顏色進行更新。如果計算出來的z值遠(yuǎn)遠(yuǎn)大于Z緩沖器中的z值,那么顏色緩沖器和Z緩沖器就不變。 Z緩沖器算法非常簡單,圖元的繪制順序可以是任意的,所以被大量使用。 但這種算法不支持對半透明物體的繪制。對半透明物體的繪制順序是:首先使用Z緩沖器對所有非透明物體進行繪制,然后在使用z值比較但禁止寫入Z緩沖器的情況下,使用畫家算法按從后向前順序?qū)Π胪该魑矬w進行合成繪制。,7.3.5 其它位面,除去顏色緩沖和深度緩沖外,還可以使用一些其它的緩沖器來產(chǎn)生一些圖像的不同組合,例如: alpha緩沖器可以為每個象素存儲一個的不透明度值; 模板緩沖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)培訓(xùn)體系與制度
- 酒店培訓(xùn)質(zhì)檢日常管理制度
- 系統(tǒng)培訓(xùn)機構(gòu)管理制度
- 電商鞋服倉庫員工培訓(xùn)制度
- 2025年應(yīng)急培訓(xùn)制度
- 鐵路貨運業(yè)務(wù)培訓(xùn)制度
- 技防專職人員培訓(xùn)制度
- 培訓(xùn)體系搭建管理制度
- 幼兒園培訓(xùn)機構(gòu)年審制度
- 檢察宣傳隊伍培訓(xùn)制度
- 娛樂場所安全管理規(guī)定與措施
- 老年協(xié)會會員管理制度
- LLJ-4A車輪第四種檢查器
- 化學(xué)●廣西卷丨2024年廣西普通高中學(xué)業(yè)水平選擇性考試高考化學(xué)真題試卷及答案
- 人衛(wèi)基礎(chǔ)護理學(xué)第七版試題及答案
- 煙草物流寄遞管理制度
- 被打和解協(xié)議書范本
- 《糖尿病合并高血壓患者管理指南(2025版)》解讀
- 養(yǎng)老院敬老院流動資產(chǎn)管理制度
- 工程施工計劃與資源配置
- 監(jiān)理掛靠合同協(xié)議
評論
0/150
提交評論