完美的畫面已經離我們不再遙遠——反鋸齒技術淺析
不管現今的遊戲畫面有多完美,人物和環境有多真實,但遊戲畫面的構成的主要方式仍然沒有得到改善:一幀畫面由成千上萬像素構成。這意味著物體多邊形的輪廓最終是鋸齒狀的圖形。所以畫面品質不可能達到理想的標準,除非完全消除“鋸齒”。 別擔心,精美的畫面品質是要犧牲速度的代價來換取的,並且各大顯卡廠商都有自己獨到的反鋸齒技術,他們新的圖形加速卡都紛紛支援全屏消除鋸齒。完美的畫面已經離我們再遙遠。
超級採樣(Supersampling)
無論是什麼樣的消除鋸齒技術都是在超級採樣技術的基礎上發展而來的。在超級採樣技術中,畫面裡的每一個像素點都被拆分成了幾個子像素點,然後對它們進行單獨處理後分別放入緩衝區。在整個幀的像素都放入緩衝區後接下來就執行反操作,依照模板的式樣對拆分的像素採用過濾或“彙總”處理重建新的像素。在超級採樣期間,畫面以較高的解析度建立,然後依照適當的模板樣式進行過濾。(1、2)如果我們在800X600的解析度下開啟GF2的4X反鋸齒功能後,顯卡所表現出的效能將與在1600X1200模式下所表現出的效能相等。由於超級採樣消耗了巨大的系統資源,在使用超級採樣的反鋸齒功能時系統效能的下降非常明顯。
多重採樣(multisampling)
NVIDIA在GeForce3上採用的多重採樣往往被人們誤解為超級採樣技術,實際上NVIDIA的多重採樣技術是超級採樣技術的一種變形。 NVIDIA在GeForce3/GeForce4Ti/GeForce4 MX中所採用的多重採樣與其在GeForce2中採用的超級採樣的主要區別在於:晶片在對同一幅映像進行處理時所處理的子像素的數量不同。如果我們想得到平滑的畫面,僅僅對其多邊形邊緣進行處理就夠了。NVIDIA在執行多重採樣時有一個特點:在對一個像素點進行著色處理時,不僅僅只對其本身的子像素進行採樣,也可以同時對其周邊數個像素的子像素進行採樣,鄰接子像素的映像屬性也被包括了進來,影響最終該像素的顏色屬性。這樣參與計算的子像素樣本數目也由原來的2個變為5個。(3)
GF3在開啟這種全屏消除鋸齒技術時,在多邊形的邊緣上感覺比使用超級採樣技術時平滑得多,但效能的下降卻不是很明顯。(4、5)建議有GeForce3以上顯卡的朋友開啟它。
視覺平滑(smoothvision)
ATI則有自己的反鋸齒技術——視覺平滑。該技術利用一個抖動取樣表,靈活控製取樣的位置變化。這樣對一個每組16個樣本的取樣實際上通過抖動取樣表的控制只抽取了其中8個樣本(6) 應該說視覺平滑smoothvision與超級採樣supersampling相比並沒有多少優勢,在RADEON 8500上所表現出來的實際效果確實教人不敢恭維。開啟反鋸齒功能後還是會引起效能的下降。因此RADEON 8500在開啟消除鋸齒功能後自動降低了紋理的細節等級,從而降低了對顯存頻寬的輸送量。但是紋理的品質變得非常糟糕。(7、8沒有開啟全屏反鋸齒,9、10 使用smoothvision 6x)
各位有RADEON 8500的朋友不要著急,我們還可以通過其它的技術來彌補這個缺陷:只需要開啟各向異性過濾,就可以用過濾提高紋理的品質。RADEON 8500開啟各向異性過濾後效能的損失非常小,而畫面品質卻提升不少。
16倍全螢幕消除鋸齒(FAA-16X)
Martox在Parhelia-512中使用的消除鋸齒技術明顯優於其它公司。這個革命性的方法對系統的效能影響最低,而且所能達到的消除鋸齒的效果也是最好。對於支援FAA-16X的應用程式,Parhelia-512職能的只針對三角形邊緣的像素進行柔化,我們在遊戲中看到的鋸齒都是產生在圖形的邊緣部分,物體內部根本就不會看到,然後再用上16倍取樣,同時還能保留物體內部像素的清晰尖銳,這樣就達到了整個畫面的柔化效果。由於一般邊緣的像素只佔有整個畫面的很少一部分,所以針對邊緣的16倍柔化消除鋸齒也不會減少太多的效能。(11有Parhelia-512的朋友們,不開啟FAA-16X可就虧了!)
高解析度代替反鋸齒
其實要消除鋸齒,不一定僅僅用顯卡中的反鋸齒特效,我們還有一個非常簡單的辦法——提高解析度。當解析度達到一個較高的水平,鋸齒也就變得不那麼明顯了。例如,當解析度在水平方向上擴大A倍,在垂直方向上擴大B倍,顯示器上的物理像素的尺寸實際上變小了,像素的面積事實上縮小了AXB倍。鋸齒的幅度也縮小了相同的倍數。
但是想要達到超級取樣或4X多重取樣的效果,你必須將解析度在水平方向和垂直方向同時擴大一倍(例如800X600變為1600X1200,1024X768變2048X1536)。當你將顯示器的解析度調到最大值時,你必須忍受60Hz或更低的重新整理率。而反鋸齒特效所帶來的效能下降相對於提高解析度來說要小一些,尤其是使用Parhelia-512的FAA-16X看起來更划算。總而言之,不是開啟全屏反鋸齒,就就是提高解析度。
我們以Homeworld: Cataclysm的某個情境為例比較一下。
最初沒有開啟全屏反鋸齒,艦隊看起來模糊的可憐,很難區分艦隊單元的機種,而且飛船的輪廓幾乎辨認不出來。(12、13、14)
開啟全屏反鋸齒的效果較好,雖然整個畫面都變得模糊起來,但仍舊辨認得出飛船的外形。(15、16、17)
在提高了解析度後整個映像清晰分明,感覺比開啟反鋸齒特效時畫面更清楚,但其仔細觀察邊緣還是有一些細小的鋸齒。(18、19、20)
反鋸齒和提高解析度都為我們提供了高品質的畫面。選擇那一個就看你的個人的喜好了。
速度VS.畫質
全屏反鋸齒沒有得到廣泛的應用的主要原因是該技術會帶來明顯的效能下降。採樣倍數越高,效能的下降就越明顯。比如,2X超級採樣使顯卡的效能下降了將近一倍,4X的情況則是4倍,6X時則是驚人的6倍。
這就要求你更瞭解自己顯卡的效能,選擇適合自己顯卡效能的消除鋸齒倍數。如果你有像RADEON 8500這樣的顯卡再加上強勁的CPU和記憶體,即使是在“heavy”SMOOTHVISION模式下1024X768/32bit運行遊戲,速度也還是可以讓人接受的。對那些相對較早的顯卡NVIDIA GeForce2 MX, PowerVR/STM Kyro/Kyro II, SiS 315等等來說,由於本身效能就不是很高,顯卡在普通模式下運行都比較吃力,再加上僅僅支援超級採樣,因此在開啟全屏反鋸齒功能後,效能下降的相當厲害。這種情況下,只能是降低解析度來運行遊戲了,想想看800X600解析度下你得到的卻是1600X1200下的效能和不如1024X768的畫質,那麼我們還不如不開反鋸齒功能。遊戲畫面品質同FPS總是矛盾的,對於相對有限的電腦效能來說魚和熊掌不兼得。在激烈的CS對戰中又有誰會靜下心來看對面2m內敵人手中的Ak邊角是不是有鋸齒呢?