【基本介紹】
DirectX,(Direct eXtension,簡稱DX)是由微軟公司創建的多媒體編程接口。由C++編程語言實現,遵循COM。被廣泛使用于Microsoft Windows、Microsoft Xbox和Microsoft Xbox 360電子游戲開發,并且只能支持這些平臺。最新版本為DirectX 11,創建在最新的Windows 7上。
DirectX 9.0
2002年底,微軟發布DirectX9.0。DirectX 9中PS單元的渲染精度已達到浮點精度,傳統的硬件T&L單元也被取消。全新的VertexShader(頂點著色引擎)編程將比以前復雜得多,新的VertexShader標準增加了流程控制,更多的常量,每個程序的著色指令增加到了1024條。
PS 2.0具備完全可編程的架構,能對紋理效果即時演算、動態紋理貼圖,還不占用顯存,理論上對材質貼圖的分辨率的精度提高無限多;另外PS1.4只能支持28個硬件指令,同時操作6個材質,而PS2.0卻可以支持160個硬件指令,同時操作16個材質數量,新的高精度浮點數據規格可以使用多重紋理貼圖,可操作的指令數可以任意長,電影級別的顯示效果輕而易舉的實現。
VS 2.0通過增加Vertex程序的靈活性,顯著的提高了老版本(DirectX8)的VS性能,新的控制指令,可以用通用的程序代替以前專用的單獨著色程序,效率提高許多倍;增加循環操作指令,減少工作時間,提高處理效率;擴展著色指令個數,從128個提升到256個。
增加對浮點數據的處理功能,以前只能對整數進行處理,這樣提高渲染精度,使最終處理的色彩格式達到電影級別。突破了以前限制PC圖形圖象質量在數學上的精度障礙,它的每條渲染流水線都升級為128位浮點顏色,讓游戲程序設計師們更容易更輕松的創造出更漂亮的效果,讓程序員編程更容易。
DirectX 9.0c
與過去的DirectX 9.0b和Shader Model 2.0相比較,DirectX 9.0c最大的改進,便是引入了對Shader Model 3.0(包括Pixel Shader 3.0 和Vertex Shader 3.0兩個著色語言規范)的全面支持。舉例來說,DirectX 9.0b的Shader Model 2.0所支持的Vertex Shader最大指令數僅為256個,Pixel Shader最大指令數更是只有96個。而在最新的Shader Model 3.0中,Vertex Shader和Pixel Shader的最大指令數都大幅上升至65535個,全新的動態程序流控制、 位移貼圖、多渲染目標(MRT)、次表面散射 Subsurface scattering、柔和陰影 Soft shadows、環境和地面陰影 Environmental and ground shadows、全局照明 (Global illumination)等新技術特性,使得GeForce 6、GeForce7系列以及Radeon X1000系列立刻為新一代游戲以及具備無比真實感、幻想般的復雜的數字世界和逼真的角色在影視品質的環境中活動提供強大動力。
因此DirectX 9.0c和Shader Model 3.0標準的推出,可以說是DirectX發展歷程中的重要轉折點。在DirectX 9.0c中,Shader Model 3.0除了取消指令數限制和加入位移貼圖等新特性之外,更多的特性都是在解決游戲的執行效率和品質上下功夫,Shader Model 3.0誕生之后,人們對待游戲的態度也開始從過去單純地追求速度,轉變到游戲畫質和運行速度兩者兼顧。因此Shader Model 3.0對游戲產業的影響可謂深遠。