刨根問底!曲面細(xì)分技術(shù)到底是個啥?
當(dāng)廠商以及用戶開始神話曲面細(xì)分的時候,可能它自己都沒想到能有這樣出人頭地的一天。實(shí)際上曲面細(xì)分也是DX11收編的“散兵游勇”。
曲面細(xì)分最早出現(xiàn)在專業(yè)領(lǐng)域,在蟄伏了多年后,終于被AMD引入到PC圖形技術(shù)中,通過R600系列的發(fā)布,見諸于桌面圖形市場。但由于沒有微軟給予的官方身份,專屬性太強(qiáng),無論是其它圖形核心生產(chǎn)廠商,還是游戲開發(fā)商,都很難也不愿意去跟進(jìn)這樣的技術(shù)。幸好AMD為微軟打造的XBOX360圖形核心Xenos采用了它,由于主機(jī)市場的封閉性,所以XBOX360的大量游戲中都采用了曲面細(xì)分技術(shù),微軟親自體驗(yàn)到了它的好處,并終于在DX11中收編,通過自己的標(biāo)準(zhǔn)強(qiáng)勢推廣,否則還真不知道它要在邊緣徘徊多久。
實(shí)際上,我們所說的曲面細(xì)分的作用,只是機(jī)械的為一個多邊形模型增加更多的多邊形數(shù)量,這就是其核心內(nèi)容,如果不加前后期控制,這樣的技術(shù)對于提升圖形效果起不到任何作用,對于性能反而還會起到負(fù)面影響。
之所以在DX11中,曲面細(xì)分會有改善畫質(zhì)的作用,我們通過一張DX11流水線圖的觀察就能發(fā)現(xiàn)其原因。在增加了Tessellator外,流水線前面還多出了Hull Shader后面還增加了Domain Shader兩個模塊,也就是說要想通過曲面細(xì)分獲得圖形效果提升,必須在曲面細(xì)分前后加以人工控制,不能任由其發(fā)揮。
對于Hull Shader、Tessellator、Domain Shader這三個新加入的單元的作用,上面這張圖給予了較為明確的回答。Hull Shader主要負(fù)責(zé)定義細(xì)分等級(LOD)和相關(guān)控制點(diǎn)在細(xì)分中的“形變”趨勢,這里的形變之所以加引號,是要說明這種形變僅僅是類似于曲率改變等小幅度的變化,而非大幅度的多邊形位移;Tessellator則負(fù)責(zé)根據(jù)HS傳輸下來的信息,通過暴力增加多邊形去實(shí)現(xiàn)HS的要求;Domain Shader負(fù)責(zé)的最重要的功能就是通過貼圖控制的方式,實(shí)現(xiàn)模型的形變,也就是我們大家在DX11的細(xì)分曲面中看到的高細(xì)節(jié)畫面。
通過上述的分析,大家應(yīng)該可以得出一個結(jié)論,實(shí)際上細(xì)分曲面負(fù)責(zé)的僅僅是為后續(xù)的提升畫質(zhì)的運(yùn)算提供物質(zhì)基礎(chǔ),無論是置換貼圖和平滑效果,都需要有大量多邊形的存在才能實(shí)現(xiàn)。試想,如果開發(fā)者想在一個三角形上通過置換貼圖實(shí)現(xiàn)一座城市的地貌效果,空有精美的置換貼圖,區(qū)區(qū)三個頂點(diǎn)如何形變拉伸?巧婦難為無米之炊,但如果給你100000個頂點(diǎn)呢,事情就容易多了。
實(shí)際上,從用戶的角度講,這一段的內(nèi)容并不重要,從曲面細(xì)分上獲得什么樣的快樂才是他們關(guān)心的,而非原理。
關(guān)注我們
