• <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>

            天行健 君子當自強而不息

            高級紋理映射技術

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

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

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

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

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

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

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

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

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

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

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

            評論

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

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

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

            受益匪淺
            779539616  回復  更多評論   

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

            確實太無私了,真想拜您為師!QQ:399344192  回復  更多評論   

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

            受教  回復  更多評論   

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

            好  回復  更多評論   

            公告

            導航

            統計

            常用鏈接

            隨筆分類(178)

            3D游戲編程相關鏈接

            搜索

            最新評論

            人人狠狠综合久久88成人| 91精品免费久久久久久久久| 欧洲性大片xxxxx久久久| 精品久久久久中文字| 久久久久女教师免费一区| 久久人人青草97香蕉| 久久久久亚洲AV片无码下载蜜桃| 99久久中文字幕| 久久99九九国产免费看小说| 久久99国产综合精品女同| 精品久久人人爽天天玩人人妻| 久久久无码精品亚洲日韩京东传媒 | 久久国产免费观看精品3| AA级片免费看视频久久| 77777亚洲午夜久久多喷| 99久久精品国产一区二区三区 | 亚洲精品国产成人99久久| 亚洲中文字幕伊人久久无码| 久久国产精品99久久久久久老狼| 久久久亚洲裙底偷窥综合| 久久99久久成人免费播放| 精品久久久久久成人AV| 99精品久久精品一区二区| 久久久久国产一级毛片高清板| 国产精品欧美久久久天天影视| 伊人伊成久久人综合网777| 丁香五月综合久久激情| 久久夜色精品国产亚洲| 久久国产精品成人影院| 午夜天堂精品久久久久| 要久久爱在线免费观看| 亚洲成av人片不卡无码久久 | 久久中文字幕人妻丝袜| 欧美久久久久久| 国产69精品久久久久APP下载| 日韩va亚洲va欧美va久久| 99久久婷婷国产一区二区| 岛国搬运www久久| 精品久久久久国产免费| 久久国产三级无码一区二区| 久久精品国产亚洲7777|