Win7之家( afsion.com.cn):Vista SP2用戶迎來Windows 7中的DirectX 11支持
我們已經知道,微軟將會通過更新的形式將Windows 7中的一些特性移植到Vista SP2中。而事實上,此更新同時也將會將Vista的圖形性能和支持帶上一個新的臺階。
因為,通過此更新,微軟將會為Vista SP2用戶提供DirectX 11支持。微軟發(fā)言人稱Vista SP2的用戶將會獲得最新的DirextX平臺 - DirectX 11。通過新的更新版,Vista SP2的用戶也將享受到DirectWrite, Direct2D, Direct3D 11, Direct3D 10 Level 9, 和DXGI 1.1技術。
此前,DirectX 11是Windows 7的內置組件,Vista SP2的默認DirectX版本為DirectX 10。
PS:WIN+R運行dxdiag即可查看自己的DirectX 版本
更新下載:點此下載
DirectX 11具有如下特點:
1,Direct3D11渲染管線:
看上去,DirectX 11比DirectX 10更酷。DirectX 11的很多提升意味著更高的特性性能,而這些特性很少能在DX10中看到。DirectX 11和DirectX 10兩者最大的不同之處在于管線,可以說DirectX 11的渲染管線標志著繪圖硬件以及軟件功能革命性一步。DirectX 11加入了對Tessellation(鑲嵌)的支持。Tessellation 由外殼著色器(Hull Shader)、鑲嵌單元(tessellator)以及域著色器(Domain Shader)組成。同時還加入了計算著色器(Compute Shader),計算著色器與DX10中引入的GS不同,它并不是渲染管線的一部分,CS也是DirectX 11的重要改進之一,可以很大程度上協助開發(fā)人員彌補現實與虛幻之間的差別。
2,Tessellation鑲嵌技術:
在此之前,關于DirectX 11的報道可謂鋪天蓋地。事實上,自R600發(fā)布時,DirectX 11這個字眼才開始越來越多的出現在網絡上。盡管R6xx和R7xx硬件都具有tessellator單元,但是由于tessellator屬于專有實現 方案(proprietary implementation),所以R6xx和R7xx硬件是不能直接兼容DirectX 11,更何況DirectX 11采用了極其精密老練的設置過程。事實上,DX11 tessellator單元本身不具備可編程性,DX11向tessellator (TS)輸入或者從中輸出的過程是通過兩個傳統(tǒng)的管線階段完成的:Hull Shader (HS,外殼著色器)和Domain Shader (DS,域著色器)。
tessellator可以把一些較大的圖元(primitive)分成很多更小的圖元,并將這些小圖元組合到一起,形成一種有序的幾何圖形,這種幾何圖 形更復雜,當然也更接近現實。這個過程也被稱作細分曲面(Subdivision Surfaces)。舉例來說,tessellator可以讓一個立方體,通過處理看起來像是個球形,這樣的話無疑節(jié)省了空間。此外,圖形的質量、性能以 及可控性也達到了一定的促進。
Hull Shader負責接收一種由全四邊形網格(quad mash)計算得到的圖元數據(稱作patches),并計算控制點(control points)的各種變換以及輸入的圖元各個邊的鑲嵌配置(tessellation factors),從而進行鑲嵌。其中Control points用來定義想要得到的圖形(比如說一個曲面或者其他)的圖形參數。如果您經常用Photoshop繪圖軟件的話,不妨把Control points理解為PS的鋼筆工具:用平面代替線的貝塞爾曲線功能。Hull Shader采用control points來決定如何安排tessellator處理數據,利用Tessellator生成大批量的新的圖元,然后將這些圖元以及控制點傳送給 Domain Shader,Domain Shader將這些數據計算轉換成3D處理中的頂點,最后GPU生成曲線以及多邊形。
3,多線程的支持:
由于DX11所新增的特性甚至可以應用到DX10硬件中,所以我們對于DX11的快速應用都非常期待和樂觀。DX11特性還包括很重要一點:支持多線程 (multi-threading)。沒錯,無論是DX10還是DX11,所有的色彩信息最終都將被光柵化并顯示在電腦顯示屏上(無論是通過線性的方式還 是同步的),但是DX11新增了對多線程技術的支持,得益于此,應用程序可以同步創(chuàng)造有用資源或者管理狀態(tài),并從所有專用線程中發(fā)送提取命令,這樣做無疑 效率更高。DX11的這種多線程技術可能并不能加速繪圖的子系統(tǒng)(特別是當我們的GPU資源受限時),但是這樣卻可以提升線程啟動游戲的效率,并且可以利 用臺式CPU核心數量不斷提高所帶來的潛力。
對于場景中的人像和三個鏡像,DX11會啟動四個單獨線程進行并行處理,效率自然要比現在依次進行的做法高很多。
搭載8顆以及16顆邏輯核心的CPU系統(tǒng)已經離我們越來越近,現在游戲開發(fā)商們也該趕緊行動起來了,是時候解決有些游戲在雙核心系統(tǒng)中運行緩慢的問題了。 但是開發(fā)一款能夠很大程度上促進雙核以上系統(tǒng)普及的游戲,所能夠獲得的利潤以及需要的付出目前來講還很不樂觀,所以這一進程進展緩慢。對于大多數游戲而 言,充分利用四核心以及超過四核心的多線程優(yōu)勢還非常困難。盡管如此,通過多線程技術讓簡單的平行運算資源產生并顯示出來,確實為采用平行運算代碼的游戲 提供了走紅的機會,這些游戲代碼也可以以單線程編碼的方式存在。由于DX11系統(tǒng)中并不是采用一條線程處理所有DX state change以及draw call(或者說大量同步線程共同負責某一任務)的方式,所以游戲開發(fā)者可以很自然的創(chuàng)造出線程處理某個場景的某一類或者某一群的客體對象,并為將來所有 客體對象或者實體為各自的線程處理打下基礎(如果邏輯核心最終達到數百顆之后,這種線程處理方式對于提取硬件性能尤為重要)。
此外,DX10硬件也能夠在運行DX11游戲時支持多線程,微軟的這一計劃相當令人興奮,不過值得一提的是,AMD以及NVIDIA必須為各自的DX10 硬件開發(fā)出相應的驅動軟件才能達到這一效果(因為如果沒有相應的驅動支持的話,DX10硬件即便可以運行DX11游戲,對于玩家而言并不會看到真正應有的 效果)。當然了,我們希望NVIDIA,特別是AMD(因為他同時也是一家可以生產多核心 CPU的廠商)能夠對此感興趣。而且,如果A/N這么做到話,無疑會為游戲開發(fā)商們開發(fā)DX11游戲提供誘因,即便是A/N的DX11硬件還在襁褓之中。
4,計算著色器Compute Shader:
很多游戲開發(fā)者都對DX11新增的Compute Shader(通常簡稱為CS)特性嘖嘖稱贊。CS的這一渲染管線能夠進行更多的通用目的運算。我們既能在某種可以用來被執(zhí)行數據的操作中看到這種特性,又能在某種可以用來操作的數據中看到這種特性。
在DirectX11以及CS的幫助下,游戲開發(fā)者便可以使用更為復雜的數據結構,并在這些數據結構中運行更多的通用算法。與其他完整的可編程的DX10和DX11管線階段一樣,CS將會共享一套物質資源(也就是著色處理器)。
相應的硬件需要在運行CS代碼時更靈活些,這些CS代碼必須支持隨機讀寫、不規(guī)則列陣(而不是簡單的流體或者固定大小的2D列陣)、多重輸出、可根據程序 員的需要直接調用個別或多線程的應用、32k大小的共享寄存空間和線程組管理系統(tǒng)、原子數據指令集、同步建構以及可執(zhí)行無序IO運算的能力。
與此同時,CS也將會隨之失去一些特性。因為單個線程已經不再被看成是一個像素,所以線程將會喪失幾何集合功能。這就意味著,盡管CS程序依然可以利用紋 理取樣功能,但是自動三線LOD過濾計算將會喪失自動功能(LOD必須被指定)。此外,一些并不重要的普通數據的深度剔除(depth culling)、反鋸齒(anti-aliasing)、alpha混合(alpha blending)以及其他運算不能在一個CS程序中被執(zhí)行。
除了某些特殊應用的渲染,游戲開發(fā)者可能同時也希望做一些諸如IK(inverse kinematics,反向運動學)、物理、人工智能以及其他在GPU上執(zhí)行的傳統(tǒng)的CPU任務之類的運算。用CS算法在GPU上執(zhí)行這些數據意味著這些 數據將會更快的被渲染,而且一些算法可能在GPU上的執(zhí)行速度更快。如果某些總是產生同樣結果的算法既可以出現在CPU上又可以出現在GPU上的話,諸如 AI以及物理等運算甚至可以同時在CPU和GPU上運行(這種運算實際上也可以代替帶寬)。
即便是這些運算代碼在相同的硬件(CPU或者GPU)上運行,PS以及CS代碼的執(zhí)行也是兩個截然不同的過程,這主要取決于被執(zhí)行的算法。有趣的是,暴露 數據以及柱狀數據經常被用作HDR渲染。用PS代碼計算這些數據的話就需要幾條通道和幾種技巧,以便提取所有像素,從而集中或者平分這些數據。盡管共享數 據將會或多或少的減緩處理速度,但是共享數據的方式要比在多通道中計算速度更快,而且這樣可以使CS成為這些算法的理想處理階段。
5,Shader Model 5.0:
DirectX 10的Shader Model 4.0(Shader Model以下簡稱“SM”)帶來了整數運算和位運算的功能,DirectX 10.1的SM 4.1加入了對MSAA的直接采樣和控制。而DirectX 11包含的SM 5.0,采用面向對象的概念,并且完全可以支持雙精度數據。隨著SM 5.0的發(fā)布,微軟也會將HLSL語言更新至最新版本,其中包含了諸如動態(tài)著色、動態(tài)分支和更多的對象等?傊,面向專業(yè)開發(fā)人員的SM 5.0,依舊是以降低編程的難度和復雜為目的。
為了解決Shader靈活性與彈性不足的問題,微軟在HLSL5.0中帶來解決之道。 HLSL5.0提出shader子程序的概念,即允許程序員將各種小段、簡單或為個別需要而特制的shader程序鏈接起來,再根據實際需要動態(tài)調用,這 樣既能夠提高硬件兼容性,同時減少“巨型shader”對寄存器空間的占用,有效提升性能。
6,改進的紋理壓縮:
精細的紋理對視覺效果的增益是顯而易見的。目前的3D游戲越來越傾向于使用更大、更為精細的紋理,但是過大的紋理嚴重占用顯存和帶寬。由于目前紋理壓縮仍 然不支持HDR圖像,因此DirectX 11提出了更為出色的紋理壓縮算法——BC6和BC7。BC6是為HDR圖像設計的壓縮算法,壓縮比為6∶1;而BC7是為低動態(tài)范圍紋理設計的壓縮模 式,壓縮比為3∶1。兩種壓縮算法在高壓縮比下畫質損失更少,效果更出色。
紋理質量對畫面效果起著至關重要的作用。比如我們運行3D游戲時,畫面內同樣一個物體,觀察距離較遠時,紋理銳利而清晰,但當你拉近視角,近距離細看時, 紋理就非常粗糙了。更不用說在某些游戲中還有類似放大鏡、望遠鏡等道具,啟用這些道具后,只能看到更為粗糙和不真實的紋理。出現這種問題,一方面是紋理壓 縮率損失嚴重,細膩的紋理壓縮存放后,損失大量細節(jié);另一方面是大紋理難以保證保證游戲運行速度和軟件體積,如果在游戲中大面積采用分辨率高達 4000dpi的紋理貼圖,那么顯卡的運算資源和顯存容量很快就會告罄。因此,DirectX 11最快速和最直觀的改變就是再次改進了紋理的壓縮算法,將紋理體積和紋理質量控制在一個相當優(yōu)秀的范圍之內。
軟媒編譯
評論列表
查看所有 條評論