天天看點

Microsoft DirectX 11編輯

<dl></dl>

<dt></dt>

<dd>大小:96.01 mb</dd>

<dd>語言:中文</dd>

<dd>最新版本:11.0</dd>

<dd>評論:</dd>

<dd>類型:免費軟體</dd>

<dd>更新日期:2013-01-06</dd>

<dd>适合系統:win7</dd>

<dd>已認證360安全中心檢測</dd>

為遊戲或多媒體程式加強3d圖形和聲音效果。directx

提供設計人員一個共同的硬體驅動标準,讓遊戲開發者不必為每一品牌的硬體來寫不同的驅動程式,也降低使用者安裝及設定硬體的複雜度。簡單地說,它是一款專門為各種顯示卡設計的加速程式,以提高顯示卡的性能。dx9

是滿足大部分單機遊戲的,但是很多遊戲技術在dx9上已經得不到滿足,是以借助dx11的技術,是以,高端玩家還需要安裝dx11,它與dx9不沖突,不覆寫

<dd></dd>

Microsoft DirectX 11編輯

下載下傳位址:

2009年10月22日,正式釋出windows 7,directx 11內建在windows 7 中同步登場,但其實directx

11隻是directx 10的大幅度加強版,而不是9.0c和10.0/10.1的徹底革新。directx 11帶來了tessellon(拆嵌式細分曲面技術)、multi-threading()、directcompute(通用計算)、shader model 5.0(渲染引擎5.0)以及texture

compression(紋理壓縮)五個重要特性,為使用者帶來更好的視覺享受。win7直接提供了directx

11,而vista則可通過更新directx驅動包來支援11.0。

1

2

3

4

2009年9月22日釋出了支援dx11的基于cypress核心的hd5800系列顯示卡,而才剛造出支援dx11的gt300晶片的樣品。回顧directx曆史,從1995年95裡的dx1.0開始,一直保持着很快的更新速度,隻有dx9系列的幾個版本維持了四年之久。用兩年的時間從dx10更新到dx11,其實也不算快。[1]

雖然硬體已經支援directx11,但支援directx11的遊戲2010年才會大量出現。

我們知道,将是dx10的最後一次更新,而且是非關鍵性的,接下來就會直接邁入dx11。根據此前的報道,dx11的主要目标仍是降低遊戲開發難度和成本,同時更有效地發揮新硬體的能力、提高實體效果和遊戲ai、增強畫面細節複雜度、針對處理器進行全面優化。

2009年1月9日星期五,将面向公衆釋出windows 7beta 1測試版。而此前一天,即1月8日,将率先釋出windows 7版本的beta 1測試版。

在釋出的windows

7中,一些已經安裝使用的使用者的發現了directx 11已經包含其中了。directx

11作為3d圖形接口,不僅支援未來的dx11硬體,還向下相容目前的directx 10和10.1硬體。directx

11增加了新的計算shader技術,可以允許從事更多的通用計算工作,而不僅僅是3d運算,這可以鼓勵開發人員更好地将gpu作為并行使用。

dx11新增了計算着色器(compute shader)代碼示例,在今年的nvision大會上,就透漏了這點,并通過siggraph以及gamefest

2008大會上放出的幻燈片,我們可以進行一些深入的研究。此外,dx11特性的提前放出,對于目前dx10以及dx10.1硬體使用者而言也大有裨益,因為amd和nvidia可以照此提前開發适當的驅動支援。

directx 11的諸多特性似乎暗示我們,directx 11被迅速采用的時機已經成熟,特别是微軟的windows

7釋出之後,這一趨勢将會勢不可擋。而如今,(high

level shading language,進階渲染語言)已經完全成熟,這勢必會讓dx11在衆們眼裡變得更加具有吸引力,而且越來越多的人開始認識到dx10其實就是dx11的,這對于directx

11将來被快速采用也會起到促進作用。另外,dx11可以讓平行程式設計變得更加容易,其獨有的特性也會促進開發者們大膽的、迅速采納這種。directx 11同時可以相容vista,是以使用者不用擔心不能更新,而windows 7與生俱來的魅力在很大程度上也會促使windows

