開創(chuàng)DX11宏圖霸業(yè)!鐳HD5870權(quán)威評(píng)測(cè)
第三章/第四節(jié) 2007年R600:Tessellation臥薪嘗膽
現(xiàn)在看來,R600核心是一款非常失敗的產(chǎn)品,功耗高、發(fā)熱大、性能低、AA效能差,但是當(dāng)R600(320SP)的架構(gòu)擴(kuò)充至RV770(800SP)的規(guī)模時(shí),就沒人敢輕易對(duì)這套體系架構(gòu)評(píng)頭論足了。事實(shí)上R600的失敗在于冒險(xiǎn)采用80nm工藝、512Bit環(huán)形總線、以及Shader AA,而其核心架構(gòu)的運(yùn)算能力并不輸給競(jìng)爭(zhēng)對(duì)手,因而一直被沿用至RV670、RV770還有如今的RV870身上。
R600除了完全按照DX10和統(tǒng)一渲染架構(gòu)設(shè)計(jì)外,還整合了一個(gè)特殊的模塊:Programmable Tessellator,可編程拆嵌器。由于這個(gè)可有可無的模塊占用晶體管并不多,因此AMD之后的全系列DX10 GPU中都集成了可編程拆嵌器。
這個(gè)可編程拆嵌器可要比XBOX360高明很多,R600核心能夠根據(jù)3D模型中已經(jīng)有的頂點(diǎn),根據(jù)不同的需求,按照不同的規(guī)則,進(jìn)行插值,將一個(gè)多邊形拆分成為多個(gè)多邊形。而這個(gè)過程都是可以由編程來控制的,這樣就很好的解決了效率和效果的矛盾。
Tessellation技術(shù)讓模型變得更加細(xì)膩
現(xiàn)在我們就更容易理解Tessellation技術(shù)是怎么回事了,它是一種能夠在圖形芯片內(nèi)部自動(dòng)創(chuàng)造頂點(diǎn),使模型細(xì)化,從而獲得更好畫面效果的技術(shù)。Tessellation能自動(dòng)創(chuàng)造出數(shù)百倍與原始模型的頂點(diǎn),這些不是虛擬的頂點(diǎn),而是實(shí)實(shí)在在的頂點(diǎn),效果是等同于建模的時(shí)候直接設(shè)計(jì)出來的。
R600的Tessellation技術(shù)支持多種決定插值頂點(diǎn)位置的方法來創(chuàng)造各種曲面:
1. N-Patch曲面,就是和TRUFORM技術(shù)一樣,根據(jù)基礎(chǔ)三角形頂點(diǎn)的法線決定曲面。
2. 貝塞爾曲面,根據(jù)貝塞爾曲線的公式計(jì)算頂點(diǎn)的位置。
3. B-Spline, NURBs, NUBs 曲線(這三種曲線均為CAD領(lǐng)域常用曲線,在Maya中均有相應(yīng)工具可以生成)
4. 通過遞歸算法接近Catmull-Clark極限曲面。
有了多種無比強(qiáng)大的曲面生成技術(shù),在加上可編程的設(shè)計(jì),程序員在開發(fā)游戲之初就能根據(jù)需要制定相關(guān)模型采用何種細(xì)分法則,從而避免出現(xiàn)變形和失真的問題。
而且,Tessellation過程被安排在了頂點(diǎn)著色之前,這就意味著Tessellation所創(chuàng)造出來的頂點(diǎn)全都可以參與Vertex Shader的處理和運(yùn)算。這些頂點(diǎn)所帶來的所有細(xì)節(jié),將具備所有特效。
經(jīng)過Tessellation智能拆嵌之后,模型精細(xì)了很多
拆嵌后再輔以各種陰影及著色效果,從而以很小的代價(jià)達(dá)到CG級(jí)別畫面
在R600發(fā)布時(shí),AMD拿出了一款CG級(jí)別實(shí)時(shí)渲染的Demo,其中被積雪所覆蓋的山體就是由Tessellation生成的。以往的演示Demo都是片面注重對(duì)主角的修飾,而背景往往只使用簡(jiǎn)單的紋理貼圖,而R600的這個(gè)Demo其背景和環(huán)境的精細(xì)程度甚至超越了主角Ruby。
HD3000/HD4000繼續(xù)支持Tessellation
可惜,時(shí)至今日,只有ATI的官方Demo使用了自家的Tessellation技術(shù),還沒有任何一款PC游戲支持這項(xiàng)被孤立于DX10之外的非主流技術(shù),看來僅靠AMD還是孤掌難鳴的。
關(guān)注我們
