• <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>
            隨筆 - 132  文章 - 51  trackbacks - 0
            <2012年11月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            常用鏈接

            留言簿(7)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            cocos2d-x

            OGRE

            OPenGL

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            首先從MIPMAP的原理說起,它是把一張貼圖按照2的倍數(shù)進(jìn)行縮小。直到1X1。把縮小的圖都存儲(chǔ)起來。在渲染時(shí),根據(jù)一個(gè)像素離眼睛為之的距離,來判斷從一個(gè)合適的圖層中取出texel顏色賦值給像素。在D3D和OGL都有相對(duì)應(yīng)的API控制接


            透過它的工作原理我們可以發(fā)現(xiàn),硬件總是根據(jù)眼睛到目標(biāo)的距離,來玄奇最適合當(dāng)前屏幕像素分辨率的圖層。假設(shè)一張32768x32768的mipmap貼圖,當(dāng)前屏幕分辨率為1024*1024。眼睛距離物體比較近時(shí),mipmap最大也只可能從1024*1024的Mipmap圖層選取texel。再次,當(dāng)使用三線性過濾(trilinear)時(shí),最大也只能訪問2048*2048的圖層選取texel,來和1024*1024圖層中的像素進(jìn)行線性插值。

            為了加快渲染速度和減少圖像鋸齒,貼圖被處理成由一系列被預(yù)先計(jì)算和優(yōu)化過的圖片組成的文件,這樣的貼圖被稱為 MIP map 或者 mipmap

             

            多級(jí)漸進(jìn)紋理由一組分辨率逐漸降低的紋理序列組成,每一級(jí)紋理寬度和高度都是上一級(jí)紋理寬度和高度的一半。寬和高不一定相等,也就是說,這些紋理不一定都是正方形。

            Direct3D在紋理映射時(shí),自動(dòng)選擇一幅與物體大小最接近的紋理進(jìn)行渲染。當(dāng)物體離投影平面較遠(yuǎn)時(shí),Direct3D會(huì)選擇一張尺寸較小、分辨率較低的紋理進(jìn)行渲染;當(dāng)物體離投影平面較近時(shí),Direct3D會(huì)選擇一張尺寸較大、分辨率較高的紋理進(jìn)行渲染。Direct3D將紋理序列看成一條多級(jí)漸進(jìn)紋理鏈。鏈頭處紋理的分辨率最高,下一級(jí)往后依次遞減,鏈尾處紋理的分辨率最低。

            Direct3D能估計(jì)出多級(jí)漸進(jìn)紋理鏈中哪幅紋理的分辨率最接近想要的輸出結(jié)果,然后它將像素映射到紋理空間。當(dāng)最終顯示的圖形大小介于任意兩級(jí)紋理圖形之間時(shí),Direct3D將兩級(jí)紋理的相應(yīng)元素進(jìn)行混合后顯示。

            多級(jí)漸進(jìn)紋理過濾能夠有效地提高圖形渲染速度,當(dāng)物體離投影平面較遠(yuǎn)時(shí),Direct3D會(huì)選擇一張尺寸較小的紋理進(jìn)行渲染,而無需經(jīng)過復(fù)雜的諸如各項(xiàng)異性紋理過濾,并且由于這時(shí)紋理需要的顯存比不使用多級(jí)漸進(jìn)紋理時(shí)小,因此能有效地減少紋理載入顯存的時(shí)間。缺點(diǎn)是對(duì)內(nèi)存的要求比較高


            設(shè)置多級(jí)漸進(jìn)紋理過濾方式

            當(dāng)最終顯示的紋理貼圖大小介于任意兩級(jí)紋理之間時(shí),Direct3D能夠取得兩級(jí)紋理元素進(jìn)行混合后顯示,具體的混合方式由指定的多級(jí)漸進(jìn)紋理過濾方式?jīng)Q定??梢哉{(diào)用函數(shù)IDirect3DDevice9::SetSamplerState()設(shè)置多級(jí)漸進(jìn)紋理過濾方式,將第一個(gè)參數(shù)設(shè)為紋理層序號(hào),第二個(gè)參數(shù)設(shè)為D3DSAMP_MIPFILTER表示多級(jí)漸進(jìn)紋理過濾,第三個(gè)參數(shù)設(shè)為在相鄰紋理級(jí)之間的過濾方式,可取枚舉類型D3DTEXTUREFILTERTYPE的任意值。下面的示例代碼設(shè)置相鄰紋理級(jí)之間的過濾方式為線性過濾。

            g_device->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR);

            如果將第三個(gè)參數(shù)設(shè)為D3DTEXF_NONE,那么就會(huì)一直使用最高一級(jí)的紋理,即禁用多級(jí)漸進(jìn)紋理過濾。如果將其設(shè)為D3DTEXF_POINT,就會(huì)只使用與圖元大小最匹配的一級(jí)紋理。如果將其設(shè)為D3DTEXF_LINEAR,Direct3D就將與圖元大小最匹配的兩級(jí)紋理以線性方式混合。

            需要注意的是,多級(jí)紋理過濾是縮小和放大過濾器的結(jié)合。例如,如果將縮小和方法過濾器設(shè)為線性過濾,但是多級(jí)紋理過濾方式設(shè)為最近點(diǎn)采樣,Direct3D就會(huì)選擇與要顯示的紋理貼圖大小最接近的紋理級(jí)別,在該級(jí)紋理上完成雙線性紋理過濾,并將結(jié)果作為像素的值。如果將縮小、放大過濾器和多級(jí)漸進(jìn)紋理都設(shè)置為線性過濾,則Direct3D就會(huì)在兩個(gè)最接近的紋理級(jí)別上都進(jìn)行雙線性紋理過濾,然后再對(duì)相鄰兩級(jí)紋理圖形上對(duì)應(yīng)的兩個(gè)紋理顏色進(jìn)行加權(quán)平均,最后的結(jié)果作為單個(gè)像素值。這種為了圖元中的一個(gè)像素,而結(jié)合了兩幅紋理,共8個(gè)像素的技術(shù),稱為“三線性過濾”,因?yàn)樗诩y理的三個(gè)方向----u、 v和紋理級(jí)別上都進(jìn)行了線性過濾。

            可以通過IDirect3DDevice9::SetSamplerState()函數(shù)設(shè)置實(shí)際渲染時(shí)紋理過濾的最大級(jí)數(shù),其中需要將第二個(gè)參數(shù)設(shè)為D3DSAMP_MAXMIPLEVEL,第三個(gè)參數(shù)設(shè)為實(shí)際渲染時(shí)紋理過濾的最大級(jí)數(shù)。下面的示例代碼設(shè)置紋理層0的最大多級(jí)紋理過濾級(jí)數(shù)為16。

            g_device->SetSamplerState(0, D3DSAMP_MAXMIPLEVEL, 16);

            還可以通過將IDirect3DDevice9::SetSamplerState()的第二個(gè)參數(shù)設(shè)為D3DSAMP_MIPMAPLODBIAS,設(shè)置多級(jí)紋理映射級(jí)數(shù)偏移值。如果對(duì)某個(gè)紋理映射設(shè)置正偏移值,得到的圖形結(jié)果就會(huì)比原來的更清晰,但鋸齒更多;反之設(shè)為負(fù)偏移值,得到的圖形結(jié)果就會(huì)更模糊。

            代碼:實(shí)例下載

            posted on 2011-08-06 17:51 風(fēng)輕云淡 閱讀(10420) 評(píng)論(0)  編輯 收藏 引用 所屬分類: DX
            91精品无码久久久久久五月天| 亚洲欧美一区二区三区久久| 国产欧美久久一区二区| 大美女久久久久久j久久| 久久久久久久国产免费看| 99久久99久久精品国产片果冻| 99久久免费只有精品国产| 亚洲αv久久久噜噜噜噜噜| 久久午夜综合久久| 国内精品九九久久久精品| 青春久久| 国内精品久久久久久久coent| 亚洲精品乱码久久久久久中文字幕 | 久久精品一本到99热免费| 久久国产影院| 久久福利青草精品资源站免费 | 亚洲精品成人网久久久久久| 精品久久香蕉国产线看观看亚洲| 国产一区二区久久久| 欧美精品一区二区久久| 91久久精品电影| 久久91精品国产91久久户| 久久久久久午夜成人影院| 久久精品一区二区三区AV| 亚洲а∨天堂久久精品| 久久久久国产亚洲AV麻豆| 成人午夜精品久久久久久久小说 | 久久久精品一区二区三区| 东京热TOKYO综合久久精品| 久久99国产乱子伦精品免费| 久久这里只有精品首页| 久久AV高潮AV无码AV| 亚洲精品成人久久久| 久久婷婷人人澡人人爽人人爱| 伊人久久五月天| 久久久久亚洲AV无码专区首JN | 久久精品国产亚洲Aⅴ香蕉| 久久亚洲电影| 国产成人久久精品一区二区三区| 亚洲国产美女精品久久久久∴| 日韩乱码人妻无码中文字幕久久|