說明:本系列是我在學(xué)習(xí)DX10 過程中的一些翻譯和總結(jié),主要內(nèi)容來自DXSDK(Aug2007) 及NVIDIA,ATI等技術(shù)文檔。
與其前代 D3D 9 相比,D3D10 的渲染管線有著革命性的變化,它基于全新一代的軟件、硬件平臺,為下一代的游戲和3D多媒體應(yīng)用開發(fā)提供強大的支持。
軟件平臺上,D3D10基于Windows Vista 操作系統(tǒng)的Windows Vista Display Driver Model (WDDM),因此只能在Windows Vista系統(tǒng)下運行。如果要考慮跨平臺性的問題,參考一下OpenGL3吧。
硬件平臺上,目前硬件支持D3D10的顯卡只有NVIDIA 公司的GeForce 8系列(包括從高端到低端的8800,8600,8500,8400)和AMD.ATI公司的Radeon HD 2000(2900,2600,2400)系列。
參考鏈接:
NVIDIA http://www.nvidia.com/object/geforce_family.html
ATI http://ati.amd.com/products/hdseries.html
D3D10在D3D9上增加的新特性主要有:
1. 渲染管線中新增加了幾何著色器階段,幾何著色器可以處理整個圖元及鄰接信息
2. 流輸出階段可以將渲染管線生成的頂點數(shù)據(jù)輸出到內(nèi)存中。
3. 定義了一些新的對象和樣式來減少運行時及驅(qū)動程序在驗證和處理時的CPU開銷。
* 將管線狀態(tài)封裝成不可變的狀態(tài)對象
* 將著色器常數(shù)變量(constant variable)封裝成常數(shù)緩存。
* 在幾何著色器中支持逐圖元的材質(zhì)設(shè)置和切換
4. 新的資源類型和格式(如在著色器中可以索引訪問的紋理數(shù)組)
5. 使用資源視圖來分隔資源在內(nèi)存中的格式和資源的使用、存取方式。也就是使用了Model-View 模式
6. 定義了一套完整的功能集。不再保留對遺留硬件功能的支持,即完全放棄了向下的兼容性。D3D10API只針對D3D10及以上級別的顯示硬件。
7. 分層的運行時。在核心層提供基礎(chǔ)的功能,而在外網(wǎng)層次提供可選的、擁有輔助開發(fā)的功能
8. 完全的HLSL集成,HLSL位于核心層中。所有的著色器程序都使用HLSL編寫,都在通用著色器內(nèi)核中實現(xiàn)。
9. 增加了支持的渲染目標、紋理和采樣器的數(shù)量。對著色器代碼的長度不再有限制。
10. 完整支持:
* 著色器中的整數(shù)和位操作
* 在著色器中對深度/模板緩存和對多重采樣資源的讀回(訪問)
* 多重采樣 Alpha-to-Coverage(???不懂)