七年磨一劍!DX11之ATI獨門絕技全解析
● 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中均有相應(yīng)工具可以生成)
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還是孤掌難鳴的。
關(guān)注我們
