• <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)而不息

            高級紋理映射技術(shù)

            高級紋理映射技術(shù)(11)      摘要: 要渲染看起來真實(shí)的場景,最好是使用高分辨率而且顏色豐富的紋理,但這樣的紋理可能會(huì)耗費(fèi)大量的內(nèi)存,例如,一張每像素16位顏色的256 x 256紋理將使用128KB的內(nèi)存。如果在該紋理中使用多級漸進(jìn)紋理,還需要額外的43KB內(nèi)存。一個(gè)使用50張這種紋理的場景將需要8MB的內(nèi)存,如果需要更強(qiáng)的真實(shí)性,可以使用每像素32位顏色的512 x 512紋理,但那就需要8倍的內(nèi)存。

            為了減少紋理消耗的系統(tǒng)帶寬和內(nèi)存空間,Direct3D支持紋理壓縮和實(shí)時(shí)解壓,即DXT紋理壓縮。壓縮后的紋理被存儲(chǔ)在Direct3D紋理指針中,當(dāng)Direct3D渲染物體時(shí),Direct3D引擎自動(dòng)對紋理進(jìn)行解壓。應(yīng)用DXT壓縮紋理不僅可以節(jié)省內(nèi)存空間,而且能有效地降低紋理傳輸帶寬,提高圖形系統(tǒng)的整體性能。  
             
            高級紋理映射技術(shù)(10)      摘要: 立體紋理(volume texture)是一組應(yīng)用到二維圖元(如一個(gè)三角形或一條直線)的三維紋理元素的集合,可以使用立體紋理實(shí)現(xiàn)一些特殊效果,如迷霧、爆炸等。當(dāng)對一個(gè)圖元使用立體紋理時(shí),它的每個(gè)頂點(diǎn)都需要一組三元紋理坐標(biāo)。當(dāng)繪制該圖元時(shí),它中間的每個(gè)像素都將用立體紋理中的一些紋理元素的顏色值進(jìn)行填充,這與二維紋理映射的情況相似。

            立體紋理以薄片為單元組織起來,可以把它想象成將(寬 x 高)的二維表面轉(zhuǎn)換成(寬 x 高 x 深)的三維立體,每個(gè)薄片是單獨(dú)的一行,立體紋理可以有一系列級別,每一級都較上一級縮小一倍。 
             
            高級紋理映射技術(shù)(9)      摘要: 凹凸紋理映射是一種紋理混合方法,它可以創(chuàng)建三維物體復(fù)雜的紋理外觀表面。普通的紋理映射只能模擬比較平滑的三維物體表面,難以顯示表面高低起伏、凹凸不平的效果。凹凸紋理映射能夠通過一張表示物體表面凹凸程度的高度圖(稱為凹凸紋理),對另一張表示物體表面環(huán)境映射的紋理圖的紋理坐標(biāo)進(jìn)行相應(yīng)的干擾,經(jīng)過干擾的紋理坐標(biāo)將應(yīng)用于環(huán)境映射,從而產(chǎn)生凹凸不平的顯示效果。凹凸紋理映射通常由三張紋理映射圖組成,第一張紋理圖表示物體表面原始紋理顏色,第二張凹凸紋理圖表示物體表面凹凸的高度起伏值,用來對下一張環(huán)境紋理圖坐標(biāo)進(jìn)行干擾,第三張紋理圖表示周圍鏡面反射或漫反射光照的環(huán)境光照映射圖。  
             
            高級紋理映射技術(shù)(8)      摘要: 三維場景中的物體不僅受光照影響,而且受周圍環(huán)境的影響,可以映射出周圍環(huán)境的圖像,環(huán)境映射就是模擬物體光滑表面映射周圍環(huán)境的一種技術(shù)。實(shí)際上,就是將一幅包含物體周圍環(huán)境場景的紋理貼到物體表面上,這樣就可以在一定程度上模擬出物體對周圍環(huán)境的映射,而無須使用像光線跟蹤算法這種復(fù)雜的計(jì)算技術(shù)。   
             
            高級紋理映射技術(shù)(7)      摘要: Direct3D提供了對生成的紋理坐標(biāo)進(jìn)行坐標(biāo)變換的功能,與頂點(diǎn)坐標(biāo)變換相類似,可以指定一個(gè)4x4的紋理坐標(biāo)變換矩陣,把它與生成的紋理坐標(biāo)相乘,然后將變換之后的紋理坐標(biāo)輸出至Direct3D渲染流水線。使用紋理坐標(biāo)變換可以對紋理坐標(biāo)進(jìn)行諸如平移、旋轉(zhuǎn)和縮放等三維變換。紋理坐標(biāo)變換對于生成一些特殊效果是非常有用的,它不用直接修改頂點(diǎn)的紋理坐標(biāo)。例如可以通過一個(gè)簡單的平移矩陣對紋理坐標(biāo)進(jìn)行變換,從而使物體表面上的紋理不斷變換位置,產(chǎn)生動(dòng)畫效果。紋理坐標(biāo)自動(dòng)生成在三維圖形程序中最廣泛的應(yīng)用是環(huán)境映射。  
             
            高級紋理映射技術(shù)(6)      摘要: 在Direct3D程序中,不僅可以在模型載入階段或渲染階段指定物體的紋理坐標(biāo),還可以通過Direct3D渲染引擎自動(dòng)生成紋理坐標(biāo),用于諸如環(huán)境映射等特殊的視覺效果。與手動(dòng)設(shè)置紋理坐標(biāo)相比,紋理坐標(biāo)自動(dòng)生成在Direct3D坐標(biāo)變換和光照流水線中完成,執(zhí)行速度更快。

            Direct3D系統(tǒng)可以使用經(jīng)過變換的攝像機(jī)空間頂點(diǎn)位置坐標(biāo)、法線信息來生成紋理坐標(biāo)。如果使用紋理坐標(biāo)自動(dòng)生成,那么在頂點(diǎn)中就可以不用包含紋理坐標(biāo)數(shù)據(jù),從而可以降低圖形渲染時(shí)的數(shù)據(jù)傳輸量。紋理坐標(biāo)自動(dòng)生成主要用于產(chǎn)生一些特殊效果,在大多數(shù)情況下還是手工為每個(gè)頂點(diǎn)指定紋理坐標(biāo)。  
             
            高級紋理映射技術(shù)(5)      摘要: Direct3D在渲染一個(gè)場景時(shí),它可以結(jié)合幾種來源的顏色信息:頂點(diǎn)、當(dāng)前材質(zhì)、紋理貼圖、先前寫入渲染目標(biāo)的顏色信息,然后將其中的一些顏色混合起來。同時(shí)也可以使用Alpha來指定Direct3D該以怎樣的權(quán)重混合這些顏色,Alpha信息可以存儲(chǔ)在頂點(diǎn)中、材質(zhì)中、紋理貼圖中。Alpha值為 0表示完全透明,Alpha值為1表示不透明,其余0~1之間的值表示不同程度的透明。  
             
            高級紋理映射技術(shù)(4)      摘要: 發(fā)光映射(glowing mapping)與黑暗映射正好相反,它對于模擬那些具有獨(dú)立于基礎(chǔ)貼圖的發(fā)光部分的物體很有用,比如模擬發(fā)光二極管、按鈕、建筑物內(nèi)的燈光、太空船上的燈光等。發(fā)光映射應(yīng)僅影響基礎(chǔ)貼圖上的發(fā)光區(qū)域,而不影響其他部分。因此需要對發(fā)光效果做加法,而不是做乘法。

            如果要模擬一塊粗糙的石灰泥墻壁,可以通過細(xì)節(jié)映射(detail mapping)來實(shí)現(xiàn)。實(shí)現(xiàn)過程是:將基礎(chǔ)貼圖(也就是第一張紋理)的顏色未經(jīng)修改便作為第二個(gè)紋理操作階段中的第二個(gè)參數(shù),然后通過 D3DTOP_ADDSIGNED將灰色的細(xì)節(jié)紋理與基礎(chǔ)貼圖相加。這個(gè)操作本質(zhì)上是做了一個(gè)加法,只是使用了有符號的顏色值來代替平時(shí)使用的無符號值。在對兩張紋理的像素顏色進(jìn)行D3DTOP_ADDSIGNED操作時(shí),它將參數(shù)的每個(gè)成分相加后再減去偏移量0.5,從而使有效值域變?yōu)?0.5 ~ 0.5。對一些比較舊的顯卡,當(dāng)其不能支持D3DTOP_ADDSIGNED操作時(shí),可以使用D3DTOP_MODULATE2X代替 D3DTOP_ADDSIGNED操作進(jìn)行模擬。  
             
            高級紋理映射技術(shù)(3)      摘要: 可以通過黑暗貼圖三種調(diào)制操作的切換來創(chuàng)建一個(gè)動(dòng)畫示例。

            當(dāng)很強(qiáng)的陽光照射在物體表面上時(shí),會(huì)使它表面的顏色變得更加明亮,這可以通過將紋理與頂點(diǎn)的漫反射顏色相混合來模擬這種效果。當(dāng)一個(gè)白色材質(zhì)反射一個(gè)方向光時(shí),反射量越多,就意味著紋理顏色在最終顯示結(jié)果中所占的成分越少。因此,那些被光直接照射到表面會(huì)呈現(xiàn)出白色。

            試想,當(dāng)你站在一間伸手不見五指的房間內(nèi),無法看清周圍的任何顏色。于是你打開燈光,突然之間物體的顏色便呈現(xiàn)了出來,就好像是被火焰點(diǎn)燃了一樣。對于這種效果,可以通過黑暗貼圖和頂點(diǎn)漫反射顏色的混合來模擬。  
             
            高級紋理映射技術(shù)(2)      摘要: 紋理映射本質(zhì)上就是從紋理中獲取顏色值,然后應(yīng)用到物體的表面,多層紋理映射本質(zhì)上就是混合多層紋理的顏色,然后應(yīng)用到物體表面。為了處理上的方便, Direct3D將顏色的RGB通道和alpha通道分別進(jìn)行處理,具體的操作方法通過紋理階段狀態(tài)進(jìn)行設(shè)置。

            設(shè)置紋理顏色混合操作的代碼大致如下:

            // i表示紋理階段序號
            pd3dDevice->SetTextureStageState(i, D3DTSS_COLORARG1, arg1);
            pd3dDevice->SetTextureStageState(i, D3DTSS_COLORARG2, arg2);
            pd3dDevice->SetTextureStageState(i, D3DTSS_COLOROP, op);  
             
            高級紋理映射技術(shù)(1)      摘要: 紋理映射在三維圖形程序設(shè)計(jì)中具有非常重要的作用,三維場景中的許多特殊效果都是通過紋理映射來實(shí)現(xiàn)的。例如通過紋理映射模擬復(fù)雜的光照效果,物體表面對周圍環(huán)境的反射效果等。

            Direct3D最多支持8層紋理,也就是說,在一個(gè)三維物體的表面可以同時(shí)擁有1~8張不同的紋理貼圖。Direct3D能夠在一個(gè)渲染過程中把這些紋理顏色依次混合,渲染到同一個(gè)物體的表面。每一個(gè)紋理層對應(yīng)0~7的索引序號,多層紋理映射能夠模擬更為真實(shí)的三維世界。 

            posted on 2008-05-22 18:12 lovedday 閱讀(6812) 評論(5)  編輯 收藏 引用 所屬分類: ■ DirectX 9 Program

            評論

            # re: 高級紋理映射技術(shù) 2008-08-21 23:05 fablesu

            樓主的文章讓我受益匪淺,時(shí)下像您這樣無私的人不多了~
            致敬.
            另:能否留下QQ號,想跟您學(xué)習(xí)學(xué)習(xí)  回復(fù)  更多評論   

            # re: 高級紋理映射技術(shù) 2008-10-21 19:42 Landy

            受益匪淺
            779539616  回復(fù)  更多評論   

            # re: 高級紋理映射技術(shù) 2009-03-21 13:05 xk

            確實(shí)太無私了,真想拜您為師!QQ:399344192  回復(fù)  更多評論   

            # re: 高級紋理映射技術(shù) 2009-07-11 11:05 dxf

            受教  回復(fù)  更多評論   

            # re: 高級紋理映射技術(shù)[未登錄] 2013-03-16 12:27 kid

            好  回復(fù)  更多評論   

            公告

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            隨筆分類(178)

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

            搜索

            最新評論

            久久影院亚洲一区| 久久99久久无码毛片一区二区| 精品久久久久久久久久久久久久久| 久久午夜伦鲁片免费无码| 国产美女亚洲精品久久久综合 | 久久亚洲精品无码播放| 一本一道久久精品综合| 久久香蕉超碰97国产精品| 久久精品国产99国产精品导航| 久久精品无码一区二区WWW| 99久久无色码中文字幕人妻| 亚洲香蕉网久久综合影视| 午夜精品久久久久久毛片| 久久99国内精品自在现线| 久久99国产亚洲高清观看首页| 欧美久久综合性欧美| 国产精品99久久不卡| 三级韩国一区久久二区综合| 亚洲精品综合久久| 少妇久久久久久久久久| 国产成人精品久久二区二区| 国产精品欧美久久久久天天影视| 久久精品国产第一区二区| 狠狠色婷婷久久综合频道日韩| 久久精品中文字幕无码绿巨人 | 欧美伊人久久大香线蕉综合| 久久久久久久久久久久久久| AAA级久久久精品无码片| 久久99久久成人免费播放| 精品久久人人爽天天玩人人妻| 精品国产VA久久久久久久冰 | 欧美黑人又粗又大久久久| 国产欧美久久久精品| 亚洲Av无码国产情品久久| 久久丫精品国产亚洲av不卡 | 国产99久久久久久免费看| 亚洲午夜精品久久久久久浪潮| 波多野结衣中文字幕久久| 欧美日韩精品久久久久| 国产精品岛国久久久久| 中文字幕精品无码久久久久久3D日动漫|