xp使用者們做出更新的決定,也就是說,對于開發者們而言,市場上将會有足夠大的可運作dx11的系統群體。

微軟曾許諾directx 10可以帶來革命性的以及渲染技術,但結果卻是仁者見仁,不過可以肯定的是,directx

11可能最終将會履行這一承諾。雖然我們現在不可能馬上就看到directx

11獨有的特性所帶來的效果,但是這一新版api的普及将會對刺激适時3d繪圖技術不斷提升大有裨益。

從directx 6到directx 9,微軟一直在有條不紊的使他們的程式設計api從一種固定的功能傳播媒體以及動态的向一種豐滿的、可程式設計的、可進行繪圖硬體深控的環境演變。從dx9到dx10的演變可以說是一種升華:dx9的可程式設計性得到了進一步擴充和延伸,并在新一代硬體的作用下變得更具深度和彈性。此外,微軟還通過各種手段提升了dx10的穩定性以及靈活性。但是,directx

11的演變過程則有很多不同。

為了最大限度的提升可程式設計性,dx11甯可丢掉一些原有的結構效度。微軟将directx 11建構成directx

10/10.1的精确父集,這讓directx

11無形中新增了很多奇妙的潛力。特别是,dx10代碼将會變成可以選擇不去執行某些先進特性的dx11代碼,而反過來,dx11又可以在所有同等水準的硬體上運作。當然了,對于dx10而言,并不是所有的dx11特性都是可用的,但是這卻意味着開發者可在采用dx11的情況下同時針對dx10和dx11硬體進行開發,而不用考慮兩者完全分開對待:因為兩者是相同的,隻不過,一個是另一個的子集功能而已。但是,如果應用某些dx11獨有特效(比如說tessellator或者compute

shader)時,區分代碼路徑是非常必要的,但這完全屬于從向dx11過渡過程中的益處所在。

1,direct3d11渲染管線:

direct3d11管線

看上去,directx 11比directx 10更酷。directx

11的很多提升意味着更高的特性性能,而這些特性很少能在dx10中看到。directx 11和directx 10兩者最大的不同之處在于管線,可以說directx

11的标志着繪圖硬體以及軟體功能革命性一步。directx 11加入了對tessellon(鑲嵌)的支援。tessellon 由外殼着色器(hull shader)、鑲嵌單元(tessellator)以及域着色器(domain

shader)組成。同時還加入了計算着色器(compute shader),計算着色器與dx10中引入的gs不同,它并不是的一部分,cs也是directx

11的重要改進之一,可以很大程度上協助開發人員彌補現實與虛幻之間的差别。

2,tessellon鑲嵌技術:

在此之前,關于directx 11的報道可謂鋪天蓋地。事實上,自r600釋出時,directx

11這個字眼才開始越來越多的出現在網絡上。盡管r6xx和r7xx硬體都具有tessellator單元,但是由于tessellator屬于專有實作方案(proprietary

implementon),是以r6xx和r7xx硬體是不能直接相容directx 11,更何況directx

11采用了極其精密老練的設定過程。事實上,dx11 tessellator單元本身不具備可程式設計性,dx11向tessellator

(ts)輸入或者從中輸出的過程是通過兩個傳統的管線階段完成的:hull shader (hs,外殼着色器)和domain shader

(ds,域着色器)。

tessellator可以把一些較大的圖元(primitive)分成很多更小的圖元,并将這些小圖元組合到一起,形成一種有序的幾何圖形,這種幾何圖形更複雜,當然也更接近現實。這個過程也被稱作細分曲面(subdivision

surfaces)。舉例來說,tessellator可以讓一個立方體,通過處理看起來像是個球形,這樣的話無疑節省了空間。此外,圖形的品質、性能以及可控性也達到了一定的促進。

hull shader負責接收一種由全四邊形(quad mash)計算得到的圖中繼資料(稱作patches),并計算控制點(control

points)的各種變換以及輸入的圖元各個邊的鑲嵌配置(tessellon factors),進而進行鑲嵌。其中control

