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

            李錦俊(mybios)的blog

            游戲開發(fā) C++ Cocos2d-x OpenGL DirectX 數(shù)學(xué) 計(jì)算機(jī)圖形學(xué) SQL Server

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              86 Posts :: 0 Stories :: 370 Comments :: 0 Trackbacks

            公告

            QQ:30743734
            EMain:mybios@qq.com

            常用鏈接

            留言簿(16)

            我參與的團(tuán)隊(duì)

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 371573
            • 排名 - 67

            最新評論

            閱讀排行榜

            評論排行榜

            引用
            Direct3D10特性預(yù)覽
            將我在GameResBlog的老文章重新貼回來,發(fā)現(xiàn)寫的還是很有味道,嘿嘿~~
            ?
            剛拿到DirectX?Dec2005?SDK,發(fā)現(xiàn)竟然有D3D10的文檔和例子,速研究了一下,以下只是個人的讀書筆記,僅作參考

            1.去掉了固定管線
            文檔里列出了用DX10特性模擬的一些固定管線的操作,MS那么大度把DX都開源了(^O^)。

            2.去掉了以前版本DX的設(shè)備能力檢查(CAPS)
            為DX10和Windows?Vista提供的顯示硬件必須滿足DX10的所有硬件特性。這樣對于開發(fā)者就比較可以放心的使用各種硬件特性了,很類似Console平臺
            的開發(fā)。

            3.狀態(tài)對象(State?Object)
            "從100多個渲染狀態(tài)中解脫出來吧!"
            D3D10對渲染狀態(tài)這個概念進(jìn)行淡化,一方面使用全Shader化的架構(gòu)使得狀態(tài)的前后設(shè)置和互相影響對渲染成功率降低到最少
            另外對API架構(gòu)也更為簡潔,另一方面對一些關(guān)鍵渲染狀態(tài)進(jìn)行封裝和分類。主要分類有:

            Input?Layout?Object?輸入層對象
            這個東西很類似D3D9里的頂點(diǎn)聲明,也就是對用戶輸入數(shù)據(jù)進(jìn)行整合和系統(tǒng)化

            Rasterizer?Object?光柵化對象
            這部分主要控制光柵器的行為:填充模式(FILL_MODE),剔除模式(CULL_MODE),多采樣,DepthBias等等

            DepthStencil?Object?深度緩沖對象
            主要控制深度緩沖的行為,像Z-buffer?Enable之類的

            Blend?Object?混合對象
            設(shè)置象素混合的方法,類似AlphaBlend?SrcAlpha?,DestAlpha等等

            Sampler?Object?采樣器對象
            設(shè)置紋理采樣狀態(tài),包括過濾器和MipMap

            4.新的資源訪問模式和資源視圖(View)概念
            如果對比D3D9的Shader使用代碼和D3D10的類似代碼會發(fā)現(xiàn)一個不同。
            D3D9?Shader需要對紋理進(jìn)行操作時(shí),需要將紋理設(shè)置到Shader就可以了,而D3D10里沒有那么簡單,設(shè)置前必須將
            各種資源整合后為資源創(chuàng)建一個視圖,再提交給Shader訪問。這種操作在環(huán)境貼圖里是很有好處的。對于CubeMap的6張紋理
            就可以采用一個視圖設(shè)置到設(shè)備,而自己要訪問每張貼圖只要輕松訪問視圖就可以了,也就是說把資源規(guī)整和集成化。

            5.新的可編程圖形層(Stage)-幾何Shader(Geometry?Shader)
            原來的VS和PS只是對逐個頂點(diǎn)或象素進(jìn)行處理,而新的GS可以對每個頂點(diǎn)或象素的臨近頂點(diǎn)設(shè)置Shader。也就是可以對批量幾何進(jìn)行處理
            GS的用途有:
            點(diǎn)精靈
            動態(tài)粒子系統(tǒng)
            皮毛系統(tǒng)
            卷積陰影
            單Pass渲染到球形貼圖
            逐多邊形材質(zhì)交換
            逐多邊形材質(zhì)設(shè)置

            6.設(shè)備的創(chuàng)建要求對ViewPort進(jìn)行設(shè)置
            D3D9里無需對ViewPort進(jìn)行設(shè)置就可以進(jìn)行渲染,而且默認(rèn)的RenderTarget就是后備緩沖
            而在D3D10里,這個過程變得更為自主化。取出后備緩沖的格式,將RenderTarget設(shè)置為屏幕
            這讓人感到D3D10設(shè)計(jì)更趨向于成熟的引擎設(shè)計(jì)。

            7.流輸出層(Stream?Output?State)
            這個層的功能是將VS和GS處理完成的數(shù)據(jù)輸出給用戶,由用戶進(jìn)行處理后再反饋給管線繼續(xù)處理

            8.多邊形拓?fù)浣Y(jié)構(gòu)從繪制代碼分離
            現(xiàn)在可以單獨(dú)設(shè)置拓?fù)浣Y(jié)構(gòu)
            g_pd3dDevice->IASetPrimitiveTopology(?D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST?);
            和使用Draw函數(shù)繪制了,很類似OpenGL


            9.嚴(yán)格的設(shè)備對象創(chuàng)建時(shí)間驗(yàn)證
            這里的設(shè)備對象就是從設(shè)備創(chuàng)建出來的資源。為了減少CPU占用,D3D10重新設(shè)計(jì)了硬件資源調(diào)用調(diào)度,所有的設(shè)備對象都用面向?qū)ο蟮姆椒ū辉O(shè)備
            管理。這種設(shè)計(jì)方法避免了在渲染期的資源創(chuàng)建操作。

            10.去掉BeginScene和EndScene
            這個對于圖形API確實(shí)多余


            Dec2005?sdk里提供的文檔讓人很快想到這只是一個過渡版本
            在DXUT的Mesh.Create函數(shù)中可以看到一個很有趣的現(xiàn)象:
            創(chuàng)建D3D9對象,使用D3DX9里的載入X模型文件的函數(shù)載入X文件
            將D3D9的模型數(shù)據(jù)轉(zhuǎn)成D3D10的類型。這樣做無非是在告訴我們一個
            這樣的信息,D3D10很有可能提供一種新的模型格式來作為研究使用
            。Vista的圖形系統(tǒng)Avalon從一些視頻上分析,使用了大量的XML,所以
            新的模型格式很有可能使用XML,并且X格式的解析接口確實(shí)不方便。而
            XML的分析器可以由第三方提供。使得更多的研究人員能更方便的使用
            這種新格式。

            順便提供一些縮寫對應(yīng)的含義,這些在一些函數(shù)前綴會出現(xiàn)
            IA-Input?Assembler?State
            SO-Stream?Output?State
            OM-Output?Merger?State
            VS-Vertex?Shader
            PS-Pixel?Shader
            GS-Geometry?Shader

            Powered?by?Davy.xu
            msn:sunicdavy@sina.com

            posted on 2006-11-18 09:14 李錦俊(mybios) 閱讀(1670) 評論(0)  編輯 收藏 引用 所屬分類: Direct3D
            久久99亚洲综合精品首页| 国产L精品国产亚洲区久久 | 久久精品国产99久久丝袜| 久久99精品国产99久久6| 综合久久一区二区三区| 奇米综合四色77777久久| 高清免费久久午夜精品| 色偷偷88欧美精品久久久| 久久99精品久久久大学生| 久久精品一区二区三区不卡| 久久免费大片| 香港aa三级久久三级| 亚洲?V乱码久久精品蜜桃| 国产精品免费福利久久| 伊人色综合久久天天网| 伊人久久综合热线大杳蕉下载| 久久精品中文无码资源站| 成人午夜精品久久久久久久小说| 亚洲αv久久久噜噜噜噜噜| 久久综合给合综合久久| 久久最近最新中文字幕大全| 午夜欧美精品久久久久久久| 日本欧美国产精品第一页久久| 精品国产一区二区三区久久| 久久久无码精品亚洲日韩蜜臀浪潮| 日韩美女18网站久久精品| 精品国产热久久久福利| 亚洲精品高清国产一久久| 九九99精品久久久久久| 久久久久无码精品国产不卡| 久久久久人妻一区二区三区| 亚洲国产视频久久| 久久99精品久久久大学生| 亚洲精品tv久久久久久久久| 一本色综合网久久| 久久精品国产亚洲av水果派| 久久99精品国产麻豆| 国内精品久久久久| 99久久99久久精品国产片| 久久国产成人午夜aⅴ影院| 欧美午夜精品久久久久久浪潮|