格倫
抗鋸齒(Anti-Aliasing,簡寫為AA)就是這樣一項(xiàng)很特別的圖形技術(shù),它能夠明顯的改善游戲畫面表現(xiàn)力,同時也會讓游戲幀數(shù)大幅下降。所以多年以來,不論是顯卡廠商還是游戲開發(fā)商,都在努力的改進(jìn)抗鋸齒效率,開發(fā)出新的抗鋸齒模式,讓游戲畫質(zhì)變得更好,同時也不至于讓性能損失太多。
速度與畫質(zhì)一直都是3D游戲追求的兩大終極目標(biāo),但很多時候,速度與畫質(zhì)總是魚和熊掌不可兼得,想要開啟高級特效必然會損失幀數(shù)導(dǎo)致流暢度下降,因此就需要硬件廠商不斷的研發(fā)出性能更強(qiáng)的GPU,也需要軟件廠商研發(fā)出更高效率的圖形技術(shù)。
抗鋸齒(Anti-Aliasing,簡寫為AA)就是這樣一項(xiàng)很特別的圖形技術(shù),它能夠明顯的改善游戲畫面表現(xiàn)力,同時也會讓游戲幀數(shù)大幅下降。所以多年以來,不論是顯卡廠商還是游戲開發(fā)商,都在努力的改進(jìn)抗鋸齒效率,開發(fā)出新的抗鋸齒模式,讓游戲畫質(zhì)變得更好,同時也不至于讓性能損失太多。
所以,大家一定聽過或者見過以下這些抗鋸齒中的一種甚至多種,如:MSAA、CSAA、CFAA、FXAA、TSAA……今天筆者就為大家詳細(xì)解讀3D游戲中的鋸齒是如何產(chǎn)生的,回顧最常見的MSAA技術(shù)的原理和優(yōu)缺點(diǎn),最后介紹NVIDIA新開發(fā)的一種效率極高的抗鋸齒技術(shù)——MFAA。
我們知道,顯示屏是由一個個方塊像素點(diǎn)組成的,這些方塊像素點(diǎn)在顯示斜向或圓形物體時,會不可避免的在邊緣產(chǎn)生鋸齒狀的線條。當(dāng)顯示器的分辨率或顯示屏的PPI(每英寸的像素數(shù))足夠大時,人眼將無法看清具體的像素點(diǎn),但相鄰像素之間的色彩差異也會產(chǎn)生明顯的錯落感,高分辨率/PPI由于像素變得非常細(xì)膩,可以同比縮小鋸齒,但仍不能完全消除鋸齒。
前面說過,方塊像素顯示斜向或圓形物體時,鋸齒是無可避免的,抗鋸齒也無法消除鋸齒,但它能通過欺騙人眼的方法,讓鋸齒的棱角顯得不那么明顯。如上圖所示,方法就是對鋸齒所在位置的像素及相鄰像素進(jìn)行比對采樣處理,計算出該像素應(yīng)該顯示多少比例的灰階值,而不是“非黑即白”的顯示模式。比如4xAA就是對每個像素采樣4次,原本該像素只有0、1兩種顯示模式,開啟4xAA后就能顯示0、1/4、1/2、3/4、1五種模式。如此一來,棱角分明的鋸齒邊緣,就會顯得比較模糊,色彩過渡比較自然,就不會那么刺眼了,鋸齒一定程度上被消除了。
MSAA的全稱是Multi Sampling Anti-Aliasing,多重采樣抗鋸齒。MSAA只對Z緩存和模板緩存中的數(shù)據(jù)進(jìn)行采樣處理,可以簡單理解為只對多邊形的邊緣進(jìn)行抗鋸齒處理,而忽略非邊緣像素(因此可能會在一些特殊位置殘留一些鋸齒)。這樣的話,相比SSAA對畫面中所有數(shù)據(jù)進(jìn)行處理,MSAA對資源的消耗需求大大減弱,因此MSAA在游戲中使用最廣泛,多年來一直占據(jù)主導(dǎo)位置。
鑒于高倍MSAA性能損失較大的問題,NVIDIA在MSAA的基礎(chǔ)上開發(fā)出了一種“投機(jī)取巧”的技術(shù):Multi-Frame Sampled Anti-Aliasing(MFAA),從字面上來看它是MSAA的一個變種,可以翻譯為“多幀多重采樣抗鋸齒”。
MFAA有足夠的能力提供媲美MSAA的抗鋸齒效果,而且在效果相同的前提下還可以大幅降低資源消耗量,提高游戲的幀數(shù)。NVIDIA的Maxwell架構(gòu)給玩家?guī)砹薉SR動態(tài)超級分辨率以及MFAA多幀采樣抗鋸齒兩項(xiàng)新技術(shù),其中DSR技術(shù)已經(jīng)可以在GeForce 500/600/700/900系列顯卡上啟用,而MFAA則是在最新的GeForce 344.75 WHQL驅(qū)動中正式登陸,目前僅支持GTX 970/980/970M/980M顯卡。
MFAA全稱為“Multi-Frame Sampled Anti-Aliasing”,與MSAA基于像素采樣有所不同,MFAA是基于幀采樣的,我們大致可以這么理解,MFAA是在相鄰的兩幀上各執(zhí)行一次抗鋸齒采樣,然后通過NVIDIA自行開發(fā)的圖像合成處理技術(shù)來整合采樣結(jié)果,最后輸出完成抗鋸齒運(yùn)算的圖像。
MFAA的運(yùn)行原理實(shí)際上與MSAA是接近的,基本上可以視為MSAA的精簡版。MFAA和MSAA都是把一個像素點(diǎn)放大至原來的數(shù)倍,讓渲染圖像的采樣點(diǎn)也增加至原來的數(shù)倍,不過MSAA是每一幀圖像都會對全部采樣點(diǎn)進(jìn)行采樣,而MFAA則是把采樣點(diǎn)分為兩份,奇數(shù)幀和偶數(shù)幀各占一半,然后每一幀進(jìn)行采樣后再通過臨時合成濾波器把結(jié)果整合到一起。這樣MFAA的每一幀圖像的采樣運(yùn)算數(shù)據(jù)都只有MSAA的一半,但是數(shù)據(jù)整合起來后卻有著與MSAA相同的效果。
按照NVIDIA的描述,MFAA在提供等同于MSAA抗鋸齒效果的同時,性能可以比后者提升30%。這對于認(rèn)為幀數(shù)與畫質(zhì)同樣重要的游戲玩家來說,無疑是一個極好的抗鋸齒技術(shù)。目前MFAA僅支持GTX 970/980/970M/980M等第二代Maxwell架構(gòu)顯卡,而且不是每一款游戲都支持MFAA抗鋸齒技術(shù)。按照NVIDIA提供的資料顯示,目前支持MFAA的游戲數(shù)量并不算太多,目前為止確定支持MFAA抗鋸齒的只有20款游戲,多數(shù)是近年來的游戲大作,屬于新近發(fā)布的有《刺客信條:大革命》,不過同屬育碧的《孤島驚魂4》不在支持列表中。
開啟MFAA的方法也比較簡單,首先玩家要確定自己使用的是GTX 970/980/970M/980M顯卡,并安裝了最新的GeForce 344.75 WHQL驅(qū)動,然后在驅(qū)動程序的設(shè)置面板中我們就可以看到MFAA的選項(xiàng),把選項(xiàng)從默認(rèn)的Off改為On就能在游戲中啟用MFAA抗鋸齒。需要一提的是,目前還沒有一款游戲是有直接提供MFAA的選項(xiàng),因此在驅(qū)動程序設(shè)置面板中開啟MFAA后,還需要在游戲中選擇使用MSAA,這樣MFAA才會生效。
我們以《刺客信條:大革命》為測試對象,來看看MFAA與MSAA在畫質(zhì)與效能上的區(qū)別。測試平臺測試平臺使用默認(rèn)頻率Core i7-3770K打造,搭配雙通道DDR3-2666內(nèi)存(實(shí)際運(yùn)行在1600MHz),總?cè)萘繛?GB(4GB*2),使用的顯卡為耕昇GTX 980關(guān)羽版,安裝GeForce 344.75 WHQL驅(qū)動。
首先我們來看看MFAA與MSAA在抗鋸齒效果上的區(qū)別,首先我們可以看到,在《刺客信條:大革命》中,MSAA x2與MSAA x4之間還是有一定差距,但MSAA x4與MSAA x8之間已經(jīng)幾乎分辨不出差別;MFAA x2的效果則與MSAA x4的接近,基本上已經(jīng)達(dá)到了不錯的水平,MFAA x4的效果與MSAA x8的接近,不過其與MFAA x2之間的差距并不明顯。
在效能上,同樣級別的MFAA與MSAA抗鋸齒在幀數(shù)表現(xiàn)上是比較接近的,嚴(yán)格來說MFAA可能在平均幀數(shù)上還要落后1FPS到2FPS。不過如果玩家需要MSAA x4級別抗鋸齒效果的話,MFAA x2就可以做到相同的效果,換句話說在相同的抗鋸齒效果下,MFAA可以提供比同等質(zhì)量的MSAA更高的幀數(shù),游戲自然更加流暢了。
縱觀近年來的顯卡產(chǎn)品,它們的發(fā)布總會伴隨著新型抗鋸齒技術(shù),而且這些抗鋸齒技術(shù)大都有相同的特點(diǎn),就是可以提供媲美MSAA抗鋸齒效果的同時,資源消耗比MSAA更低。今年與Maxwell同期登場的MFAA自然也不例外,從我們的測試可以看出,MFAA有足夠的能力提供媲美MSAA的抗鋸齒效果,而且在效果相同的前提下還可以大幅降低資源消耗量,提高游戲的幀數(shù)。
不難看出,MFAA是一款追求性能與效果平衡的抗鋸齒技術(shù),如果你已經(jīng)擁有GTX 970/980/970M/980M顯卡,那么在上述20款游戲中開啟MFAA,就可以擁有媲美MSAA的抗鋸齒效果,同時游戲的流暢度也可以提升一個檔次。對于重視畫質(zhì)和幀數(shù)的游戲玩家來說,MFAA無疑是一個雙贏的選擇。
MFAA有足夠的能力提供媲美MSAA的抗鋸齒效果,而且在效果相同的前提下還可以大幅降低資源消耗量,提高游戲的幀數(shù)。NVIDIA的Maxwell架構(gòu)給玩家?guī)砹薉SR動態(tài)超級分辨率以及MFAA多幀采樣抗鋸齒兩項(xiàng)新技術(shù),其中DSR技術(shù)已經(jīng)可以在GeForce 500/600/700/900系列顯卡上啟用,而MFAA則是在最新的GeForce 344.75 WHQL驅(qū)動中正式登陸,目前僅支持GTX 970/980/970M/980M顯卡。endprint