points用來定義想要得到的圖形(比如說一個曲面或者其他)的圖形參數。如果您經常用photoshop的話,不妨把control points了解為ps的:用平面代替線的貝塞爾曲線功能。hull shader采用control

points來決定如何安排tessellator處理資料,利用tessellator生成大批量的新的圖元,然後将這些圖元以及控制點傳送給domain

shader,domain shader将這些資料計算轉換成3d進行中的頂點,最後gpu生成曲線以及多邊形。

3,的支援:

dx11多線程處理

由于dx11所新增的特性甚至可以應用到dx10硬體中,是以我們對于dx11的快速應用都非常期待和樂觀。dx11特性還包括很重要一點:支援多線程(multi-threading)。沒錯,無論是dx10還是dx11,所有的色彩資訊最終都将被并顯示在電腦顯示屏上(無論是通過線性的方式還是同步的),但是dx11新增了對的支援,得益于此,可以同步創造有用資源或者管理狀态,并從所有專用線程中發送提取指令,這樣做無疑效率更高。dx11的這種可能并不能加速繪圖的子系統(特别是當我們的gpu資源受限時),但是這樣卻可以提升線程啟動遊戲的效率,并且可以利用台式cpu核心數量不斷提高所帶來的潛力。

對于場景中的人像和三個,dx11會啟動四個單獨進行,效率自然要比現在依次進行的做法高很多。

搭載8顆以及16顆邏輯核心的cpu系統已經離我們越來越近,現在遊戲開發商們也該趕緊行動起來了,是時候解決有些遊戲在系統中運作緩慢的問題了。但是開發一款能夠很大程度上促進雙核以上系統普及的遊戲,所能夠獲得的利潤以及需要的付出目前來講還很不樂觀,是以這一程序進展緩慢。對于大多數遊戲而言,充分利用四核心以及超過四核心的多線程優勢還非常困難。盡管如此,通過讓簡單的資源産生并顯示出來,确實為采用平行運算代碼的遊戲提供了走紅的機會,這些遊戲代碼也可以以編碼的方式存在。由于dx11系統中并不是采用一條線程處理所有dx state change以及draw

call(或者說大量同步線程共同負責某一任務)的方式,是以遊戲開發者可以很自然的創造出線程處理某個場景的某一類或者某一群的客體對象,并為将來所有客體對象或者實體為各自的線程處理打下基礎(如果邏輯核心最終達到數百顆之後,這種線程處理方式對于提取硬體性能尤為重要)。

此外,dx10硬體也能夠在運作dx11遊戲時支援,的這一計劃相當令人興奮,不過值得一提的是,amd以及nvidia必須為各自的dx10出相應的驅動軟體才能達到這一效果(因為如果沒有相應的驅動支援的話,dx10硬體即便可以運作dx11遊戲,對于玩家而言并不會看到真正應有的效果)。當然了,我們希望nvidia,特别是amd(因為他同時也是一家可以生産cpu的廠商)能夠對此感興趣。而且,如果a/n這麼做到話,無疑會為遊戲開發商們開發dx11遊戲提供誘因,即便是a/n的dx11硬體還在襁褓之中。

4,計算着色器compute shader:

很多遊戲開發者都對dx11新增的compute shader(通常簡稱為cs)特性啧啧稱贊。cs的這一能夠進行更多的通用目的運算。我們既能在某種可以用來被執行資料的操作中看到這種特性,又能在某種可以用來操作的資料中看到這種特性。

在directx11以及cs的幫助下,遊戲開發者便可以使用更為複雜的,并在這些資料結構中運作更多的通用算法。與其他完整的可程式設計的dx10和dx11管線階段一樣,cs将會共享一套物質資源(也就是着色處理器)。

相應的硬體需要在運作cs代碼時更靈活些,這些cs代碼必須支援随機讀寫、不規則列陣(而不是簡單的流體或者固定大小的2d列陣)、多重輸出、可根據的需要直接調用個别或多線程的應用、32k大小的共享寄存空間和管理系統、原子資料指令集、同步建構以及可執行無序io運算的能力。

