• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            天行健 君子當(dāng)自強(qiáng)而不息

            3D圖形數(shù)學(xué)(6)

             

            flat著色和Gourand著色

            若渲染速度并不重要,我們可以逐像素地計算光照和霧化。(對于光照,這項技術(shù)稱作Phong著色模型----不要和鏡面反射的Phong模型混淆。)然而這樣做計算量過于巨大,所以我們折中并減少計算的頻率。有兩個選擇:逐多邊形或逐頂點(diǎn)計算,這兩項技術(shù)分別稱作flat著色和Gourand著色。

            使用flat著色,對整個三角形只計算一次光照值。通常計算光照的位置為三角形中心,表面法向量為三角形法向量。如圖15.17所示,使用flat著色,物體由多邊形構(gòu)成的本質(zhì)表露無遺,沒有任何光澤可言。

            Gourand著色,又稱作頂點(diǎn)著色或插值著色。在頂點(diǎn)級計算光照和霧,然后這些值被線性插值用于整個多邊形面,圖15.18是和圖15.17同樣的茶壺,但采用Gourand著色。

            顯然,Gourand著色在保持物體的光滑性上做的較好。當(dāng)被模擬的值本來就是線性時,Gourand著色能得到很好的效果。問題在于如果這些值不是線性變化,比如鏡面高光。比較Gourand著色茶壺的高光部分和Phong著色茶壺的高光部分,如圖15.19所示。Phong著色中,除去幾何不連續(xù)的把手、壺嘴部分,高光的連續(xù)性很好,而Gourand著色中,由其高光面甚至可辨出各個小面元的分布。

            線性插值的基本問題是內(nèi)插值不可能大于較大的頂點(diǎn)值,所以高光只能在頂點(diǎn)出現(xiàn),充分細(xì)化可解決這一問題。盡管有著自身的局限性,Gourand著色仍是現(xiàn)今硬件最常用的方法。

             

            緩存

            渲染涉及大量的緩存,這里緩存只是一個簡單的存有像素數(shù)據(jù)的矩形內(nèi)存塊,最重要緩存是幀緩存和深度緩存。

            幀緩存存儲每個像素的色彩,即渲染后的圖像。色彩可能有多種格式,但就當(dāng)前的討論來說,不考慮格式的差異。幀緩存常常在顯存中,顯卡不斷讀取該內(nèi)存,并將二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為CRT接收的合適信號。所謂雙緩存技術(shù),是為了防止圖像在未完全渲染好之前就被顯示。此時實(shí)際上使用了兩個幀緩存,一個緩存存放當(dāng)前顯示的圖像,另一個離線緩存存放正在渲染的圖像。

            一旦渲染完成并準(zhǔn)備好顯示即切換緩存,有兩種方式:

            (1)如使用頁切換技術(shù),則命令顯示卡開始從離線緩存讀取數(shù)據(jù),接著對調(diào)兩個緩存的角色,現(xiàn)在的顯示緩存變?yōu)殡x線緩存。

            (2)也可以將離線緩存復(fù)制到顯示緩存。

            圖15.20顯示了雙緩存的情況:

            另一個用于渲染的重要緩存是深度緩存----也稱作z-buffer。深度緩存不存儲像素的顏色,而代之以像素的深度信息。存入緩存的深度信息有多種不同的變體,但它們基本上都反映物體到攝像機(jī)的距離。實(shí)踐中通常保存的都是裁剪空間的z坐標(biāo),這就是z-buffer名稱的由來。

            深度緩存一般用于計算物體之間的遮擋,當(dāng)光柵化三角形時,計算各像素的插值深度。在渲染像素之前,將這個深度值和深度緩存中該像素的深度值比較,如果新的深度比現(xiàn)有值離攝像機(jī)更遠(yuǎn),則新的像素被丟棄;否則像素顏色被寫到幀緩存,并用新的更近的值更新深度緩存。在開始進(jìn)行新的渲染之前,記得要置z-buffer各值為無限遠(yuǎn)(在裁剪空間中,這個值為1.0),這樣第一批像素才能通過深度測試,一般不對z-buffer設(shè)置雙緩存。

             

            紋理映射

            物體外觀不僅僅限于形狀,不同物體的表面有著不同的顏色和圖案,一個簡單而有效的實(shí)現(xiàn)這種特性的方法是使用紋理映射。

            紋理圖是一個鋪在物體表面上的位圖,使用紋理圖可以在"texel"(一個texel是紋理圖中的一個像素)級別控制顏色,這優(yōu)于在頂點(diǎn)或三角形級別控制物體顏色,也許你已經(jīng)經(jīng)過紋理映射的實(shí)例,不過還請看看下面的例子,它展示了紋理的強(qiáng)大威力。圖15.21展示了一個紋理映射前和后的3D人物模型"Rayne"。

            紋理圖不過是一個貼在模型表面的位圖,它是如何把整個物體包起來的?實(shí)際上,有多種不同方法,可以將網(wǎng)格用紋理圖包起來。平面映射線性地將紋理投射于三角網(wǎng),球形映射、柱形映射和立方體映射則有不同的投射方式,這里每項技術(shù)的細(xì)節(jié)并不重要,因為建模軟件如3D Studio Max會處理它們。無論位圖如何放置,每個頂點(diǎn)都要賦給一個紋理映射坐標(biāo),也就是位圖上的2D笛卡爾坐標(biāo),通常稱它們?yōu)閡、v,以防止和渲染坐標(biāo)x、y混淆。紋理映射通常按照位圖尺寸單位化為[0, 1]之間的值,如圖15.22,給出了圖15.21模型中的一個紋理。

            此紋理圖為Rayne的頭部所用,包圍在頭部的一半,從鼻子到后腦中線。藝術(shù)家特意使她的尺寸合適于模型,頭部的另一半使用同樣的紋理,一個鏡像。

            注意紋理不一定要連續(xù)地包圍幾何體。因為每個三角形都能獨(dú)立映射,紋理的不同部分可以任意映射到物體的不同部分。比如上圖中左上角的牙齒就是這樣:Rayne有毒牙,嘴張開時可以看見。當(dāng)然如果不使用連續(xù)映射,且紋理映射坐標(biāo)存儲在頂點(diǎn)級,紋理交界處對應(yīng)的頂點(diǎn)坐標(biāo)是雙份的。注意這里對紋理使用了原點(diǎn)在左上角的坐標(biāo)系,這類似于硬件訪問的方式,更具學(xué)術(shù)性的文獻(xiàn)則使用左下角為坐標(biāo)原點(diǎn)。

            如前所述,各頂點(diǎn)都有一個紋理的u、v坐標(biāo)。用這種方式,紋理被釘在三角網(wǎng)上,要渲染三角形中的某個像素,可以先插值計算其u、v坐標(biāo)(類似于Gourand著色),然后讀取對應(yīng)的紋理值。


            posted on 2008-03-07 13:10 lovedday 閱讀(1122) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            公告

            導(dǎo)航

            統(tǒng)計

            常用鏈接

            隨筆分類(178)

            3D游戲編程相關(guān)鏈接

            搜索

            最新評論

            欧美日韩成人精品久久久免费看| 伊人久久综合无码成人网| 囯产极品美女高潮无套久久久| 久久最新免费视频| 色婷婷综合久久久久中文一区二区| 国产精品福利一区二区久久| 色偷偷91久久综合噜噜噜噜| 中文国产成人精品久久亚洲精品AⅤ无码精品| 久久99久国产麻精品66| 久久精品国产精品亚洲| 久久久中文字幕| 久久久久国色AV免费看图片| 99精品国产免费久久久久久下载| 精品久久久久久综合日本| 色综合久久久久无码专区| 久久午夜无码鲁丝片秋霞| 久久精品国产一区二区三区日韩| 欧美一级久久久久久久大| 2022年国产精品久久久久 | 中文字幕久久精品| 久久国产精品无码一区二区三区| 91麻豆国产精品91久久久| 中文字幕成人精品久久不卡| 欧美精品一本久久男人的天堂 | 日韩精品无码久久久久久| 国产高清国内精品福利99久久| 久久99国产亚洲高清观看首页 | 94久久国产乱子伦精品免费| 中文国产成人精品久久不卡| 香蕉久久影院| 亚洲国产精品一区二区三区久久 | 亚洲国产成人乱码精品女人久久久不卡| 精品久久8x国产免费观看| 久久青青草原亚洲av无码app| 久久有码中文字幕| 久久av免费天堂小草播放| 思思久久99热免费精品6| 久久性精品| 亚洲午夜久久久| 久久国产色av免费看| 久久久一本精品99久久精品88|