WoW 6.0 的圖像引擎進化 - WOW

Hedy avatar
By Hedy
at 2014-09-21T14:30

Table of Contents

※ [本文轉錄自 C_Chat 看板 #1K7d06e_ ]

作者: ONISUKA () 看板: C_Chat
標題: Re: [新聞] WoW 6.0 的圖像引擎進化
時間: Sun Sep 21 14:28:09 2014

對這個領域稍微有點了解,底下介紹給不熟悉電腦圖學的朋友

官方繁體中文版在這:
http://tw.battle.net/wow/zh/blog/15936285/


在講CSAA跟MSAA之前,先要從AA說起。


什麼是AA(Anti-Aliasing)呢?

http://zh.wikipedia.org/wiki/%E5%8F%8D%E9%8B%B8%E9%BD%92

擷取WIKI的解釋:

在3D繪圖時,每個圖形由像素組成,每段瞬間畫面由影格組成,因為螢幕上的像素有限,
如果要表現出多邊形的位置時,因技術所限,使用絕對坐標定位法是無法做到的,只能使
用在近似位置採樣來進行相對定位。由於沒有足夠的採樣來表現出3D世界中的所有物品的
圖形,所以在最後影像顯示上,這些現象便會造成在物品與物品中過渡的邊緣就會產生波
浪狀、圓形、鋸齒和閃爍等失真現象,嚴重影響了畫面的品質。


簡單來說,AA(反鋸齒)顧名思義就是將畫面上的鋸齒給消除掉,

可以把它想成是一種柔化、模糊化的技術。


Aliasing的情形很常在電腦上看到,大家可以打開小畫家,畫一條斜線,

然後再用放大鏡放大好幾倍,就可以看到斜線的邊緣呈現鋸齒狀。

會有這樣的原因,是因為一般點陣圖片儲存的方式,都是用像素矩陣來儲存。

由於斜直線很常會在相鄰的整數X座標上,其Y值剛好差一的情形,

但我們又不能使用絕對坐標(因為像素矩陣是整數X整數),

所以斜直線在兩個相鄰的像素列上,就很容易出現鋸齒狀的現象。

如下圖左。

http://www.markhamilton.info/wp-content/uploads/2011/08/Antialiasing.png

而AA的作用就是將這種現象柔化(模糊化),如上圖右。

只要將線條邊緣的地方用介於黑色跟白色之間的灰色來填補,
(顏色根據該像素距離黑色線條的遠近而有所深淺)

遠遠的看就會發現眼睛不再覺得鋸齒狀那麼明顯(當然近看還是會有)。


回到遊戲來說,由於電腦螢幕也是由像素矩陣所構成,

所以當遊戲內的物體投影到螢幕時,

只要物體與物體相鄰的地方,或者物體的邊緣(與背景相鄰的地方),

如果沒有剛好都在整數數值(也就是剛好落在像素上)的話,

就容易出現鋸齒或失真的現象。


那麼Aliasing要怎麼實作呢,最簡單也最暴力的做法就是超級採樣

Super sampling anti-aliasing (SSAA),又被稱作Full-scene anti-aliasing (FSAA)。

http://www.spec.org/gwpg/publish/fsaa_in_vp10.html


作法很簡單,先把影像放大幾倍:

http://www.spec.org/gwpg/images/fsaa_in_vp10_clip_image005.gif

再用Super sampling進行採樣。

通常是根據放大的倍率取對應的像素,上圖就是把上頭有綠點的四個像素的顏色值混合,

再除以四以後填回要填的像素位置。

http://upload.wikimedia.org/wikipedia/en/6/61/Supersampling.png

這樣子做雖然簡單暴力,但缺點就是很消耗GPU資源。


因此OpenGL就提出了多重採樣的反鋸齒技術,MSAA(Multisample anti-aliasing),

這個方法可以有效地降低GPU所需的資源。為什麼呢?

由於多邊形的內部通常不太會有鋸齒或失真的情形發生,只會在多邊形的邊緣發生,

所以MSAA先使用Z buffer跟Stencil buffer(按:這兩個有興趣的可以自行估狗)

來找出到底有哪些像素正好是落在多邊形的邊緣,

然後找出有哪些物體或背景會落在這些像素,然後分別對這些點取顏色、混合、平均。

這樣一來就可以省下很多資源,但又可以將輸出的遊戲畫面更柔化。


那麼為什麼WOW要改用由nVIDIA所提出的CSAA(CoverageSampling Anti-Aliasing)呢?

原因是因為CSAA比起MSAA又更省GPU資源,

一般來說,16xCSAA的效果跟8xMSAA差不多,但其性能下降程度只比4xMSAA高一點。

由於許多新的繪圖技術不斷加入WOW,導致WOW對於GPU的需求比過去越來越高,

改用CSAA可以把GPU的資源分給那些新的繪圖技術,讓效能更加提升。

(CSAA的效能提升的原因是採樣的方式不同,由於牽扯到很多技術內容,
所以略過不提,詳情請參考:http://www.anandtech.com/show/2116/9 )


另外對於只支援DirectX 9的顯示卡而言,

可以使用更快速的FXAA(Fast approximate anti-aliasing),

這種作法的取樣方式並不會從3D模型上取樣,而是直接從輸出到螢幕上的圖片來取樣。


不過有點讓人疑惑的就是,nVIDIA在最新推出的Maxwell架構中已不再使用CSAA,

那麼使用這些顯示卡可不可以獲得CSAA效果呢?

由於我們並不知道WOW程式是怎麼運行CSAA的,

如果是寫在WOW裡面,那就不成問題;

如果是需要使用顯示卡的CSAA功能,

那麼使用新一代不支援此技術顯卡(800系列及之後)有可能就得使用其它的技術取代。
(例如用顯卡上的MSAA)


但畢竟這些新的顯示卡也是今年才推出的,短時間應該不用擔心這問題。

而且我想暴雪應該會針對這點做出改良方案吧。


TLDR: CSAA比MSAA更不吃GPU資源,因此更多進階的顯像技術就能充分發揮GPU效果。

所以使用同樣的配備,玩6.0的WOW應該可以獲得更好的畫面品質。

--
Tags: WOW

All Comments

Leila avatar
By Leila
at 2014-09-24T12:14
那我只有ATI的卡怎麼辦?!!
Tristan Cohan avatar
By Tristan Cohan
at 2014-09-26T22:26
哈哈 其實我也不知道 但AMD有EQAA跟CSAA很像
Poppy avatar
By Poppy
at 2014-09-28T03:23
救命阿 680 4G賣不掉
Ingrid avatar
By Ingrid
at 2014-09-30T17:20
....完全看不懂,可是好像很厲害,只好給推
Ingrid avatar
By Ingrid
at 2014-10-05T03:43
比官網的文章好懂一點 但還是看不懂
Eartha avatar
By Eartha
at 2014-10-09T18:07
快推,不然人家會以為我們看不懂
Rebecca avatar
By Rebecca
at 2014-10-10T21:59
快推!! 可以解釋為硬體不變的情形下畫面可以變好嗎?
Wallis avatar
By Wallis
at 2014-10-12T19:11
我一直都用nvidia
Blanche avatar
By Blanche
at 2014-10-13T00:58
恩 跟我想的差不多
James avatar
By James
at 2014-10-13T08:10
其實鋸齒在45度線算很不明顯了 1-10度或者30度都很明顯
Callum avatar
By Callum
at 2014-10-14T06:20
簡單的說就是一片平滑突然高一快起來
Candice avatar
By Candice
at 2014-10-15T01:29
官網說那叫CMAA。CSAA應該是本來就有的,CMAA是新招
Selena avatar
By Selena
at 2014-10-15T02:34
反鋸齒我不太懂,以上是我對官網的解讀。
Ula avatar
By Ula
at 2014-10-18T04:59
其實以目前beta的畫面我覺得就算不開反鋸齒也沒嚴重鋸齒
Harry avatar
By Harry
at 2014-10-21T19:07
話說畫面變很漂亮但其實顯卡需求更高了
Skylar DavisLinda avatar
By Skylar DavisLinda
at 2014-10-22T14:44
我AMD 280X 玩BETA全開沒差喔
Robert avatar
By Robert
at 2014-10-27T10:12
怎麼不用TXAA呢,感覺這個也不錯阿XD
Necoo avatar
By Necoo
at 2014-10-29T18:24
快噓不然人家以為我們看得懂
Vanessa avatar
By Vanessa
at 2014-11-01T19:30
嗯嗯,就是這樣,原來如此
Ivy avatar
By Ivy
at 2014-11-02T21:48
反正WOW畫面再怎麼進化>幅度也相當有限了吧
Rae avatar
By Rae
at 2014-11-03T21:17
這就是A陣營與N陣營永遠不歇的鬥爭 在每款新作品或續作
Caroline avatar
By Caroline
at 2014-11-04T22:28
哈哈 原來我眼殘了 不過基本上CMAA或CSAA都是較進階的技
術,目的就是降低記憶體使用量
Todd Johnson avatar
By Todd Johnson
at 2014-11-06T17:26
現在玩BETA 感覺轉畫面角度跟點選目標都有種延遲感 不
知道為啥..
Ivy avatar
By Ivy
at 2014-11-09T10:37
研究這些演算法真的很有趣啊~
Candice avatar
By Candice
at 2014-11-11T16:26
用繪圖卡的表示 ... DX 用的好痛苦呀阿阿阿阿
Gilbert avatar
By Gilbert
at 2014-11-15T11:02
還是比不上3A大作

印象最深的魔獸時刻

Hazel avatar
By Hazel
at 2014-09-21T14:05
1. 解祈福任務 2. 半夜12點過後,正當準備下線時,突然聽到AQ開門 看到薩魯法爾大王坦住蟲蟲大軍、世界各地的蟲子、蟲巢的超級大蟲 無奈隔天第一堂有課,10點多回到宿舍,蟲蟲已經退得差不多了… 3. 60年代某次厄運副本,小隊中有戰 牧(我) 法 賊 獵 補到一半,隊上的盜賊秘我… ...

印象最深的魔獸時刻

Robert avatar
By Robert
at 2014-09-21T12:21
1 安其拉開門伺服器大當機 2 第一次封頂 3 第一次拔地騰空 4 三個禮拜蹲到羅奎那哈克的時候 5 拿到逐風者 6 花了兩年多終於打到安祖 7 當個patch推倒火源之界尾王大螺絲的時候 8 每個資料片片頭動畫釋出的時候 9 好朋友回鍋的時候 算算單身多久, 就打了魔獸多久, 就算在交女 ...

塔那利斯 守衛之谷

Edward Lewis avatar
By Edward Lewis
at 2014-09-21T12:06
塔那利斯地圖下方 有個叫做守衛之谷的地方 進去到最裡面地圖所在位置會變成奧丹姆 裡面有個箱子and#34;洪荒之前的箱子and#34; 開了沒東西 請問這個地方是幹甚麼用的? 解任務用地嗎? 看小地圖裡旁邊還有可以進去的空間 但實際上進不去 很好奇這是在幹什麼的 - ...

6.0劇透影片

Quintina avatar
By Quintina
at 2014-09-21T11:31
Maraad, Yrel, Garona Maraad跟Yrel還有Garona的關係,早期設定如上篇文所說 但是BZ這次會不會吃書就很難說,節至現在仍然沒有準確的說法 先來談談Garona (以下資料來自WOWWIKI) The birth of Garona was orchestrated by G ...

回鍋-黑龍王子

Leila avatar
By Leila
at 2014-09-21T10:11
小弟我約8月回鍋 開始了黑龍王子的傳說任務 一連串的任務很繁雜~當然要先爬爬文作功課 我就上PTT爬文 看到一篇 黑龍王子懶人包 喔喔 這個好!裡面把步驟寫得很詳細 其中第四步驟 STEP4 3000點勇氣 黑龍王子聲望崇敬 第三周,先把勇氣刷滿後,解完STEP5,可以直接無痛繼續做STEP6 1.恩恩 ...