與此同時,cs也将會随之失去一些特性。因為單個線程已經不再被看成是一個像素,是以線程将會喪失幾何集合功能。這就意味着,盡管cs程式依然可以利用紋理取樣功能,但是自動三線lod過濾計算将會喪失自動功能(lod必須被指定)。此外,一些并不重要的普通資料的深度剔除(depth

culling)、反鋸齒(anti-aliasing)、alpha混合(alpha blending)以及其他運算不能在一個cs程式中被執行。

除了某些特殊應用的渲染,遊戲開發者可能同時也希望做一些諸如ik(inverse kinemcs,反向運動學)、實體、人工智能以及其他在gpu上執行的傳統的cpu任務之類的運算。用cs算法在gpu上執行這些資料意味着這些資料将會更快的被渲染,而且一些算法可能在gpu上的執行速度更快。如果某些總是産生同樣結果的算法既可以出現在cpu上又可以出現在gpu上的話,諸如ai以及實體等運算甚至可以同時在cpu和gpu上運作(這種運算實際上也可以代替帶寬)。

即便是這些運算代碼在相同的硬體(cpu或者gpu)上運作,ps以及cs代碼的執行也是兩個截然不同的過程,這主要取決于被執行的算法。有趣的是,暴露資料以及柱狀資料經常被用作hdr渲染。用ps代碼計算這些資料的話就需要幾條通道和幾種技巧,以便提取所有像素,進而集中或者平分這些資料。盡管共享資料将會或多或少的減緩處理速度,但是共享資料的方式要比在多通道中計算速度更快,而且這樣可以使cs成為這些算法的理想處理階段。

5,shader model 5.0:

directx 10的shader model 4.0(shader model以下簡稱“sm”)帶來了整數運算和的功能,的sm 4.1加入了對msaa的直接采樣和控制。而directx 11包含的sm 5.0,采用的概念,并且完全可以支援雙精度資料。随着sm 5.0的釋出,也會将hlsl語言更新至最新版本,其中包含了諸如動态着色、動态分支和更多的對象等。總之,面向專業開發人員的sm

5.0,依舊是以降低的難度和複雜為目的。

為了解決shader靈活性與彈性不足的問題,在hlsl5.0中帶來解決之道。hlsl5.0提出shader子程式的概念,即允許程式員将各種小段、簡單或為個别需要而特制的shader程式連結起來,再根據實際需要動态調用,這樣既能夠提高硬體,同時減少“巨型shader”對空間的占用,有效提升性能。

6,改進的紋理壓縮:

bc6紋理壓縮

精細的紋理對視覺效果的增益是顯而易見的。目前的3d遊戲越來越傾向于使用更大、更為精細的紋理,但是過大的紋理嚴重占用顯存和帶寬。由于目前紋理壓縮仍然不支援hdr圖像,是以directx

11提出了更為出色的紋理壓縮算法——bc6和bc7。bc6是為hdr圖像設計的壓縮算法,壓縮比為6∶1;而bc7是為低動态範圍紋理設計的壓縮模式,壓縮比為3∶1。兩種壓縮算法在高壓縮比下畫質損失更少,效果更出色。

這是一幅對hdr檔案的壓縮示意圖,bc6的壓縮相對于原圖來說,僅僅損失了極小的畫質,卻獲得了非常出色的效果。

紋理品質對畫面效果起着至關重要的作用。比如我們運作3d遊戲時,畫面内同樣一個物體,觀察距離較遠時,紋理銳利而清晰,但當你拉近視角,近距離細看時,紋理就非常粗糙了。更不用說在某些遊戲中還有類似、望遠鏡等道具,啟用這些道具後,隻能看到更為粗糙和不真實的紋理。出現這種問題,一方面是紋理損失嚴重,細膩的紋理壓縮存放後,損失大量細節;另一方面是大紋理難以保證保證遊戲運作速度和軟體體積,如果在遊戲中大面積采用分辨率高達4000dpi的紋理貼圖,那麼的運算資源和很快就會告罄。是以,directx

11最快速和最直覺的改變就是再次改進了紋理的壓縮算法,将紋理體積和紋理品質控制在一個相當優秀的範圍之内。

繼續閱讀