DirectX 11是什么
2009年9月22日ATI發(fā)布了支持DX11的基于Cypress核心的HD5800系列顯卡,而NVIDIA才剛造出支持DX11的GT300芯片的樣品。回顧DirectX歷史,從1995年Windows 95里的DX1.0開始,一直保持著很快的升級速度,只有DX9系列的幾個版本維持了四年之久。用兩年的時間從DX10更新到DX11,其實也不算快。
雖然硬件已經(jīng)支持DirectX11,但支持DirectX11的游戲2010年才會大量出現(xiàn)。
我們知道,DX10.1將是DX10的最后一次升級,而且是非關鍵性的,接下來微軟就會直接邁入DX11。根據(jù)此前的報道,DX11的主要目標仍是降低游戲開發(fā)難度和成本,同時更有效地發(fā)揮新硬件的能力、提高物理效果和游戲AI、增強畫面細節(jié)復雜度、針對多核心處理器進行全面優(yōu)化。
2009年1月9日星期五,微軟將面向公眾發(fā)布Windows 7客戶端Beta 1測試版。而此前一天,即1月8日,微軟將率先發(fā)布Windows 7服務器版本的Beta 1測試版。
在微軟發(fā)布的Windows 7 Beta版本中,一些已經(jīng)安裝使用的用戶的發(fā)現(xiàn)了DirectX 11已經(jīng)包含其中了。DirectX 11作為3D圖形接口,不僅支持未來的DX11硬件,還向下兼容當前的DirectX 10和10.1硬件。DirectX 11增加了新的計算shader技術,可以允許GPU從事更多的通用計算工作,而不僅僅是3D運算,這可以鼓勵開發(fā)人員更好地將GPU作為并行處理器使用。
特點
DX11新增了計算著色器(Compute Shader)代碼示例,在今年的NVISION大會上,微軟就透漏了這點,并通過SIGGRAPH以及GameFest 2008大會上放出的幻燈片,我們可以進行一些深入的研究。此外,DX11特性的提前放出,對于目前DX10以及DX10.1硬件用戶而言也大有裨益,因為AMD和NVIDIA可以照此提前開發(fā)適當?shù)尿?qū)動支持。
DirectX 11的諸多特性似乎暗示我們,DirectX 11被迅速采用的時機已經(jīng)成熟,特別是微軟的Windows 7發(fā)布之后,這一趨勢將會勢不可擋。而如今,HLSL(High Level Shading Language,高級渲染語言)已經(jīng)完全成熟,這勢必會讓DX11在眾游戲開發(fā)者們眼里變得更加具有吸引力,而且越來越多的人開始認識到DX10其實就是DX11的子集,這對于DirectX 11將來被快速采用也會起到促進作用。另外,DX11可以讓平行編程變得更加容易,其獨有的特性也會促進開發(fā)者們大膽的、迅速采納這種API。DirectX 11同時可以兼容Vista操作系統(tǒng),所以用戶不用擔心不能升級,而Windows 7與生俱來的魅力在很大程度上也會促使Windows XP用戶們做出升級的決定,也就是說,對于開發(fā)者們而言,市場上將會有足夠大的可運行DX11的系統(tǒng)群體。
微軟曾許諾DirectX 10可以帶來革命性的視覺體驗以及渲染技術,但結果卻是仁者見仁,不過可以肯定的是,DirectX 11可能最終將會履行這一承諾。雖然我們現(xiàn)在不可能馬上就看到DirectX 11獨有的特性所帶來的效果,但是這一新版API的普及將會對刺激適時3D繪圖技術不斷提升大有裨益。
從DirectX 6到DirectX 9,微軟一直在有條不紊的使他們的編程API從一種固定的功能傳播介質(zhì)以及動態(tài)的數(shù)據(jù)結構向一種豐滿的、可編程的、可進行繪圖硬件深控的環(huán)境演變。從DX9到DX10的演變可以說是一種升華:DX9的可編程性得到了進一步擴展和延伸,并在新一代硬件的作用下變得更具深度和彈性。此外,微軟還通過各種手段提升了DX10的穩(wěn)定性以及靈活性。但是,DirectX 11的演變過程則有很多不同。
為了最大限度的提升可編程性,DX11寧可丟掉一些原有的結構效度。微軟將DirectX 11構建成DirectX 10/10.1的精確父集,這讓DirectX 11無形中新增了很多奇妙的潛力。特別是,DX10代碼將會變成可以選擇不去執(zhí)行某些先進特性的DX11代碼,而反過來,DX11又可以在所有同等水平的硬件上運行。當然了,對于DX10而言,并不是所有的DX11特性都是可用的,但是這卻意味著開發(fā)者可在采用DX11的情況下同時針對DX10和DX11硬件進行開發(fā),而不用考慮兩者完全分開對待:因為兩者是相同的,只不過,一個是另一個的子集功能而已。但是,如果應用某些DX11獨有特效(比如說tessellator或者compute shader)時,區(qū)分代碼路徑是非常必要的,但這完全屬于從DX10向DX11過渡過程中的益處所在。