2011年3月1日 星期二

GDC 2011 Day 1

2011 年的 GDC,是第 25 屆,不過也好像沒有特別盛大什麼的。反而是讓人感覺規模越來越小,就連報名參加所給的一個資料袋,質感都越來越糟...

依照慣例,前兩天是 Tutorial 課程跟一些 Summit 演講。

今天還是參加了一整天的 Tutorial,題目是 – "Advanced Visual Effects with DirectX 11"

--------------------------------------------------------------------------------------------------------

早上第一堂課,介紹的是 DX 11 裡的 Device Context & Command List,多緒繪製的架構。

接下來,是 Deferred Shading 的最佳化策略。包括 Light Pre-pass, Light Geometry Optimization 幾個方法。不過,Light Pre-pass 馬上在下午的課程裡被打槍...

接著是 Civilization V 。

他們用了一個稱為 "Packetized Rendering" 的設計策略,將所有的 API call 包裝成一個 packet,送到 engine 去處理,每個獨立的 render job 可以降低彼此之間的關聯性,甚至沒有關聯。然後可以很自豪的說,"No threading bugs"。

展示了一個很壯觀的 Screen Shot -- 滿滿畫面的兵,底下還秀了CPU 效能,12個核心同時在跑!!

然後是 Dragon Age II ,介紹他們所使用的 DX11相關技術。

他們主要用在 Dynamic Lighting ( Light Pre-pass method ), Tessellation, Diffusion Depth of Field (DDOF), Contact Hardening Shadows 上。

從這裡開始,DDOF 就一直出現了...

根據他們所說, Tessellation 是一個效能殺手。所以,只用在看得到的、很靠近攝影機的地形上。

也就是,這技術並不是什麼都適用的好物...

Contact Hardening Shadows 做出來的 Soft-shadow 效果,比過去用的 PCF Filtering 好非常多。DX11 SDK 上有 Sample,不過,我的電腦還是 DX10的顯卡,跑不起來,只能看靜態的圖...

下午第一堂課,就由 DICE 介紹他們的大作 Battle Field 3。

這遊戲,只支援 DX11,拋棄 DX9。

他們說,BF3 是大作,所以可以推動 OS 以及硬體的更新。

我們在旁邊,表示 .. "一切樂觀其成"...

太樂觀了...

BF3 的 Deferred Shading 並沒有使用 Light Pre-pass 方法,因為 Light Pre-pass 要對 Geometry render 兩個 pass,對 BF3 而言,Geometry 太多,不適用。

BF3 用了一個特殊的想法。

將 Screen Image 切分成幾十個 Tile,每個 Tile 用 Compute Shader 計算相關的 Light Info,這樣,據說可以計算場景裡高達 1000 個點光源...

BF3 的場景裡的物件也是很多的,所以依舊存在著 Draw Call 的 Bottleneck。所以, BF3 將 Instancing 發揮到最大極限,從一個 Object 一個 Draw Call ,變成 "一種" Object 一個 Draw Call...

效能大提升。

最後,BF3 呼籲 : Drop DX9!!

(我們還是繼續在旁邊... "樂觀其成"...)

接下來是一個日本人的介紹。

精神不濟加上日式發音很難懂,以致這半個多小時全部不知道什麼是什麼...

然後,又來 DDOF 了。

主題是 DDOF Solver,不太懂在做什麼,回去要開始找資料開始瞭解。

接下來的主題是 Separable Filters。

是用 Compute Shader 取代 Pixel Shader 做 Image Base Filter 的想法。

舉例就舉例嘛,不知道為什麼,又拿 DDOF 來舉例...

DDOF 看起來好像真的很重要...

然後談到 Tessellation, Displacement Shading, 重點 : 請用在 "Key Assets" 上...

最後,再經過一段冗長的 Post-Processing Performance Optimizing 演講,好不容易,下課休息。

2 則留言:

Ricky 提到...

請問什麼是 DDOF? Dynamic Depth Of Field?

很利害呵, 一下子吸收這麼多東西!

藍斯洛 提到...

呃.... 事實上我對 DDOF 完全狀況外。只知道是 Diffusion Depth of Field。好像可以用來表現焦距的效果。

回去以後要開始找文件來看。