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

            0.1 狀態(tài)對象介紹

                     D3D10的渲染管線被分成5個階段(stage),每個階段都有許多的狀態(tài)(state),不同的狀態(tài)決定了階段的不同特征。當(dāng)渲染不同的物體時,通常需要切換某些個階段的某些狀態(tài)。在D3D9中,沒有明顯的階段劃分,所有的狀態(tài)設(shè)置都是直接針對渲染管線的設(shè)置,比如頂點格式、渲染狀態(tài)、紋理階段狀態(tài)等,程序可以單獨修改每一個狀態(tài)。D3D10 用階段狀態(tài)對象來包裝一組相關(guān)的狀態(tài)。對渲染管線的修改只能通過狀態(tài)對象來進(jìn)行,而不能直接修改單個狀態(tài)。最多可以創(chuàng)建4096個狀態(tài)對象,切換狀態(tài)對象而不是直接修改狀態(tài)能大大減少渲染管線的狀態(tài)切換開銷。
                     狀態(tài)對象通過幾個途徑來提升性能:在狀態(tài)對象創(chuàng)建時進(jìn)行狀態(tài)的驗證,可以在硬件中緩存狀態(tài)對象,減少狀態(tài)切換函數(shù)調(diào)用時的參數(shù)傳遞。狀態(tài)對象是不可以修改的,應(yīng)該在程序初始化時創(chuàng)建所有可能用到的狀態(tài)對象。或者將狀態(tài)寫入到Effect中,Effect系統(tǒng)會自動高效地管理狀態(tài)對象的創(chuàng)建和銷毀。

            輸入布局(Input-Layout)狀態(tài)
                  輸入布局狀態(tài)決定了輸入集成器(Input Assembler)階段如何解析輸入緩沖中的數(shù)據(jù)。這組狀態(tài)由輸入布局狀態(tài)對象來包裝,輸入布局狀態(tài)對象用 ID3D10InputLayout 接口來表示,使用 ID3D10Device::CreateInputLayout來創(chuàng)建,使用ID3D10Device::IASetInputLayout來應(yīng)用到管線中。
            D3D9中使用FVF或者頂點聲明結(jié)構(gòu)來定義輸入的頂點緩沖格式,D3D10中則使用輸入元素結(jié)構(gòu)(D3D10_INPUT_ELEMENT_DESC)來定義。這個結(jié)構(gòu)和頂點聲明結(jié)構(gòu)很類似。

            光柵器(Rasterizer)狀態(tài)
                  光柵器狀態(tài)包括填充(fill)模式,精選(cull)模式,裁剪(clipping),多重采樣狀態(tài)等,決定光柵化階段的特征。完整的狀態(tài)列表在D3D10_RASTERIZER_DESC結(jié)構(gòu)中描述。光柵器狀態(tài)對象用 ID3D10RasterizerState 接口來表示。使用ID3D10Device::CreateRasterizerState來創(chuàng)建,使用ID3D10Device::RSSetState來應(yīng)用到管線中。

            深度模版狀態(tài)
                  深度模版狀態(tài)設(shè)定輸出合并階段是進(jìn)行的深度模版測試狀態(tài)。這組狀態(tài)用D3D10_DEPTH_STENCIL_DESC結(jié)構(gòu)來描述。深度模版狀態(tài)對象用 ID3D10DepthStencilState 接口來表示。使用ID3D10Device::CreateDepthStencilState來創(chuàng)建,使用ID3D10Device::OMSetDepthStencilState來應(yīng)用到管線中。

            混合狀態(tài)
                  設(shè)定輸出合并階段的混合特性。用ID3D10BlendState接口來表示,用ID3D10Device::CreateBlendState.來創(chuàng)建,用ID3D10Device::OMSetBlendState來應(yīng)用。

            取樣器狀態(tài)
                  取樣器對象用來在著色器階段對紋理內(nèi)存進(jìn)行取樣,用D3D10_BLEND_DESC結(jié)構(gòu)來描述。在D3D10中,取樣器不再和一個具體的紋理綁定在一起,而是可以對任意給的紋理進(jìn)行取樣。用ID3D10SamplerState接口來表示。用ID3D10Device::CreateSamplerState.來創(chuàng)建。用 ID3D10Device::VSSetSamplers, ID3D10Device::GSSetSamplers, 或 ID3D10Device::PSSetSamplers.來設(shè)定到某個著色器階段。


            posted on 2007-08-31 13:33 隨便寫寫 閱讀(790) 評論(1)  編輯 收藏 引用 所屬分類: DirectX 10 學(xué)習(xí)與研究

            評論

            # re: 0.1 狀態(tài)對象介紹 2012-02-24 16:13 preboy

            謝謝樓主,辛苦了  回復(fù)  更多評論   

            導(dǎo)航

            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            統(tǒng)計

            常用鏈接

            留言簿(1)

            隨筆分類(30)

            隨筆檔案(16)

            文章分類(18)

            文章檔案(9)

            鏈接

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲AV无码久久精品成人 | 97久久综合精品久久久综合| 国产美女亚洲精品久久久综合 | 久久91精品综合国产首页| 国产精品美女久久久久AV福利 | 久久久久久久久久久精品尤物| 久久香综合精品久久伊人| 国产香蕉97碰碰久久人人| 久久久精品人妻一区二区三区蜜桃| 久久精品人人做人人妻人人玩| 久久久久久青草大香综合精品| 久久天堂AV综合合色蜜桃网| 精品一久久香蕉国产线看播放| 无码伊人66久久大杳蕉网站谷歌 | 日韩久久久久久中文人妻| 精品久久久久中文字幕一区| 香蕉久久av一区二区三区| 国産精品久久久久久久| 国产婷婷成人久久Av免费高清| 日本精品一区二区久久久| 久久久www免费人成精品| 国产亚洲精久久久久久无码| 色婷婷综合久久久久中文 | 欧美亚洲国产精品久久| 久久99精品国产99久久| 亚洲精品无码久久久久去q| 色偷偷88欧美精品久久久| 狠狠色丁香婷婷综合久久来来去 | 亚洲国产天堂久久综合网站| 97精品国产97久久久久久免费 | 2022年国产精品久久久久| 亚洲国产精品久久久天堂 | 国产成人精品久久| 精品久久久久久| 热久久国产精品| 久久婷婷久久一区二区三区| 久久66热人妻偷产精品9| 欧美大香线蕉线伊人久久| 久久精品无码午夜福利理论片 | 久久综合狠狠色综合伊人| 精品综合久久久久久97超人 |