Microsoft DirectX 是這樣一組技術:它們旨在使基于Windows 的計算機成為運行和顯示具有豐富多媒體元素(例如全色圖形、視頻、3D 動畫和豐富音頻)的應用程序的理想平臺。DirectX 包括安全和性能更新程序,以及許多涵蓋所有技術的新功能。應用程序可以通過使用DirectX API 來訪問這些新功能。
功用
DirectX加強3D圖形和聲音效果,并提供設計人員一個共同的硬件驅動標準,讓游戲開發(fā)者不必為每一品牌的硬件來寫不同的驅動程序,也降低了用戶安裝及設置硬件的復雜度。
從字面意義上說,Direct就是直接的意思,而后邊的X則代表了很多的意思,從這一點上可以看出DirectX的出現(xiàn)就是為了為眾多軟件提供直接服務的。
舉例來說,以前在DOS下骨灰級玩家玩游戲時,并不是安裝上就可以玩了,他們往往首先要設置聲卡的品牌和型號,然后還要設置IRQ(中斷)、I/O(輸入與輸出)、DMA(存取模式),如果哪項設置的不對,那么游戲聲音就發(fā)不出來。這部分的設置不僅讓玩家傷透腦筋,對游戲開發(fā)者來說就更為頭痛。為了讓游戲能夠在眾多電腦中正確運行,開發(fā)者必須在游戲制作之初,把市面上所有聲卡硬件數(shù)據(jù)都收集過來,然后根據(jù)不同的 API(應用編程接口)來寫不同的驅動程序。這對于游戲制作公司來說,是很難完成的,所以在當時多媒體游戲很少。微軟正是看到了這個問題,為眾廠家推出了一個共同的應用程序接口——DirectX。只要游戲是依照Directx來開發(fā)的,不管顯卡、聲卡型號如何,統(tǒng)統(tǒng)都能玩,而且還能發(fā)揮最佳的效果。當然,前提是使用的顯卡、聲卡的驅動程序必須支持DirectX才行。
組成
DirectX是由很多API組成的,按照性質分類,可以分為四大部分,顯示部分、聲音部分、輸入部分和網(wǎng)絡部分。
顯示部分
顯示部分擔任圖形處理的關鍵,分為DirectDraw(DDraw)和Direct3D(D3D),前者主要負責2D圖像加速。它包括很多方面:我們播放mpg、DVD電影、看圖、玩小游戲等等都是用的DDraw,你可以把它理解成所有劃線的部分都是用的DDraw。后者則主要負責3D效果的顯示,比如CS中的場景和人物、FIFA中的人物等等,都是使用了DirectX的Direct3D。
聲音部分
聲音部分中最主要的API是DirectSound,除了播放聲音和處理混音之外,還加強了3d音效,并提供了錄音功能。我們前面所舉的聲卡兼容的例子,就是利用了DirectSound來解決的。
輸入部分
輸入部分DirectInput可以支持很多的游戲輸入設備,它能夠讓這些設備充分發(fā)揮最佳狀態(tài)和全部功能。除了鍵盤和鼠標之外還可以連接手柄、搖桿、模擬器等。
網(wǎng)絡部分
網(wǎng)絡部分DirectPlay主要就是為了具有網(wǎng)絡功能游戲而開發(fā)的,提供了多種連接方式,TCP/IP,IPX,Modem,串口等等,讓玩家可以用各種連網(wǎng)方式來進行對戰(zhàn),此外也提供網(wǎng)絡對話功能及保密措施。
分類
DirectX并不是一個單純的圖形API,它是由微軟公司開發(fā)的用途廣泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多個組件,它提供了一整套的多媒體接口方案。只是其在3D圖形方面的優(yōu)秀表現(xiàn),讓它的其它方面顯得暗淡無光。DirectX開發(fā)之初是為了彌補Windows 3.1系統(tǒng)對圖形、聲音處理能力的不足,而今已發(fā)展成為對整個多媒體系統(tǒng)的各個方面都有決定性影響的接口。DirectX 是一組低級“應用程序編程接口(API)”,可為 Windows 程序提供高性能的硬件加速多媒體支持。Windows 支持DirectX 8.0,它能增強計算機的多媒體功能。使用DirectX 可訪問顯卡與聲卡的功能,從而使程序可提供逼真的三維(3D) 圖形與令人如醉如癡的音樂與聲音效果。DirectX 使程序能夠輕松確定計算機的硬件性能,然后設置與之匹配的程序參數(shù)。該程序使得多媒體軟件程序能夠在基于Windows 的具有DirectX 兼容硬件與驅動程序的計算機上運行,同時可確保多媒體程序能夠充分利用高性能硬件。DirectX 包含一組API,通過它能訪問高性能硬件的高級功能,如三維圖形加速芯片和聲卡。這些 API 控制低級功能(其中包括二維(2D)圖形加速)、支持輸入設備(如游戲桿、鍵盤和鼠標)并控制著混音及聲音輸出。構成DirectX 的下列組件支持低級功能:Microsoft DirectDraw Microsoft DirectDraw API 支持快速訪問計算機視頻適配器的加速硬件功能。它支持在所有視頻適配器上顯示圖形的標準方法,并且使用加速驅動程序時可以更快更直接地訪問。DirectDraw 為程序(如游戲和二維圖形程序包)以及Windows系統(tǒng)組件(如數(shù)字視頻編解碼器)提供了一種獨立于設備之外的方法來訪問特定顯示設備的功能,而不要求用戶提供設備功能的其它信息。
Microsoft Direct3D Microsoft Direct3D API (Direct3D) :為大多數(shù)新視頻適配器內(nèi)置的3-D 調色功能提供界面。Direct3D 是一種低級的3-D API,它為軟件程序提供一種獨立于設備之外的方法以便與加速器硬件進行有效而強大的通信。Direct3D 包含專用CPU指令集支持,從而可為新型計算機提供進一步加速支持。
Microsoft DirectSound Microsoft DirectSound API :為程序和音頻適配器的混音、聲音播放和聲音捕獲功能之間提供了鏈接。DirectSound 為多媒體軟件程序提供低延遲混合、硬件加速以及直接訪問聲音設備等功能。維護與現(xiàn)有設備驅動程序的兼容性時提供該功能。
Microsoft DirectMusic Microsoft DirectMusic API :是DirectX 的交互式音頻組件。與捕獲和播放數(shù)字聲音樣本的DirectSound API 不同, DirectMusic 處理數(shù)字音頻以及基于消息的音樂數(shù)據(jù),這些數(shù)據(jù)是通過聲卡或其內(nèi)置的軟件合成器轉換成數(shù)字音頻的。DirectMusic API 支持以“樂器數(shù)字界面(MIDI)”格式進行輸入,也支持壓縮與未壓縮的數(shù)字音頻格式。DirectMusic 為軟件開發(fā)人員提供了創(chuàng)建令人陶醉的動態(tài)音軌的能力,以響應軟件環(huán)境中的各種更改,而不只是用戶直接輸入更改。
Microsoft DirectInput Microsoft DirectInput API :為游戲提供高級輸入功能并能處理游戲桿以及包括鼠標、鍵盤和強力反饋游戲控制器在內(nèi)的其它相關設備的輸入。
Microsoft DirectPlay Microsoft DirectPlay API:支持通過調制解調器、Internet 或局域網(wǎng)連接游戲。DirectPlay 簡化了對通信服務的訪問,并提供了一種能夠使游戲彼此通信的方法而不受協(xié)議或聯(lián)機服務的限制。DirectPlay 提供了多種游戲服務,可簡化多媒體播放器游戲的初始化,同時還支持可靠的通信協(xié)議以確保重要游戲數(shù)據(jù)在網(wǎng)絡上不會丟失。DirectPlay 8.0 的新功能即支持通過網(wǎng)絡進行語音通信,從而可大大提高基于多媒體播 放器小組的游戲的娛樂性,同時該組件還通過提供與玩游戲的其他人對話的功能而使團體游戲更具魅力。
Microsoft DirectShow Microsoft DirectShow API:提供了可在您的計算機與Internet 服務器上進行高品質捕獲與回放多媒體文件的功能。 DirectShow 支持各種音頻與視頻格式,包括“高級流式格式(ASF)”、“音頻-視頻交錯 (AVI)”、“數(shù)字視頻(DV)”、“動畫專家組 (MPEG)”、“MPEG 音頻層3 (MP3)”、“Windows 媒體音頻/視頻(WMA/WMV)”以及 WAV 文件。DirectShow 還具有視頻捕獲、DVD 回放、視頻編輯與混合、硬件加速視頻解碼以及調諧廣播模擬與數(shù)字電視信號等功能。
掌握
如何來學習它呢?
Direct身為一種運算規(guī)則,其自身的運行環(huán)境必然是有嚴格規(guī)定的,也就是說Direct是獨為Windows服務的一種規(guī)則。那它的表達環(huán)境就是在英文中。而非中。所以要想理解Direct并且靈活運用,而并非僅僅理解這句話的構成,而是要徹底剖析英文的語言規(guī)律,也就是Windows的運行原理,Windows自身輸入輸出的方式。在這個基礎上要理解Direct這個規(guī)則自然是水到渠成。
那是不是說就不用去研究Direct了?
并非如此,但是在了解根本原理的基礎上去觀察Direct代碼上的結構會很輕松。這里要說的就是Direct自身很強大但學習起來并非很難,難在于原理的研究,不僅要看智商,更主要還要有耐心,幾千頁的原理并不是一年半載能看完的。研究完這些,至于語法上的規(guī)則那就不值一提了。
Direct最好從基礎原理開始研究,然而原理卻如此之復雜,難道Direct沒法去學了?
這句話也不對。當有一個新事物來到你面前時,你要從兩個方面開始研究,一個是表面現(xiàn)象,也就是Direct的語言的規(guī)則與使用習慣、方法等。另一方面就是從已知條件中去推導出這個現(xiàn)象。意思是要從原理和代碼兩方面入手,從代碼入手時記住了代碼的習慣。緊接著了解這一點原理幫助自己去記憶,也能很快理解是怎么回事。也就是說我們雖然不贊同背代碼,但也不能一點不記,我們雖然很贊同從原理入手,但從實際考慮, 還是希望各位能量力而行。
整體來講學Direct還是要有一定編程基礎的,不建議一上來就學Direct,Direct畢竟是一個比較高深的東西。還是建議您對C++、Dos等一些語言比較精通的時候再回頭研究Direct。
當然也不是不可能,例如3Ds Max就是基于Direct的。做個模型、圖像、動畫還是可以的。當然也要看你從什么角度去學習了。
歷史
DirectX 1.0
第一代的DirectX很不成功,推出時眾多的硬件均不支持,當時基本都采用專業(yè)圖形API-OpenGL,缺乏硬件的支持成了其流行的最大障礙。
DirectX 1.0版本是第一個可以直接對硬件信息進行讀取的程序。它提供了更為直接的讀取圖形硬件的性能(比如:顯示卡上的塊移動功能)以及基本的聲音和輸入設備功能(函數(shù)),使開發(fā)的游戲能實現(xiàn)對二維(2D)圖像進行加速。第一代DirectX不包括所有的3D功能,還處于一個初級階段。
DirectX 2.0
DirectX 2.0在二維圖形方面做了些改進,增加了一些動態(tài)效果,采用了Direct 3D的技術。這樣DirectX 2.0與DirectX 1.0有了相當大的不同。在DirectX 2.0中,采用了“平滑模擬和RGB模擬”兩種模擬方式對三維(3D)圖像進行加速計算的。DirectX 2.0同時也采用了更加友好的用戶設置程序并更正了應用程序接口的許多問題。從DirectX 2.0開始,整個DirectX的設計架構雛形就已基本完成。
DirectX 3.0
DirectX 3.0的推出是在1997年最后一個版本的Windows95發(fā)布后不久,此時3D游戲開始深入人心,DirectX也逐漸得到軟硬件廠商的認可。97年時應用程序接口標準共有三個,分別是專業(yè)的OpenGL接口,微軟的DirectX D接口和3DFX公司的Glide接口。而那時的3DFX公司是最為強大的顯卡制造商,它的Glide接口自然也受到最廣泛的應用,但隨著3DFX公司的沒落,Voodoo顯卡的衰敗,Glide接口才逐漸消失了。
DirectX 3.0是DirectX 2.0的簡單升級版,它對DirectX 2.0的改動并不多。包括對DirectSound(針對3D聲音功能)和DirectPlay(針對游戲/網(wǎng)絡)的一些修改和升級。DirectX 3.0集成了較簡單的3D效果,還不是很成熟。
DirectX 5.0
微軟公司并沒有推出DirectX 4.0,而是直接推出了DirectX 5.0。此版本對Direct3D做出了很大的改動,加入了霧化效果、Alpha混合等3D特效,使3D游戲中的空間感和真實感得以增強,還加入了S3的紋理壓縮技術。
同時,DirectX 5.0在其它各組件方面也有加強,在聲卡、游戲控制器方面均做了改進,支持了更多的設備。因此,DirectX發(fā)展到DirectX 5.0才真正走向了成熟。此時的DirectX性能完全不遜色于其它3D API,而且大有后來居上之勢。
DirectX 6.0
DirectX 6.0推出時,其最大的競爭對手之一Glide,已逐步走向了沒落,而DirectX則得到了大多數(shù)廠商的認可。DirectX 6.0中加入了雙線性過濾、三線性過濾等優(yōu)化3D圖像質量的技術,游戲中的3D技術逐漸走入成熟階段。
DirectX 7.0
DirectX 7.0最大的特色就是支持T&L,中文名稱是“坐標轉換和光源”。3D游戲中的任何一個物體都有一個坐標,當此物體運動時,它的坐標發(fā)生變 化,這指的就是坐標轉換;3D游戲中除了場景+物體還需要燈光,沒有燈光就沒有3D物體的表現(xiàn),無論是實時3D游戲還是3D影像渲染,加上燈光的3D渲染是最消耗資源的。雖然OpenGL中已有相關技術,但此前從未在民用級硬件中出現(xiàn)。
在T&L問世之前,位置轉換和燈光都需要CPU來計算,CPU速度越快,游戲表現(xiàn)越流暢。使用了T&L功能后,這兩種效果的計算用顯示卡的GPU來計算,這樣就可以把CPU從繁忙的勞動中解脫出來。換句話說,擁有T&L顯示卡,使用DirectX 7.0,即使沒有高速的CPU,同樣能流暢的跑3D游戲。
DirectX 8.0
DirectX 8.0的推出引發(fā)了一場顯卡革命,它首次引入了“像素渲染”概念,同時具備像素渲染引擎(Pixel Shader)與頂點渲染引擎(Vertex Shader),反映在特效上就是動態(tài)光影效果。同硬件T&L僅僅實現(xiàn)的固定光影轉換相比,VS和PS單元的靈活性更大,它使GPU真正成為了可編程的處理器。這意味著程序員可通過它們實現(xiàn)3D場景構建的難度大大降低。通過VS和PS的渲染,可以很容易的營造出真實的水面動態(tài)波紋光影效果。此時DirectX的權威地位終于建成。
DirectX 9.0
2002年底,微軟發(fā)布DirectX9.0。DirectX 9中PS單元的渲染精度已達到浮點精度,傳統(tǒng)的硬件T&L單元也被取消。全新的VertexShader(頂點著色引擎)編程將比以前復雜得多,新的VertexShader標準增加了流程控制,更多的常量,每個程序的著色指令增加到了1024條。
PS 2.0具備完全可編程的架構,能對紋理效果即時演算、動態(tài)紋理貼圖,還不占用顯存,理論上對材質貼圖的分辨率的精度提高無限多;另外PS1.4只能支持28個硬件指令,同時操作6個材質,而PS2.0卻可以支持160個硬件指令,同時操作16個材質數(shù)量,新的高精度浮點數(shù)據(jù)規(guī)格可以使用多重紋理貼圖,可操作的指令數(shù)可以任意長,電影級別的顯示效果輕而易舉的實現(xiàn)。
VS 2.0通過增加Vertex程序的靈活性,顯著的提高了老版本(DirectX8)的VS性能,新的控制指令,可以用通用的程序代替以前專用的單獨著色程序,效率提高許多倍;增加循環(huán)操作指令,減少工作時間,提高處理效率;擴展著色指令個數(shù),從128個提升到256個。
增加對浮點數(shù)據(jù)的處理功能,以前只能對整數(shù)進行處理,這樣提高渲染精度,使最終處理的色彩格式達到電影級別。突破了以前限制PC圖形圖象質量在數(shù)學上的精度障礙,它的每條渲染流水線都升級為128位浮點顏色,讓游戲程序設計師們更容易更輕松的創(chuàng)造出更漂亮的效果,讓程序員編程更容易。
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兩個著色語言規(guī)范)的全面支持。舉例來說,DirectX 9.0b的Shader Model 2.0所支持的Vertex Shader最大指令數(shù)僅為256個,Pixel Shader最大指令數(shù)更是只有96個。而在最新的Shader Model 3.0中,Vertex Shader和Pixel Shader的最大指令數(shù)都大幅上升至65535個,全新的動態(tài)程序流控制、位移貼圖、多渲染目標(MRT)、次表面散射 Subsurface scattering、柔和陰影Soft shadows、環(huán)境和地面陰影 Environmental and ground shadows、全局照明(Global illumination)等新技術特性,使得GeForce 6、GeForce 7系列以及Radeon X1000系列立刻為新一代游戲以及具備無比真實感、幻想般的復雜的數(shù)字世界和逼真的角色在影視品質的環(huán)境中活動提供強大動力。
因此DirectX 9.0c和Shader Model 3.0標準的推出,可以說是DirectX發(fā)展歷程中的重要轉折點。在DirectX 9.0c中,Shader Model 3.0除了取消指令數(shù)限制和加入位移貼圖等新特性之外,更多的特性都是在解決游戲的執(zhí)行效率和品質上下功夫,Shader Model 3.0誕生之后,人們對待游戲的態(tài)度也開始從過去單純地追求速度,轉變到游戲畫質和運行速度兩者兼顧。因此Shader Model 3.0對游戲產(chǎn)業(yè)的影響可謂深遠。
DirectX 10.0
包含在Windows Vista操作系統(tǒng)中,無法單獨下載使用。
新的DirectX使你獲得更好的圖像顯示質量,使多人游戲具可伸縮性,以及包括更棒的音頻效果。它強化了針對DirectDraw和Direct3D的接口,簡化了應用擴展,提升性能;改善了圖形創(chuàng)作工具,更易于做出最佳的3-D角色和環(huán)境;點光源式光影和像素式光影使圖象更逼真;強化了DirectSound和DirectMusic,簡化了其應用擴展;DLS2音頻合成功能提高了樂器音頻的真實感;DirectInput的設備影射功能令對設備的支持更簡單;DirectPlay使多人游戲的性能和可擴展性得到了提高; DirectPlay提供了IP聲音通訊;DirectShow的應用編程接口提供了音頻/視頻的實時合成和即時編輯;DirectShow支持Windows媒體音頻和視頻(WMA和WMV)的讀寫; Microsoft TV技術可以支持數(shù)字電視節(jié)目。當然,最重要的是一些新游戲需要它。DirectX Redist通常每兩個月更新一次,包含了DirectX Runtimes的所有更新,可以替代此前發(fā)布的舊版本,適合Windows XP、Server 2003、Vista等操作系統(tǒng),不支持Windows 9x/2000。一般最新的3D游戲等應用程序都需要新的DirectX接口,因此強烈推薦更新。
Vista DX10用戶也同樣需要。
顯卡所支持的DirectX版本已成為評價顯卡性能的標準,從顯卡支持什么版本的DirectX,用戶就可以分辨出顯卡的性能高低,從而選擇出適合于自己的顯卡產(chǎn)品。
DirectX 10.1
正如以前的DX版本一樣,DX10.1也是DX10的超集,因此它將支持DirectX 10的所有功能,同時它將支持更多的功能,提供更高的性能。
DX10.1的一個主要提高是改善的shader資源存取功能,在多樣本AA時,在讀取樣本時有更好的控制能力。除此之外,DX10.1還將可以創(chuàng)建定制的下行采樣濾波器。
DX10.1還將有更新的浮點混合功能,對于渲染目標更有針對性,對于渲染目標混合將有新的格式,渲染目標可以實現(xiàn)獨立的各自混合。陰影功能一直是游戲的重要特效,Direct3D 10.1 的陰影濾波功能也將有所提高,從而可望進一步提高畫質。
在性能方面,DirectX 10.1將支持多核系統(tǒng)有更高的性能。而在渲染,反射和散射時,Direct3D 10.1將減少對API的調用次數(shù),從而將獲得不錯的性能提升。
其他方面,DX10.1的提高也不少,包括32bit浮點濾波,可以提高渲染精確度,改善HDR渲染的畫質。完全的抗鋸齒應用程序控制也將是DX10.1的亮點,應用程序將可以控制多重采樣和超級采樣的使用,并選擇在特定場景出現(xiàn)的采樣模板。DX10.1將至少需要單像素四采樣。
DX10.1還將引入更新的驅動模型,WDDM 2.1。與DX10的WDDM2.0相比,2.1有一些顯著的提高。
首先是更多的內(nèi)容轉換功能,WDDM2.0支持處理一個命令或三角形后進行內(nèi)容轉換,而WDDM2.1則可以讓內(nèi)容轉換即時進行。由于GPU同時要并行處理多個線程,因此內(nèi)容轉換的即時性不僅可以保證轉換質量,還可以提升GPU效率,減少等待時間。另外,由于WDDM 2.1支持基于過程的虛擬內(nèi)存分配,處理GPU和驅動頁面錯誤的方式也更為成熟。
微軟預計將在兩周之內(nèi)(2008年7月中旬)宣布新一代API:DirectX 11。消息來源指出,微軟將在7月22日舉辦的Gamefest 2008上宣布新一代API,此前我們得到有關DirectX 11的最新消息是NVIDIA將在八月末的“NVISION 08”會議上講解DirectX 11。
由微軟舉辦的Gamefest 2008大會將于7月22-23日在西雅圖召開,Gamefest 2008大會是微軟每年一度的游戲技術探討盛會,所以有關下一代游戲技術接口API的消息自然也是少不了的話題。
DirectX 11引入最大新技術特征無疑是Tessellation/Displacement,我們還聽說了多線程渲染、Compute Shaders也將是DirectX 11中重要環(huán)節(jié),另外據(jù)說DirectX 11還將引入Shader Model 5.0,具體細節(jié)信息尚不明確,Ray Tracing(光線跟蹤)與Rasterization(光柵化)技術的支持也還沒有提及。
DirectX 11
2009年1月9日星期五,微軟將面向公眾發(fā)布Windows 7客戶端Beta 1測試版。而此前一天,即1月8日,微軟將率先發(fā)布Windows 7服務器版本的Beta 1測試版。
在微軟發(fā)布的Windows 7Beta版本中,一些已經(jīng)安裝使用的用戶的發(fā)現(xiàn)了DirectX 11已經(jīng)包含其中了。DirectX 11作為3D圖形接口,不僅支持未來的DX11硬件,還向下兼容當前的DirectX 10和10.1硬件。DirectX 11增加了新的計算shader技術,可以允許GPU從事更多的通用計算工作,而不僅僅是3D運算,這可以鼓勵開發(fā)人員更好地將GPU作為并行處理器使用。
在微軟發(fā)布的Windows 7 Beta版本中,已包含DirectX 11
另外,DirectX 11還支持tessellation鑲嵌化技術,這有助于開發(fā)人員創(chuàng)建更為細膩流暢的模型,實現(xiàn)高質量實時渲染和預渲染場景。多線程是DirectX 11的另外一大亮點,DX11可以更好地利用多線程資源,從而使游戲更有效地利用多核處理器。
DirectX 11.1
微軟2011年10月15日公布了一份白皮書“Windows開發(fā)者預覽版中的Windows驅動模型增強”,洋洋灑灑地深入介紹了Windows 8在圖形技術方面的改進。根據(jù)白皮書,Windows 8將會支持新版顯示驅動模型WDDM1.2,高于Windows 7 WDDM 1.1,但同時會放棄對服務器系統(tǒng)中XDDM的支持,全部轉向WDDM。
DirectX方面最關鍵的是當然引入Direct3D 11.1,同時還會有平滑旋轉、立體3D、D3D11 Video等功能技術。微軟稱,即使是低端硬件,只要能夠利用好DirectX的優(yōu)勢,也能夠在Windows 8上來更好的性能。
DirectX 11.2
2013年6月28日,微軟發(fā)布Directx11.2(Alpha版),其中一個重要特性是允許游戲使用系統(tǒng)內(nèi)存和顯存儲存紋理數(shù)據(jù),微軟的Antoine Leblond在BUILD大會上演示了主要利用內(nèi)存而不是顯存去儲存9GB紋理數(shù)據(jù)。這項特性對于未來的高清游戲具有重要意義。然而一個問題是,DirectX 11.2不支持Windows 8及之前操作系統(tǒng),只支持Windows 8.1和下一代主機Xbox One。
DirectX 12
2014年3月21日,微軟正式發(fā)布了新一代的API DirectX 12[1] 。雖然算不上全新設計,雖然細節(jié)公布得還不是特別多,但至少不是Mantle的直接翻版,還是有微軟與合作伙伴設計的不少新東西的。DX12最重要的變化就是更底層API[2] ,這一點很像AMD Mantle,在硬件抽象層上走得比以往更深入,能夠同時減輕CPU、GPU的過載(overload)。具體包括:應用可追蹤GPU流水線、控制資源狀態(tài)轉換(比如從渲染目標到紋理)、控制資源重命名,更少的API和驅動跟蹤,可預判屬性,等等。
另外,DX12大大提高了多線程效率,可以充分發(fā)揮多線程硬件的潛力。DX11在這方面受CPU性能的嚴重制約,主要是因為不能有效利用多核心。微軟宣稱,微軟對多核心CPU的利用幾乎是完美線性增長的,也就是說四核心能接近單核心的四倍。
此外還有渲染流水線、渲染特性、資源管理、命令列表與綁定、描述符跳躍等等方面的改進,因為主要是關于開發(fā)的,也比較深晦,這里就先不說太多了。
NVIDIA確認說,開普勒、費米、麥克斯韋架構全部都支持DX12,也就是GeForce 200系列以來的型號都可以,DX11的都行。
AMD則確認,GCN架構的所有顯卡均支持DX12,也就是Radeon HD 7000、Radeon R200系列[3] 。
Intel確認稱,第四代Haswell可以支持DX12,但其實僅限最高端的兩個型號:GT3 Iris 5100、GT3e Iris Pro 5200。
打開方法
有時候重裝系統(tǒng)后發(fā)現(xiàn)很多3D游戲都不能運行,只有一些傳統(tǒng)2D平面游戲還能勉強運行,而且速度很慢。這并不是因為Windows 2003不支持3D游戲,而是系統(tǒng)設置的問題。
解決方法:首先請確保以正確的方式安裝好顯卡驅動,然后就要打開DirectX加速。DirectX加速是3D游戲最基本的需要,為了使Windows 更為單一地面向服務器平臺應用,微軟默認將其加速功能關閉。即便是在安裝了最新的DirectX 10.0之后也不會自動打開加速功能,而必須手動設置。在“開始”→“運行”對話框中輸入“dxdiag”以打開DirectX診斷工具。隨后在顯示一欄中將DirectDraw、Direct3D、AGP紋理加速功能啟用。如此一來,Windows Server 2003便能運行各種3D游戲。除此以外,Windows Server 2003還默認關閉了硬件加速,可以在顯示屬性的高級菜單中將其設置為完全加速。
DirectX 11.1
DirectX 11之后是下一代的DirectX 12還是改進版的DirectX 11.1呢?英特爾的一份產(chǎn)品路線路泄露了天機,緊隨DirectX 11就是DirectX 11.1。
據(jù)國外媒體SoftPedia曝光的英特爾產(chǎn)品路線圖顯示,Sandy Bridge整合的是英特爾第6代圖形核心,支持DirectX 10.1和OpenGL 3.0;到了Ivy Bridge則進化至第7代,可支持DirectX 11和OpenGL 3.1;到了2013年,同為22nm但架構再度進化的Haswell處理器誕生,其將整合增強版的第7代英特爾圖形核心,可支持OpenGL 3.2和DirectX 11.1,而推薦使用的操作系統(tǒng)則是64位的Windows 8。
Haswell將會采用Tri-Gate 22nm制造工藝技術,并且采用可調節(jié)的TDP技術,以在性能和節(jié)能方面,獲得更好平衡。同時Haswell還將會采用新的AVX2指令集,尚不知道具體發(fā)布時間,不過從已了解藍圖來看,服務器Haswell產(chǎn)品將會在2014年Q1發(fā)布。