七年磨一劍!DX11之ATI獨門絕技全解析
2009年6月3日,ComputeX臺北電腦展第二天,AMD放出了本屆展會的重磅炸彈——業(yè)界首顆采用40nm工藝制造的DirectX11規(guī)格GPU,代號為“Evergreen”,也就是傳說中的RV870核心。而且還現(xiàn)場展示了運行中的RV870顯卡及首個DX11演示Demo,DX11距離最終用戶不遠了!
AMD高級副總裁Rick Bergman與臺積電先進技術(shù)市場部高級主管John Wei聯(lián)手拿出的展示用晶圓被密封在一個紀念相框里,里邊的文字是“謹以此紀念AMD與臺積電合作推出首個AMD DX11 40nm GPU硅晶圓”,下有臺積電CEO兼總裁蔡力行的簽名,時間是2009年6月。
此前AMD已經(jīng)正式發(fā)布了首顆40nm GPU RV740,由此證明臺積電40nm工藝已開始量產(chǎn)。此次AMD公開展示RV870的晶圓,這就意味著新一代DX11顯卡已經(jīng)設(shè)計完成,只待時機成熟即可正式發(fā)布。
那么在DX11時代即將來臨之際,我們先來深入研究DX11可以帶給我們什么,會有DX9C過渡到DX10那樣革命性的進步嗎?未來的3D世界能精彩到什么程度?
據(jù)可靠消息表明,AMD的DX11顯卡、微軟的DirectX 11 API和Windows 7操作系統(tǒng)將會在同一時間發(fā)布,也就是2009年10月至11月間。事實上目前釋放的Windows 7測試版已經(jīng)內(nèi)置了對DX11的支持:
我們知道,為了強行推廣Vista系統(tǒng),微軟在Vista當中捆綁了DX10 API,并限制XP無法支持DX10,于是為了玩最新的DX10游戲,玩家們被迫升級Vista。此次微軟在Win7當中捆綁DX11,會不會也限制Vista不支持DX11呢?
答案是否定的,由于Win7和Vista使用了相同的驅(qū)動程序模型,因此Vista也能升級支持DX11。另外,Win7無論速度、效率、功能都大大優(yōu)于Vista,Win7在測試期間所獲得的好評遠超當年Vista的表現(xiàn),因此微軟沒必要使用下三濫的手段強迫玩家升級Win7,相信會有不少人第一時間“自愿”升級至Win7。
事實上,通過對本屆ComputeX展會的報道來看,泡泡網(wǎng)友對Windows 7操作系統(tǒng)的期待程度甚至還要高于AMD的DX11顯卡??磥鞼in7和DX11又將掀起一番軟硬件升級熱潮!
現(xiàn)在我們就來對DirectX 11進行詳細分析,嚴格來講DX11并不是一套全新的API,DX11是DX10的一個超集,就如同Win7之與Vista。簡單的說DX11就是基于DX10開發(fā)的技術(shù),主要對DX10的功能一些改進和擴展,并進一步提高GPU的執(zhí)行效率(聽起來是不是跟Win7&Vista的關(guān)系很像),當然這個改進要比DX10.1多很多。
DX11能夠同時兼容DX10的軟硬件,而且不需要像DX9過度DX10那樣對驅(qū)動程序底層架構(gòu)做大幅更改。事實上目前Win7和Vista的很多驅(qū)動都能互相通用,AMD和NVIDIA也先后發(fā)布了Win7/Vista一體化的顯卡驅(qū)動。
那么DX11相對于DX10有何重大改進呢?DX11最關(guān)鍵的特性有以下五點:
1. Compute Shaders:計算著色器
2. New Instruction Set:新指令集
3. HDR Compression:高動態(tài)范圍紋理壓縮
4. Multi-Threading:多線程
5. Tessellation:拆嵌式細分曲面技術(shù)
其中,Tessellation技術(shù)相信很多人都有印象,沒錯,它就是ATI第一代DX10核心R600(HD2900XT)中的一個特殊模塊,從HD2000系列開始、到HD3000再到如今的HD4000系列,ATI的每一款DX10顯卡都支持這項技術(shù),雖然還沒有任何一款游戲能夠支持該技術(shù),但ATI依然孜孜不倦的對它提供支持,因為ATI堅信——是金子總會發(fā)光的!
終于在DX11時代,微軟將Tessellation作為一項重要標準納入規(guī)范之中,這項被埋沒多年的技術(shù)得以重見天日。那么Tessellation究竟是何方神圣,讓ATI技術(shù)人員如此執(zhí)著,微軟到底是“禁不住軟磨硬泡”、“勉為其難”的吸納之,還是為其先進的特性所傾倒,欣然接納之?故事還得從七年前的Radeon 8500系列談起……
● 2002年R200:Tessellation的鼻祖N-Patch及TruForm
話說2001年7月的時候,微軟即將推出DirectX最新的8.1版本,所以就在Meltdown2001會議上把ATI、NVIDIA等一干圖形技術(shù)公司叫來開會,一起商定DX8.1的一些技術(shù)細節(jié)。這次會議可以說是圖形圖像界的“華山論劍”,不光有主辦商及核心廠商可以參加,媒體甚至也可以買票入場,票價是650美元,當時著名的八卦網(wǎng)站TheInquirer就參加了這次會議(要不是它我們就不知道這段典故了)。據(jù)他們報道,由于技術(shù)細節(jié)方面的爭執(zhí)比較大,NV和微軟的關(guān)系搞得有點僵,而且NV拒簽當時正在開發(fā)的DX9協(xié)議。
2001年7月 西雅圖 ATI無疑成為了Meltdown2001的主角
N-Patch技術(shù)的原理是這樣的:GPU在讀取了一個模型之后,判斷每個三角形三個頂點的法線向量,再根據(jù)這三個向量算出插入的頂點的位置。如此一來就能將一個簡單的、有棱有角模型通過“差值”的算法實時處理成為復雜的、圓滑的模型,在當時GPU運算能力極為有限的情況下,N-Patch技術(shù)可以大幅提升3D模型的細節(jié)和顯示效果。
NPatch技術(shù)非常適合于將一個模型變得“圓滑”。因此非常適合于一些有很多曲面的模型。因為對于曲面的表現(xiàn),通常的表現(xiàn)方法只是盡量多的使用內(nèi)割多邊形或者外切多邊形來模擬曲面的效果。N-Patch技術(shù)的巧妙之處就在于算法簡單,只要進行多次遞歸運算,就能將一個面做成一個高次曲面,N-Patch這個詞的本意也就是一個N次曲面。
次年(2002),在ATI的R200(Radeon 8500)顯示芯片中,就率先采用了N-Patch技術(shù),在ATI自己的官方介紹中稱之為“TruForm”。
● TruForm技術(shù)的BUG:
TruForm的好處是效率會比位移貼圖高,以極低的資源消耗實現(xiàn)較好的顯示效果。不過呢,這個技術(shù)比較適合于海豚、賽車等表面為曲面的模型上,而如果這個技術(shù)應用在坦克等不需要做曲面化的模型上的時候,效果就會變得相當?shù)幕?/P>
雖然TRUFORM技術(shù)非常具有創(chuàng)意,而且還能給大家?guī)硪庀蟛坏降目鞓罚沁@一技術(shù)的應用情況并沒有像微軟和ATI所期望的那樣。正是因為產(chǎn)生了這一滑稽的BUG,TruForm在整個DX9a/b/c時代便銷聲匿跡了。<
● 2005年Xenos:Tessellation登陸XBOX360主機
由于考慮不周導致技術(shù)不成熟的原因,ATI在DX9時代不再整合TruForm功能。但是,微軟和ATI都沒有放棄這一極具創(chuàng)意的技術(shù),N-Patch/TruForm的設(shè)計初衷就是節(jié)約GPU資源,通過簡單高效的手段讓低模3D游戲搖身變?yōu)楦咂焚|(zhì)模型。
到了2005年,在微軟與ATI的合作結(jié)晶——專為XBOX360設(shè)計的圖形芯片Xenos當中,經(jīng)過改進的N-Patch/TruForm技術(shù)重出江湖,這次它有了一個很響亮的名稱——Tessellation,直譯為“拆嵌”意譯為“細分曲面”。
此次微軟和ATI吸取了教訓,Tessellation不再像TruForm那樣自作聰明的對所有模型強制進行曲面細分化,而是按照不同游戲中特定模型的需求有針對性的處理。因此以往的BUG不復存在了,但需要游戲本身提供支持才能生效。
應用了Tessellation技術(shù)的XBOX360游戲畫面
通過為數(shù)不多的支持Tessellation技術(shù)的XBOX360游戲來看,細分曲面技術(shù)讓模型細節(jié)變得極為豐富,事實上這些游戲?qū)iT挑選了一些動物模型讓Tessellation處理——這顯然是它的拿手絕活!
除了大幅提升模型細節(jié)和畫質(zhì)外,Tessellation最吸引程序員的地方就是:他們無需手動設(shè)計上百萬個三角形的復雜模型,只需簡單勾繪一個輪廓,剩下的就可以交給Tessellation技術(shù)自動拆嵌,大大提高開發(fā)效率;而且簡單的模型在GPU處理時也能大幅節(jié)約顯存開銷,同時大幅提升渲染速度!
不過,Tessellation技術(shù)依然具有局限性,而且很多游戲開發(fā)商都在跨平臺開發(fā)游戲,對于這項只有XBOX360支持、PS3和PC顯卡都不支持的技術(shù)不感興趣,因此支持Tessellation的XBOX360游戲屈指可數(shù)。
Xenos這顆基于R580核心的特殊DX9C GPU,除了首次支持Tessellation和當時先進的HDR+AA技術(shù)外,還第一次采用了統(tǒng)一渲染架構(gòu),這些技術(shù)都被ATI改進并沿用到了DX10時代。
● 2007年R600:Tessellation臥薪嘗膽
現(xiàn)在看來,R600核心是一款非常失敗的產(chǎn)品,功耗高、發(fā)熱大、性能低、AA效能差,但是當R600(320SP)的架構(gòu)擴充至RV770(800SP)的規(guī)模時,就沒人敢輕易對這套體系架構(gòu)評頭論足了。事實上R600的失敗在于冒險采用80nm工藝、512Bit環(huán)形總線、以及Shader AA,而其核心架構(gòu)的運算能力并不輸給競爭對手,因而一直被沿用至RV670、RV770還有未來的RV870身上。
R600除了完全按照DX10和統(tǒng)一渲染架構(gòu)設(shè)計外,還整合了一個特殊的模塊:Programmable Tessellator,可編程拆嵌器。由于這個可有可無的模塊占用晶體管并不多,因此AMD之后的全系列DX10 GPU中都集成了可編程拆嵌器。
這個可編程拆嵌器可要比XBOX360高明很多,R600核心能夠根據(jù)3D模型中已經(jīng)有的頂點,根據(jù)不同的需求,按照不同的規(guī)則,進行插值,將一個多邊形拆分成為多個多邊形。而這個過程都是可以由編程來控制的,這樣就很好的解決了效率和效果的矛盾。
現(xiàn)在我們就更容易理解Tessellation技術(shù)是怎么回事了,它是一種能夠在圖形芯片內(nèi)部自動創(chuàng)造頂點,使模型細化,從而獲得更好畫面效果的技術(shù)。Tessellation能自動創(chuàng)造出數(shù)百倍與原始模型的頂點,這些不是虛擬的頂點,而是實實在在的頂點,效果是等同于建模的時候直接設(shè)計出來的。
R600的Tessellation技術(shù)支持多種決定插值頂點位置的方法來創(chuàng)造各種曲面:
1. N-Patch曲面,就是和TRUFORM技術(shù)一樣,根據(jù)基礎(chǔ)三角形頂點的法線決定曲面。
2. 貝塞爾曲面,根據(jù)貝塞爾曲線的公式計算頂點的位置。
3. B-Spline, NURBs, NUBs 曲線(這三種曲線均為CAD領(lǐng)域常用曲線,在Maya中均有相應工具可以生成)
4. 通過遞歸算法接近Catmull-Clark極限曲面。
有了多種無比強大的曲面生成技術(shù),在加上可編程的設(shè)計,程序員在開發(fā)游戲之初就能根據(jù)需要制定相關(guān)模型采用何種細分法則,從而避免出現(xiàn)變形和失真的問題。
而且,Tessellation過程被安排在了頂點著色之前,這就意味著Tessellation所創(chuàng)造出來的頂點全都可以參與Vertex Shader的處理和運算。這些頂點所帶來的所有細節(jié),將具備所有特效。
經(jīng)過Tessellation智能拆嵌之后,模型精細了很多
拆嵌后再輔以各種陰影及著色效果,從而以很小的代價達到CG級別畫面
在R600發(fā)布時,AMD拿出了一款CG級別實時渲染的Demo,其中被積雪所覆蓋的山體就是由Tessellation生成的。以往的演示Demo都是片面注重對主角的修飾,而背景往往只使用簡單的紋理貼圖,而R600的這個Demo其背景和環(huán)境的精細程度甚至超越了主角Ruby。
HD3000/HD4000繼續(xù)支持Tessellation
可惜,時至今日,只有ATI的官方Demo使用了自家的Tessellation技術(shù),還沒有任何一款PC游戲支持這項被孤立于DX10之外的非主流技術(shù),看來僅靠AMD還是孤掌難鳴的。
● 2009年RV870:Tessellation被正式納入DX11,修成正果
在AMD的不懈努力下,雖然PC游戲開發(fā)商依舊無動于衷,但這個小小的可編程模塊卻受到了一些好萊塢CG影片設(shè)計公司的青睞,因為CG動畫對模型細節(jié)的精細程度要求十分苛刻,而Tessellation技術(shù)能夠以很小的資源開銷讓模型細節(jié)豐富百倍,這種近乎免費的畫質(zhì)提升無疑是非常誘人的。
Tessellation能夠同時加強地形和人物皮膚細節(jié)
此后AMD將重心轉(zhuǎn)移至CG領(lǐng)域,并提出了Cinema 2.0的概念,為中小型圖形公司提供技術(shù)支持,靈活應用Tessellation技術(shù)來高效的創(chuàng)作視頻短片及廣告特效。因此在DX10時代,雖然ATI全線顯卡均支持Tessellation技術(shù),但AMD卻沒有像DX10.1那樣做大張旗鼓的宣傳。
等到DX11正式接納Tessellation時,AMD已經(jīng)是第六代技術(shù)了,真不容易
經(jīng)過多年的發(fā)展,Tessellation已今非昔比,這款歷經(jīng)磨難、飽受屈辱、在逆境中茁壯成長的技術(shù)現(xiàn)在更加靈活、高效、實用,微軟認為時機再次成熟,于是被名正言順的納入DX11的范疇。
消息一出,立馬就有回應?!稇?zhàn)地:叛逆連隊2》第一個跳出來聲援,號稱全球首款DX11游戲,該游戲使用了新版Frostbite Engine,而ATI R600 Demo使用的正是該引擎:
讓人印象深刻的雪山背景,這就是AMD與DICE合作開發(fā)的Ruby Demo
《戰(zhàn)地:叛逆連隊2》豐富的地形及環(huán)境細節(jié)
據(jù)DICE渲染架構(gòu)師Johan Anderson稱,從DX10到DX11的實際導入過程僅僅花費了三個小時,其中在代碼里搜索和替換相關(guān)部分最耗時間?,F(xiàn)在我們就不難理解戰(zhàn)地引擎升級支持DX11為何如此神速了,兩年前的戰(zhàn)地引擎就能支持Tessellation技術(shù),現(xiàn)在只不過是查找復制粘貼重新找回被閑置的代碼而已,那還不是輕車熟路?
戰(zhàn)地引擎的使用者不在少數(shù),看來Tessellation技術(shù)以及DX11很快就將進入實際應用階段,臥薪嘗膽的Tessellation終于重見天日!
如下的一部分截圖來自支持Tessellation的Frostbite Engine技術(shù)Demo,不清楚究竟是哪款游戲,又或者是引擎專門開發(fā)作為演示的。我們可以從中一窺該引擎的能力,尤其是對于自然環(huán)境的3D刻畫性能。
再來看看《戰(zhàn)地:叛逆連隊2》官方公布的游戲截圖:
目前畫面最強的游戲非Crysis莫屬,但是這款依靠暴力模型和著色技術(shù)堆積而成的游戲,對顯卡的要求之高令人嘆為觀止,至今都沒有哪顆GPU敢打包票說能在最高特效下面流暢運行。也就是說Cryengine 3是絲毫沒有考慮現(xiàn)有GPU的性能而開發(fā)的一款超級引擎。
以高效率著稱的虛幻引擎締造者Tim Sweeney稱,想要把現(xiàn)有游戲模型復雜度提高數(shù)十倍是很容易的事情(比如CG模型),但同樣的你也需要數(shù)十倍與現(xiàn)有主機機能的顯卡才能流暢運行,比如三路甚至四路優(yōu)異系統(tǒng),而這種系統(tǒng)的市場占有率連1%都不到,獨孤求敗的Crysis還賣不過快餐式的使命召喚系列、Cryengine至今無法染指游戲機領(lǐng)域就是這個道理。
所以,架空硬件的引擎是不可取的,唯有充分利用有限的GPU資源,通過各種輔助技術(shù)最大化畫面表現(xiàn)力,才是圖形技術(shù)公司和游戲開發(fā)商首當其沖要解決的內(nèi)容。DX11并沒有帶來額外的特效,但卻大大提升了GPU的渲染效率,DX11游戲很容易就能從畫面到速度全面超越DX10游戲!
當然,Tessellation并不是DX11的全部,前面之所以用大篇幅介紹該技術(shù),是因為這項技術(shù)歷史悠久、且命運極為坎坷、又與ATI的關(guān)系頗為密切。至于其他幾項DX11關(guān)鍵技術(shù),之前我們已經(jīng)撰文進行了詳細介紹,感興趣的朋友請看“圖形API再革命!DirectX 11新技術(shù)預覽”一文,此處僅作簡要介紹。
關(guān)于DX11 Compute Shader技術(shù),計算著色器將以業(yè)界標準接口訪問ATI Stream技術(shù),這對于倡導開放式GPU通用計算技術(shù)的AMD來說,又是一天大喜訊,DX11搭配OpenCL的并行計算雙保險,AMD面對NVIDIA的CUDA技術(shù)時,底氣將會更足一些。
DX11 Multi-Threading多線程技術(shù),API底層對多GPU優(yōu)化支持,減少對驅(qū)動和游戲渲染模式的依賴。目前AMD的策略是專注于研發(fā)一顆主流價位的GPU,然后通過雙核心組成高端顯卡,再雙卡互聯(lián)組成四核優(yōu)異系統(tǒng),因此多核系統(tǒng)嚴重依賴于驅(qū)動的優(yōu)化支持,而DX11的多線程技術(shù)顯然有助于提升多GPU并聯(lián)的工作效率,降低驅(qū)動開發(fā)難度及性能損失。
此外,Windows 7系統(tǒng)還內(nèi)置了對GPU視頻轉(zhuǎn)碼的支持,微軟并沒有厚此薄彼的偏向任何一邊,但這顯然對于在GPU通用計算方面處于弱勢地位的AMD來說,意義更大一些。
AMD DX11顯卡的核心代號及最終產(chǎn)品型號都未確定,但AMD已經(jīng)信誓旦旦的承諾將會搶先與對手正式發(fā)布DX11顯卡,據(jù)推測與Windows 7同期發(fā)布的可能性更大一些,也就是10月到11月之間。
而競爭對手NVIDIA方面,對于尚未發(fā)布的產(chǎn)品一直都是守口如瓶,對于未來的40nm和DX11新品只字不提,但據(jù)小道消息表明,NVIDIA的40nm GPU已經(jīng)準備就緒(據(jù)傳是DX10低端顯卡),DX11顯卡也將會在年內(nèi)發(fā)布,又一場3D爭霸賽即將上演,一同期待吧!<
關(guān)注我們
