【西川善司】[索尼克世界大冒險]圖形講座

西川善司為3D遊戲粉絲的[索尼克世界大冒險]的圖形講座

3D遊戲圖形趨勢是實時的全局照明

2009年3月13日收錄 注:因為是3年前資料,一些技術已經不是最佳解決方案

原文 西川善司

翻譯 Trace

校對 千里馬肝

原文鏈接 http://game.watch.impress.co.jp/ ... 0090410_110682.html

【西川善司】[索尼克世界大冒險]圖形講座

會場:世嘉(SEGA)總公司

【西川善司】[索尼克世界大冒險]圖形講座

[索尼克世界大冒險]和[刺蝟引擎]的標誌

對於本世代主機的3D遊戲圖形,用戶所期待的,不僅是渲染(Rendering)分辨率和紋理(Texutre)分辨率的提高,還有因為硬件性能提高也要有新的視覺體驗。以此目標實現[本世代機上的新視覺體驗]的就是這款基於PS3和XBox360開發的動作遊戲[索尼克世界大冒險(Sonic World Adventure)],(後面簡稱索尼克WA)。

要說起[索尼克]系列,一直都是以遊戲趣味為主的作品。但是在本作中,加入了在今後本世代遊戲機3D圖形的新標準和技術的[實時全局照明(Realtime Global Illumination)](後面簡稱實時GI), 所以集中了很高的關注度。

這次,想讓大家聚焦這個實時GI,同時也看看索尼克WA的圖形。

[索尼克世界大冒險]的圖形規格,現在的索尼克角色使用18000個多邊形

這次的採訪對象是世嘉有限公司第二CS研究開發部第一程序部遊戲總監兼技術總監的橋本善久先生(現在已經是SQUARE ENIX公司CTO了),同為程序員的巖崎浩先生(和橋本一起去了SQUARE ENIX)和荻野晃史先生一共三位。還有,橋本先生在2008年召開的遊戲開發者會議CEDEC2008以及2009年在美國召開的GCD2009上登臺做了關於[索尼克WA] 演講。

首先想整理一下[索尼克WA]的3D遊戲圖形的基本信息。主人公索尼克在本作遊戲中的模型大概是18000多邊形,在過場動畫(CutScene)中大概是26000多邊形。還有,代表性的NPC角色、村民大約是4000多邊形,場景中大量聚集的普通村民大約是1800多邊形,人形的敵方機器人大約是5000多邊形。在1991年的16位機中以Sprite(注:繪製方式)角色首次登場的刺蝟索尼克,現在居然成了要用18000多邊形的角色,對於老玩家們來說真是深有感慨的信息啊!

[索尼克的特寫截圖和線框截圖]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

[敵方角色的特寫截圖和線框截圖]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

構成1個舞臺的建築物等背景物體的多邊形總數,雖然說不同的舞臺構成數量也不一樣,但大體上是400萬到500萬左右。那麼1幀裡,背景就是10萬到13萬。

【千里馬肝注:400萬是指整個場景,10萬是指同屏。】

視頻幀率在設計上雖然設定了每秒30幀(30fps),但Xbox360版和PS3版由於各種原因在實現上有微妙的改變,Xbox360版中很多的情況是因為會超過30fps所以固定設定為30fps,而PS3版因為幀率的上下幅度很大,所以沒有固定30fps而是用可變幀率來實現。

[實際操作場景和線框截圖]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

世嘉有限公司第二CS研究開發部 第一程序部,遊戲總監 橋本善久先生

【西川善司】[索尼克世界大冒險]圖形講座

世嘉有限公司第二CS研究開發部 第一程序部,程序員 荻野晃史先生。

渲染分辨率上,PS3版和Xbox360版都把880x720點作為基礎分辨率,在顯示時採用了縮放(Scaling)來擴大的方式。還有,Xbox360版和PS3版的抗鋸齒(anti-aliasing)都應用了2x模式的MSAA(MultiSample Anti-Aliasing)。根據與視點的距離使顯示對象的多邊形遞減的LOD(Level Of Detail)系統是怎樣進行實現的呢?

【千里馬肝注:兩大主機都是以720P和1080P為高清賣點,這裡為什麼選880x720的分辨率?880/720=1.22222...好多2,即不是16/9=1.77777...也不是4/3=1.33333...,唯一能想到的理由是節省帶寬,但是選880的原因還是不清楚,非要說一個理由的話就是2了……】

橋本先生[關於LOD,幾乎什麼都沒有做。雖說如此,在索尼克WA的製作中,幾何體(geometry)方面的負荷幾乎沒有問題。雖然只要準備用在LOD上的高模和低模(就可以實現),但考慮到成本與效果的對比,還是沒有在實作中採用。在索尼克WA上稱作LOD的系統,就是紋理的mipmap方面吧。]

【千里馬肝注:橋本哥哥你是在開玩笑吧……】

荻野先生[因為PS3版使用了Playstation Edge, 所以在幾何性能上不會有問題。PS3的主內存的容量因為很緊張,如果導入LOD功能的話,反而需要考慮低模佔用的內存問題了,最後結果是什麼都不用做就能解決真是太好了(笑)。]

到了本時代主機,最近幾年的遊戲項目中感到多邊形數有了很大的提高,關於幾何體負荷緊張的傳聞也很少聽到,雖說如此,最近流行起來的讓無數雜兵角色在同一場景內登場的三國無雙]和[喪屍圍城]那類的遊戲作品,現在也同樣有必要導入LOD系統。像[索尼克WA]那樣同時登場的角色數量雖然並不那麼多,但粗略計算了一下近期的遊戲作品,沒有使用LOD系統的案例也變多了。

關於物理模擬,採用了[HAVOK5]。HAVOK Physics,主要利用在活動角色之間的碰撞檢測和破壞時的碎片散亂等行為控制。在角色和背景的交互時的姿勢控制的IK(Inverse Kinematics:逆向動力學)處理上使用了HAVOK Animation。在主要事件場景等的表演上,也要利用動作捕捉。雖然有些任性還是要說,當初作為Sprite角色登場的索尼克,如今也要用到IK和動作捕捉了。

還有,這次為了[索尼克WA]而開發的引擎,使用了[刺蝟引擎](Hedgehog Engine)的名稱,今後也預定作為面向PS3用和XBox360用的索尼克系列的標準開發庫來使用。

引擎的開發是從2005年中旬開始,遊戲內容方面的開發是在2006年末開始, 引擎的開發雖然是從5人左右的小規模團隊開始,但在開發最繁忙的時期,程序團隊大約到了40人,設計師和藝術家大約80人,包括其他的計劃師,導演,製作人,聲音等總計到了一百幾十人的規模。那意味著,[索尼克WA]是個相當大的項目。

[HAVOK5]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

HAVOK Physics,主要利用在活動角色之間的碰撞檢測和破壞時的碎片散亂等行為控制

【千里馬肝注:注意上圖中sonic的左腳是踩在上面的臺階,右腳踩在下面,這就是IK的優點。同樣下圖中,如果不使用IK,就很容易讓人感覺角色是浮在空中,而沒有緊貼地圖。】

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

角色和背景的交互時的姿勢控制的IK處理上,要利用HAVOK Animation。

把遊戲圖形做出皮克斯(Pixar)CG電影的環境感

【西川善司】[索尼克世界大冒險]圖形講座

經常可以聽到[在3D遊戲圖形中把 Pixar touch(皮克斯畫風)作為目標]的發言。Valve的[Team Fortress2]的視覺也是為了能再現Pixar touch,設計並引入了獨特的Lighting技術。

[索尼克WA]的視覺,並不是模仿現實世界那樣的[照片真實系]的視覺效果。但是,也不是純粹的卡通系,而是在影像中漂浮著獨特的環境感,確實是獨特的視覺效果。

如果從揭穿這個秘密開始,那可以說就是在[索尼克WA]中採用的[實時GI]的效果。那麼說,打算引入這個實時GI技術的契機是什麼呢?

橋本先生[本世代的遊戲圖形雖然感覺在Shader上變的豐富了,但平行光源(太陽光之類的落在場景全體上的光源),點光源(局部性的照射全方位的光源)沒有被直接照射的位置的陰影都被省略了。開始想到“這樣有些欠缺”,於是就成了契機。還有,之後作為長篇CG電影製作工作室,以再現出著名的皮克斯作品的氣氛作為目標,推動了實時GI的開發。

在現實世界中光會在空氣中散亂而擴散,被光直接照射到的對象本身會讓光反射照到其他對象上而成為2次光源。在現實世界中,這樣複雜的反射和擴散會同時多次發生,這個就是真正意義上的環境光(Ambient Light)。

把這些用計算機圖形學來歸納就是[輻射度(Radiosity)]和[光線追蹤(Ray Tracing)]。把Radiosity和Ray Tracing在本世代機的遊戲圖形上實現,GPU的性能還不夠。因為,要設計出用模擬來實現這個的方法,而且要考慮在實時中實現。

開發組為了實現在實時中使用[GI],採用了把實時GI**成兩個技術進行實現的策略。1個是對應不能被破壞或無法移動的背景物體等靜止型對象的GI。還有第2個是對應移動或肢體彎曲角色的GI。

【西川善司】[索尼克世界大冒險]圖形講座

在現實世界中的全局照明(Global Illumination)案例。雖然作為實際形態的光源,只有從辦公室天花板的熒光燈,但這個光經過紅色的文件夾的反射, 這個紅色的文件夾就作為2次光源把白色的刺蝟紙偶照成紅色。如果直率的說,所謂的全局照明就是間接照明和互相放射的照明現象。

【西川善司】[索尼克世界大冒險]圖形講座

CG中再現的全局照明的案例。作為實際形態的光源,雖然只是天花板照明的場景,但光經過左右的紅和青的牆的反射,這些就變成了2次光源,很明顯的把房間中的對象照上了淡淡的紅色和青色。

[索尼克WA]的GI技術(1)----對靜態對象(Object)的GI

靜止的對象GI,採用了事前離線計算,把計算結果繪製(烘培)到紋理(Texture)的方法。這種使用事前計算的GI信息烘培出來的紋理,在開發組內被稱為[GI紋理](GITexture)

在遊戲的實時渲染中,把這個GITexture作為光照貼圖(Light map)來使用。也就是說,作為基本技術,因為光照貼圖不會改變,所以渲染也不會有額外的負荷。

那麼,雖然是[反過來和光照貼圖沒有區別],不過,GITexture的生成,可以配置場景的背景對象和小道具/大道具對象,或是在大局上進行天球光源和電燈類局部照明等等全部光源的設定。這個就是在GITexture上計算的一個單位(為了方便說明把這個稱為GITexel )

[GITexture]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

顯示了GITexture的特殊截圖。一旦認真看,就應該會看到斑斑點點一樣的東西。這些就是GITexture的計算單位。

如果從這些GITexel開始向適當方向發出射線(Ray),就會通過提前計算來獲得每個GITexel是由什麼顏色的光照射到。順便說一句,發出的射線雖然會被遮蔽(或者是和其他對象有碰撞),還有反射或擴散等情況,但開發了出現這些狀況計算也不會發散的方法。

關於原理簡單的解說一下。首先,從每一個GITexel上發射有限個射線(Ray),就可以發現射線碰撞目標的對象上的GITexel。這時如果入射角度和碰撞對象的法線越接近,也就是用越接近直角的形態碰撞,線的密度就越高,也就是用強光傳遞,要從全部的GITexel開始進行這個計算。進行了這個,場景內的GITexel單位的光傳遞網絡也就生成了。

[GITexture2]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

首先,進行光的網絡的生成(第一階段)

在這個時候雖然還沒有進行lighting,但要考慮貼在多邊形上的畫像紋理的內容,比如處在貼了畫像紋理的紅色Texel(紋素)的位置的GITexel,就會反射紅色的射線。這些在實質上實現了GI效果的特徵 [一旦紅色物體被光照射,這個就會變成紅色的2次光源]。

這之後,轉移到了實際的lighting計算上,作為光源來使用的,有平行光源(Directional),點光源(Point)和天球光(Sky)三種類型。配置了在遊戲中登場的這三種光源後,進行計算。從這些光源發出的光,要預先計算是到達了哪個GITexel上(作為direct light來lighting)。這相當於之後的GI計算的光量(light energy)的初始值。

[GI Texture 3]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

因為貼圖紋理的Texel尺寸和GITexel的尺寸不同(譯者注:通常最後生成light map尺寸會比較小,也可以通過“texture atlas”合併到一整張圖上),尋求平均值的處理就很有必要了,不過在[索尼克WA]中省略了這個計算。[索尼克WA]中,採納的是和GITexel中心重疊的畫像紋理所代表的Texel顏色。

作為光源用到的有平行光源,點光源,天球光三種類型

在實際的場景中配置了全部的光源,正如之前描述的光的傳遞網絡那樣印象

【西川善司】[索尼克世界大冒險]圖形講座

計算流程

1對各GITexel, 通過光的傳遞網絡對全部直接光進行照明計算,計算結果放到buffer A裡

2 對各GITexel,通過光的傳遞網絡對全部間接光進行照明計算,計算結果放到buffer B裡

3 計算各GITexel的光量(light energy),就是把buffer A和B的內容合算,

4 為了下一個循環的反覆計算,要計算從各Texel發出的光量 (用[光量(light energy)的總數]X[每個素材的反射率]X[係數]÷[和這個Texel連接的GITexel數]來計算)

從(1)到(4)是1次運算裡的一個循環。

【trace者注:如上圖所示,1~4循環計算1個微平面的入射光能量總和(作為這次的光照計算結果)與微平面的發出光能量(提供給下次計算使用),當所有微平面都進行1~4後,一次光計算完成。】

要點是為了不會被計算順序影響,各計算週期用雙緩衝來計算。把這些反覆進行,光就會彈射(發射的射線開始反射)後多次反射。順便說一下,把(1)到(4)只進行1次運算,只相當於直接光的照明,所以就沒有GI意義的結果。是根據開發組所說,感覺(反射)3次有些不夠,9次有些過多,4到6次左右比較合適。

【千里馬肝注:參考Radiosity文獻,

原文:http://freespace.virgin.net/hugo.elias/radiosity/radiosity.htm

譯文:http://dev.gameres.com/Program/V ... ity_Translation.htm

注意到文中提到的patch,與本文中的GITexel,以及配圖中的GI microfacet是一個概念,目的是通過建立一個單位,來反映周圍環境對它,以及它對環境的影響,然後從畫面上就會有Global的**感。那麼就像計算光照貼圖一樣,與其從光線發射ray到物體,不如從物體最終貼圖上的texel來發射ray,通過控制texel的面積來決定GI的效果和所需的計算量。】

【西川善司】[索尼克世界大冒險]圖形講座

世嘉股份公司,第二CS研究開發部,第一程序部,程序員巖崎浩先生

巖崎先生[設計上,GITexel的計算單位是可變變化的,大體上一個邊是2釐米到3釐米左右。白天的場景即使粗略些也不顯眼,不過,夜晚的景色有路燈等的照明帶來的GI,非常容易看出來,所以在調整上要多用心]

還有,發射的射線(ray)碰撞到對象如果是有透過性材質,就會正確的透過,透過的材質顏色也要加上進行處理。舉一個易懂的例子,把非洲作為主題的瑪祖利地區的帳篷上的房簷。只要看房簷的內側,就應該會明白帳篷的顏色在淡淡的擴散開。

設計上,GITexel發射出的射線數量雖然是能夠變化的,不過[索尼克WA]的開發中,很多情況是使用250左右個射線,發射方向雖然是從基點向全方位的放射狀,但要作出在垂直方向(法線方向)上比較稠密,在水平方向(切線方向)上比較稀疏。即使這樣,這個GI計算要對應整個舞臺,而且還要在GITexel上發射250個射線,計算量是很龐大的。

據說這樣GITexture的計算時間就會是數十分之一,最多可以縮短到一百分之一,一個舞臺的計算就能縮短到1天到兩天的左右了。

[GITexture 4]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

生成的GITexture圖例

橋本先生[為了這個GITexture計算用的分佈處理,在組內擴充了幾十臺PC。要是這樣電力就不夠用了,那麼就要使用某種特殊的電源,電力不足時把其他不重要工作崗位的電源開關斷開(笑)。結果電力增強的工作就省去了]

【西川善司】[索尼克世界大冒險]圖形講座

MI-TRACER的畫面

[索尼克WA]的開發中開發了各種工具,這當中,生成GITexture的工具被命名為[GI-TRACER]。還有,對應GITexture的再現細微凹凸用的法線貼圖生成,開發了名為[MI-TRACER]的工具。MI是組內創造的詞[Micro Illumination]的縮寫。

基本的GITexture用GI-TRACER作成,為了玩家接近後可以觀測到細微凹凸,要對對象的紋理使用MI-TRACER。MI-TRACER的具體應用,主要是石壁的細微凹凸等方面

計算時間也縮短了,由於生成的GITexture可以放入到Atlas Texture(把很多零散的GITexture放入到一張大的Texture裡,減少了浪費),所以在紋理容量上實現了節省。不過最終是保存在實際運行的內存(On Memory)裡,怎麼都會變大的。

基於舞臺,一個舞臺周圍的GITexture的總尺寸,在小型舞臺上也要200MB左右,在大型舞臺上要到達1GB左右的程度。把這些全部保存在顯存並不充裕的PS3和XBox360上是絕對不行的。那麼通過同步索尼克的移動,把GITexture從media裡(如果是PS3就會是藍光,如果是XBox360就是DVD-ROM,在硬盤中安裝的情況就是硬盤)動態Streaming讀取的方法。

巖崎先生[作為代替的,遊戲中的BGM和Sound是全部放入到運行內存裡的,雖然和Sound相關的有些容量限制,不過也分配了40MB左右。1個舞臺裡使用的BGM和Sound的數量是足夠用了。因為索尼克的秒速是100米以上,GITexture的讀取是否能趕上讓人有些不安,不過設計了對應GITexture的Streaming讀取,結果完全沒有問題。]

下面的截圖,是場景只應用了GITexture材質紋理,沒有GITexture只進行正常Lighting,在正常Lighting上應用了GITexture的完成畫面的比較。

一旦沒有GITexture,再看遊戲形態的影響,那完全就是對象物體(Object)被放置的感覺,一點沒有作為場景的整體感。還有作為映像的立體感和遠近感看起來也缺乏。

一旦加入GITexture,場景裡對象的立體位置關係就會在視覺方面容易把握了,氣氛和觸感更容易作為知覺被傳達。

[GITexture 5]

【西川善司】[索尼克世界大冒險]圖形講座

只有GITexture

【西川善司】[索尼克世界大冒險]圖形講座

沒有GI只有通常的照明(感覺很多一般的遊戲畫面就這樣)

【西川善司】[索尼克世界大冒險]圖形講座

附加了GI的完成鏡頭

還有,GITexture是mipmap的構造(為了適用在遠離視點的場所,把低分辨率的紋理預先生成技術),讀入的GITexture中,包含了靠近視點位置用的高品質GITexture到遠離視點位置的低分辨率GITexture。 遊戲中跑動時會動態讀取GITexture,也就是GITexture發生切換,為了不會使外觀看起來很奇怪,要認真的調整。

[GITexture 6]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

GITexture的mipmap level通過顏色區分的可視化畫面(level高低按紅->綠->藍)

還有,[索尼克WA]的發售後,追加的下載內容(DLC)發佈了,作為隱藏內容,也收錄了本篇中GITexture的高品質版本。「索尼克WA」的用戶,一定也要得到追加DLC啊,把正規舞臺玩過後,玩過正規舞臺後,就可以看出GITexture的品質差異了。

[GITexture的品質差異]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

上段是發售版的GITexture品質,下段是DLC版的GITexture品質。

[索尼克WA]的GI技術(2)----動態物體對象的GI

【西川善司】[索尼克世界大冒險]圖形講座

半球Lighting的概念圖,是通過頂點的法線向量和天球的角度關係,來決定天球色和地球色的混合程度,設定環境光。

GITexture的效果雖然很好,但因為用的是預先計算的方法,所以不適用於活動的物體上。一但要實現的話,動態角色的陰影,就會和背景沒有整體感,而是感覺在漂浮著。具體的,對於背景的建築和小道具或大道具物體對象,通過GITexture做成了間接光和互相反射來表現,而動態角色只能從動態(或靜態)光源的直接光進行照明(Lighting)。

開發組感覺在本世代主機的3D遊戲圖形上,適用於動態角色的GI手法是不可缺少的,一直致力於這個課題。動態的簡易GI方法、GI模擬等幾個代表性的手法已經實用化了。

【千里馬肝注:文中一直在強調“本世代”和“次世代”,通常上市2年後的主流主機會被看作“本世代”,而下一代的概念機或剛上市的新主機,因為機能要強於當下的主機,所以被稱作“次世代”。所以並不具體指某一型的主機,而是具有時代的象徵。例如:DC和PS2相對於SATURN和PS。】

最簡單和古老的就是設定固定的環境光。是從PlayStation時**始的手法,把一個區域內的光的顏色設定成一種指定顏色的手法。但是所謂的[環境光]是徒有其名,當初,因為只能從光源直接照明生成陰影,一些需要過暗的場合,就要使用這個技巧來達到“陰影的提高加固”的目的(就是指定一個黑色環境光區域,彌補暗度不足)。

這些進化後的就是[半球Lighting]的技術了。這個是把場景提前計算的GI信息,適當做成有兩個方向的環境光,對活動角色追加Lighting的手法. 把前面描述環境光的概念做了擴展,在環境光上擁有兩個方向性的手法,把這兩個方向的環境光根據角色在場景內的位置做切換,就可以把這個場景的各位置局部間接光和相互反射表現出來了。

這個半球Lighting的技術, 在PS3的[合金裝備固體4(METAL GEAR SOLID 4」)]中也採用了。但是在[MGS4]的案例裡,是通過關卡設計師手工的放置半球光源,依賴高超的職業技術來實現的。無論如何,半球lighting都是很經典的手法,

橋本先生[雖然做了各種各樣的討論,不過我們決定把半球lighting**後的概念導入。在組內是稱為[light field]的技術,是比半球Lighting的兩方向環境光,在空間內自動的計算出更多方向環境光的配置。

操作索尼克在場景內走動的話,地面的反射會使得索尼克身體的下方會淺淺的受到地面顏色的影響。一旦接近有顏色的牆壁,索尼克的側面就會受到從那面牆來的間接照明,淺淺的加上牆壁的顏色。頭上生長茂盛的花的角色,受到陽光的直射時,也會把花的顏色淡淡的染上。如果作為畫面整體來看,因為GITexture背景和大小道具物體對象的陰影都符合GI lighting,即使對活動物體也可以進行。

[light field]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

沒有light field(一般的遊戲圖像就是這感覺)

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

只顯示light field的畫面

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

應用light field後的完成截圖

[索尼克WA]採用的[light field], 簡單來說就是在那個場景的空間內在適當的距離間隔裡, 配置出擁有方向性的環境光。在[索尼克WA]的實現中,各環境光配置成了8個方向發光的方射狀配置。感覺上來說,就是在舞臺空間裡的適當間隔配置了向8個方向發光的光源。

[light field的模式圖]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

light field的模式圖。在這個圖裡,被設定的環境光雖然只是個點,但有每個點向8個方向發光的印象

【西川善司】[索尼克世界大冒險]圖形講座

和Valve的Ambient Cube概念很相似的[索尼克WA]的light field。

把這張圖用簡單案例說明的話,就是將角色用包圍自己的8個環境光做Lighting。雖然實現上不同,但概念上和Valve在[Half-Life2]上採用了[環境立方體](Ambient Cube),以及[輻射照度體] (Irradiance Volume)可以說是很接近的。在[Half-Life2]中,根據角色的平均體積,用120cmW X 120cmD X 240cmH的大小把空間分割開,對於每一個區域(Volume),加入怎樣的光(光是否出現),都要用離線提前計算出數據表。實時渲染時,每個角色要參考所在位置的Volume,取得進入的哪個Volume的6方向的光,把這些作為擁有方向的環境光來處理。想法和[索尼克WA]的light field很接近。

橋本先生[在索尼克WA中, light field的各點作為數據雖然擁有8個方向的環境光,但因為Pixel Shader有Constant寄存器的關係,和XYZ的直角6方向換算後,就形成了Lighting。對於跨過8個light field環境光的案例,把最近的多個light field採樣後根據權重計算平均,再進行後面的Lighting。

這個light field的設定,波及到了舞臺的全體,因為設計師要用手工操作設定這些,所以花費了過多的時間,在正確性方面也留有些擔心。那麼在[索尼克WA]中,用前面說的到GI-TRACER,可以把這個light field提前計算。

巖崎先生[生成了背景和大小道具對象使用的GITexture之後,使用這個GITexture的場景的light field值也要算出來。light field的大小雖然依賴於場景,大體上把2米到3米為基本,感覺物體很多被配置在建築物的附近也許會稍微精細些。但是相鄰的light field有時同樣缺乏變化,因為會歸結為一個來處理,所以實際各light field之間的距離是可變長的。]

[light field的區域圖]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

把light field的區域做成可視化的圖片。大概可以看明白light field可以用不同的大小來設定吧。

light field的採樣不能在活動角色的多邊形面上做處理,而是通過各角色設定好的代表點方式進行處理。這個代表點高度一旦過高,就會影響從下方來的光源,會影響到角色的上半身發生不協調,所以要根據每個角色進行適當的調整。還有,在索尼克的世界觀中,沒有多少巨大的角色登場,不用考慮在縱方向上跨過多個light field的處理

橋本先生[其實根據材質的不同,不只是法線方向的light field,也要參考和視線向量相對的反射方向的light field。由於這樣做,對面的環境光在浸透後也可以在這邊溢出,出現微妙感覺的陰影效果]

把逆光滲透到這邊的一樣的表現稱為邊緣光(Rim Lighting)表現。邊緣光表現,通常是和光源對視時一樣的,大多情況是在容易看到逆光時用來作追加高光的效果。[索尼克WA]中,也要在逆光位置的light field上進行邊緣光的表現。因為這樣做,就好像場景的間接光中也能表現出像是表面散射那樣的淡色陰影和透明感。進一步說,能夠表現出活動角色在哪個場景中融入GI的感覺,特別是這個效果在開發組裡稱之為[GI邊緣光]。

GI邊緣光(Light Field Rim Light)的概念圖

【西川善司】[索尼克世界大冒險]圖形講座

[GI邊緣光]

【西川善司】[索尼克世界大冒險]圖形講座

無邊緣光

【西川善司】[索尼克世界大冒險]圖形講座

只有GI邊緣光

【西川善司】[索尼克世界大冒險]圖形講座

完成畫面

巖崎先生[雖然也討論過把這個light field用球諧波函數(SH :Spherical Harmonics)來實現的方案,但考慮使用的內存容量和得到的效果平衡時,很清楚這是沒有意義的,所以不再採用了。我們實現了擁有8個方向的環境光,即使不使用SH也可以得到足夠的品質。]

球諧波函數作為把分佈在全方位放射狀的數據值不可逆的壓縮手法,在3D圖形的應用上發展著,但即使使用球諧波函數第二項,也需要9個必要的係數,所以想要實現的(場景)主題和數據量,以及不能很好的計算平衡性,還是放棄掉比較好。[索尼克WA]的情況中可以說正是那樣吧。(閱讀Real Time Rendering 3rd P320 獲得更多資料)

[索尼克WA]因為有很多跑著穿過的動作鏡頭,不留神的話,也許就會有用戶沒有注意到這個GI系統的優點。雖然對遊戲的進行是沒有意義的,但還是希望讓索尼克接近遊戲世界裡的各種背景物體,以確認這種獨特的環境感的Lighting。還有,在過場動畫(實時Movie場景)和村子的任務場景裡,因為能有效的觀察,應該可以同時享受村內探索和探索GI系統的效果。

[完成場景]

【西川善司】[索尼克世界大冒險]圖形講座

背景只有GITexture的狀態

【西川善司】[索尼克世界大冒險]圖形講座

索尼克只有light field的狀態

【西川善司】[索尼克世界大冒險]圖形講座

GITexture的靜止影子

【西川善司】[索尼克世界大冒險]圖形講座

完成畫面

[索尼克WA]中HDR渲染技法

[索尼克WA],沿襲了近年來3D遊戲圖形的趨勢,當然,也採用了HDR(High Dynamic Range)的渲染。特別是[索尼克WA]幾乎全部的場景都在室外,而且要用讓玩家能容易區分[晝夜]時間變化的形態來表現,特別是要活用前面提到的HDR渲染的效果。

在PC上說起HDR渲染,現在從16位的浮點的FP16-64位buffer雖然成為了標準的定義,但在本世代家用機很多是採用了8位整數的int8-32位buffer。上次報道的[METAL GEAR SOLID4]也是那樣。本世代的家用機的GPU,XBox360和PS3都是用128位的總線連接顯存,只有PC的主流GPU的256位總線一半的帶寬,很多情況會作出這樣的選擇是因為填充率不夠。

巖崎先生[索尼克WA的HDR渲染,是整數8888的int8-32位buffer配置, XBox360和PS3都是共通的。把0.0-0.2在0-255上分配,就成了所謂的疑似HDR渲染。雖然在開發初期試著使用了FP16-64位,但性能太緊張,就做成了現在的配置。]

[HDR渲染表現]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

上段關閉HDR渲染表現,下段開啟HDR渲染表現

這個正好和[女神側身像2]等的實現方法相同。這個方法和用通常的LDR(Low Dynamic Range)渲染,把0.0-0.1的亮度分配到0-255上相比較,雖然分辨率只有一半是個弱點,但在[索尼克WA]中,遊戲時基本上沒有馬赫帶((Mach bands)的現象。

橋本先生[索尼克WA的情況,沒有那種高亮度的震動場景,用最大輝度2.0已經足夠了。馬赫帶不顯眼,大概是因為表現單調的物體做的比較少的原因吧。]

[索尼克WA]的HDR渲染,雖然是用模擬方法實現,但因為亮度2.0作為“真實”HDR渲染,渲染結果顯示時,在適當的階調範圍內,進行toon mapping的工程就有必要了

比如說,進入橋樑下面等昏暗的地方,就會慢慢看到暗處的階調,面向太陽的景色就可以看到白光溢出。反過來,一旦從暗的地方出來到明亮的地方,光溢出位置的細節就可以慢慢看到。在玩遊戲時,注意到這樣的HDR渲染Toon Mapping的表現效果的人大概很多吧。

[Toon Mapping]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

從明亮的地方到暗的地方,還有從暗的地方到明亮的地方。Toon Mapping的效果很受注目。

[索尼克WA]的Toon Mapping處理,首先獲得當前frame的平均亮度,再把這個值用適性階調來修正, 是一種很正統的技術。但是,在地圖內特定的地點,需要配置專用的bounding box,實時的計算平均亮度,再加入補正做調整。

【千里馬肝注:HDR不是一個可以放之四海皆準的渲染手法,容易過暗或曝光過度,如何能適配不同場景不同地點,就需要人肉了。】

橋本先生[這些都是為了容易操作遊戲的考慮,為了讓玩家清楚的看到場景的表現,雖然還有許多理由,不過調整還是必要的啊。原本設計師描繪的紋理,在設計時用適當的顏色來著色,但這些在階調等級調整中,也有可能會出現那種不能恰當髮色的情況。]

HDR渲染中的經典效果有高亮度溢出表現[bloom]和[star]的表現。在[索尼克WA]中,採用了本世代中成為趨勢的縮小buffer的實現。具體的把frame中的高亮度部分在多個不同低分辨率的buffer中抽出,對於這些應用高斯路徑,再用bilinear-filter擴大為統一尺寸進行合成。Star效果也是在低分辨率buffer中抽出高亮度部分進行旋轉或壓縮,把這些展開後合成,就是把高亮度部分放射狀伸出的手法了。[索尼克WA]中Star表現的放射方向是4到7個,主要用在夜晚的場景中。

[後處理(post process)效果]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

夜晚的場景,很容易看明白Bloom和Star等HDR渲染帶來的後期處理效果。在玩遊戲時那些效果也很受注目!

夜晚索尼克的[WereHog]毛皮(Fur)的秘密

【trace注:這個詞來源於WereWolf(狼人),Hog有刺蝟的意思,所以WereHog是狼化刺蝟的意思。】

要說起[索尼克WA],索尼克的變身是個熱門話題。本作中索尼克到了夜晚就會變身成狼人風格的[WereHog]。一旦變成這WereHog,就成了四腳爬行著跑,能用特殊的手臂伸長動作。迄今為止的索尼克系列中都不曾看到的獨特的遊戲操作雖然讓玩家很享受,從3D遊戲圖形的觀點,WereHog的毛髮濃密的姿態很勾起人的興趣。

[索尼克WA]中變成WereHog時的毛皮表現,全都是使用了[Fur Shader]。Fur Shader雖然有幾個手法,但WereHog上採用的是把毛的斷面圖做成紋理,在3D模型的表皮多邊形上疊加多層的手法。採用了所謂的[Shell方式的Fur Shader]。

Shell型的Fur Shader也使用在[旺達與巨像](SCE2005)的巨像的毛皮表現和[失落的星球](卡普空2007)的防寒服的領子的毛皮表現中,因為是比較主流的手法,看到的機會也很多。

【千里馬肝注:HD復刻版[旺達與巨像]已登陸PS3。失落的星球2也登陸了PS3。】

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

巖崎先生[毛皮(Fur)的層數大概是15層左右。開發時,設計師可以調整層數和毛的密度等。為了應用在毛皮上,把Shell多邊形設置為在引擎裡動態生成的結構。所以在建模階段的角色是沒有多層外皮多邊形的。事件場景和遊戲中,層數是變化的,在事件場景中角色很多情況會大幅度增加,所以層數就要多做。

巖崎先生[毛皮的層數大概是15層左右。開發時,設計師製作了層數和毛的密度等都能調整。因為適用了毛皮的外皮多邊形在引擎方面作為動態型生成的結構,所以在建模接的角色中沒有多層外皮多邊形。事件場景和遊戲中,層數是變化的,因為事件場景中角色的特寫鏡頭多層數也會比較多。

[Fur Shader]

【西川善司】[索尼克世界大冒險]圖形講座

毛斷面紋理的圖例

【西川善司】[索尼克世界大冒險]圖形講座

創作階段沒有毛皮的WereHog

【西川善司】[索尼克世界大冒險]圖形講座

調試畫面中登場的沒有毛皮WereHog

【西川善司】[索尼克世界大冒險]圖形講座

應用上毛皮的WereHog

因為[旺達與巨像]中是3到6層,[失落的星球]的防寒服上是8層左右,WereHog皮毛的Shell會相當多。因為 “長毛”WereHog的身份,在這裡要強調處理。

還有,這樣做出的[動物毛皮]的表現中,使用Shell方式來表現毛皮在密度上會不足,還有因為位置關係,頂部附近的毛感覺密度不足,把描繪了側面毛的紋理應用到多邊形上再植入角色,和Fin類型的毛皮共通使用的情況很多。

[Fur Shader 2]

【西川善司】[索尼克世界大冒險]圖形講座

NVIDIA的演示。沒有毛的模型

【西川善司】[索尼克世界大冒險]圖形講座

只有Shell方式的Fur shader

【西川善司】[索尼克世界大冒險]圖形講座

Fin類型的毛皮

【西川善司】[索尼克世界大冒險]圖形講座

最終效果

巖崎先生[Fin類型雖然是我們在開發階段就嘗試加入的技術,但因為[索尼克WA]的WereHog使用的Shell方式的毛皮層數很多,沒有覺得毛的密度不足,就沒有采用(Fin類型毛皮)]

此外,WereHog的毛皮表現,也加入了其他細緻的有趣方法。那就是在毛皮的斷面紋理上,提前加入了毛的傾斜信息,把這個斷面紋理應用到各層的shell多邊形,這個傾斜情報就會產生挪動效果。根據各層上微妙的毛斷面紋理偏差,實現了毛沿著一個方向倒著生長的表現。這個就是[毛的樣子]的表現生成。

[Fur Shader 3]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

關注WereHog的毛的樣子,因為Fur Shader的方法毛倒豎著

注意WereHog在手臂周圍的毛的方向和手腕周圍的毛方向是不同的,這些就是由這種方式來實現的。

橋本先生[這以外,還在毛梢上作出鏡面一樣的陰影處理,還有內側的下層Shell的周圍因為被遮擋,所以加入了毛梢明亮一些,毛根會變暗的陰影調整。[索尼克WA]的毛皮雖然感覺相當好,但是,會有在景深的表現產生模糊時,毛也會變得模糊就不自然的問題。這個可能是shell方式的Fur Shader的弱點吧,應該如何解決是今後的課題啊]

[景深(DOF)效果]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

上圖是關閉景深效果。可以很清楚的看到毛的樣子。下圖是開啟景深效果。毛和背景一起模糊了。

[索尼克WA]圖形的其他看點

【西川善司】[索尼克世界大冒險]圖形講座

Valve開發的Half Lambert Lighting

在[索尼克WA]中,有很多有變化的人類角色作為NPC登場,在lighting上,應用了由Valve實用化的Half Lambert Lighting。

Lambert Lighting用在擴展反射的陰影處理,不依賴視線方向,由光源入射方向和表面方向(法線)計算出陰影的處理方法。這個技法使用[位置的亮度,與這個面的法線與光的入射方向夾角θ的COSθ值成比例]的[Lambert餘弦定律]來定義,但實際上一旦使用這個lighting, 明暗就會出現相當強烈區別的傾向。

VALVE為了得到與GI相似的擴散反射表現,使用了在這個劇烈變化的Cos Curve加入了bias來提升黑暗部分階調的方法。Lambert餘弦法則的Cos Curve(-1,1),乘以 “1/2”變成了一半(-0.5,0.5),加上 “1/2”(0,1)並平方,用這個平緩的Curve做陰影處理。被稱作[Half Lambert Lighting]。

這個Half Lambert Lighting,於[索尼克WA]的GITexture和light field的模擬GI配合的很好,Half Lambert Lighting穩定的階調錶現加上從light field來的淡色陰影的調和,確實醞釀與 [皮克斯]相似的視覺感。

[Half Lambert Lighting]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

左圖是通常Lambert Lighting的測試截圖。陰影過濃,人的皮膚會發黑不自然。右圖是在半成品中使用的Half Lambert Lighting的畫面

還有,為了能讓人更容易看到法線貼圖產生的細微凹凸,從視點位置打了淡淡的光[Camera light].由於這個手法,即使只是從起點稍微移動,也容易看出細微凹凸的高光變化和細微凹凸感。雖然是細小的技術,但在光量少的地方,通過法線貼圖來生成細微凹凸表現,無論哪個工作室都會覺得這是辛苦的部分。這個Camera light的技術雖然很單純,但效果很好。

[Camera light]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

上面是關閉Camera light。下面是開啟Camera light。在牆壁和地板的法線貼圖上出現高光,看起來更立體。得到了接近電影的照明效果。

【千里馬肝注:小trick來了,雖然是卡通風格,但也使用了normalmap來表現物體的凹凸,但在遊戲中觀察時,往往不像使用模型查看器中那樣,近距離而且會特地在物體正面打一盞燈來觀察。所以本作使用了所謂Camera light的方法,不論實際光源離物體多遠,角度多麼接近平行,但始終在Camera處有一個light來影響,那麼“面對Camera或者稱作法線垂直於Camera、畫面近距離”的物體的normalmap就更加醒目了。】

[索尼克WA],雖然不是以和水面的互交作用為主的遊戲,但由法線貼圖生成的輕微水波效果,由Fresnel反射進行水底和水面的鏡像的控制等,做出了相當好的水面表現。

巖崎先生[當初開發輕微水波時使用Parallax Mapping,實現了相當立體的微波表現。但是,GPU的負荷也出了問題,以決定由現在的法線貼圖來表現。

[水面表現]

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

【西川善司】[索尼克世界大冒險]圖形講座

[索尼克WA]的水面表現很美。Fresnel反射的效果和動態形角色的鏡像都會很好的顯現,試著去觀察吧。

附加---PS3版和XBox360版的辛苦開發

【西川善司】[索尼克世界大冒險]圖形講座

一邊畫圖一邊說明的橋本先生

雖然在最後的遊戲規格上,PS3版和XBox360完全沒有差別,但在開發階段有著各自特有的辛苦。

首先,XBox360版的DVD媒體的容量緊張。要是除去系統等佔有的容量,遊戲內容能利用到的是2層媒體大約6.2GB。把本世代的高畫質遊戲內容塞到一張DVD中是相當辛苦的。還有,XBox360因為發售了沒有HDD硬盤的主機,所以必須做出只用DVD就能運行,沒有使用把壓縮的內容在HDD上展開的方法。微軟發表XBox360時,主張[次時代遊戲媒體不是光盤而是網絡],雖然採用了不是次世代光媒體的DVD-ROM,但那個決定對開發方沒有給出很好的影響。

XBox360的GPU因為是3個PowerPC970互換Core讓兩個hardware thread啟動,最多可以同時運行6個線程。[索尼克WA]上,線程0到5的6個線程中,按線程0是主線程,線程1和2和4是HAVOK,線程3是控制動態加載使用,線程5是數據管理處理來分配的。

因為也有XBox360版先登場的關係,遊戲製作沒有對XBox360版進行基本設計,而是使用同時移植的形式來做PS3版的開發。

荻野先生[PS3版的開發很困難,在XBox360已有程序庫中的機能和函數都要對應移植到PS3上。主內存的處理也很費勁。PS3上的DMA情況,數據是用128byte border,一旦不匹配就不能發揮性能。而且和XBox360的512MB內存自由的使用不同,PS3中分成了主內存256MB和顯存256MB。]

PS3版標準光媒體因為是藍光,即使是1層也有25GB的容量。正因為這樣,雖然不會像XBox360那樣媒體容量緊張,但在PS3上主內存不足的問題卻浮現出來了。

最後,雖然主內存怎樣做都不夠,但PS3的有搭載HDD硬盤,可以作為虛擬內存來使用,於是決定活用這個機能。在[索尼克WA]中,結果是使用了HDD硬盤的256MB作為虛擬內存,和主內存方面的50MB範圍作**來活用。被放在虛擬內存的有Audio,PVS判定, HAVOK的POOL,字體和文字信息,HUD數據,存盤記錄數據,RSX(GPU)的管理領域等。

荻野先生[這次的PS3版的開發中,SCE提供的程序庫Playstation Edge起了很大的幫助。包括這個,把CELL處理器的SPE(Synergistic Processor Element)在Vertex Shader上活用的Edge Geometry也顯著活躍著。不止是Culling,特別是Skinning的效果很厲害,是隻用RSX處理的10倍以上吧。雖然和XBox360版有很多的數據是共通化的,但因為活用了這個Edge Geometry的關係,3D模型數據等都施加了PS3專用的優化。]

PS3的CPU,CELL處理器裡,能夠實際運行的SPE搭載了7個,不過PS3版的[索尼克WA]中SPE使用的方式,SPE1和SPE2為系統活用,空閒時SPE2運行Audio System。SPE3到6是HAVOK和Playstation Edge等,SPE7負責繪製的管理。

3D遊戲圖形的Lighting向GI的方向進化著

橋本先生鄭重的一邊用demo演示一邊進行各種實現技術的解說。

最後,作為索尼克開發組,請教關於今後的3D遊戲圖形的動向和想嘗試挑戰的技術。

橋本先生[一說到關於GI的話,能習慣處理鏡面反射的信息就好了。現在我們的GI技術中要處理的只是擴散反射。關於使用球諧波函數之類,或是在場景內物體對象面單位加入光進入的信息,我想一定會做出非常漂亮的光澤。手動的在空間裡配置多個立方圖的方法雖然也有,但不想讓藝術家在這裡手動設定,而是考慮作出全自動生成數據的系統。而藝術家在這上面有調整的餘地最好。作為相關的話,雖然也打算做出接近最近流行著的[Radiosity Normal Mapping]概念的效果。但在開發時期的情況中完全省略了。感覺我們的Lighting計算系統的實現比較容易,我想不久的將來就會做。之後是實現動態的GI吧。現在已經在Demo級別出現了,我想在次世代機那樣的性能,一定可以做出來吧。要是讓我對現場人說的話,希望次世代機在架構方面不要有太大的改變。內存更多性能更高更便宜,希望是在現有架構上進化一樣的產品(笑)。]

本世代機的3D遊戲圖形,在本連載中也指出了[HDR渲染][動態陰影生成][根據法線貼圖的細微凹凸表現]的[三種神器]是必須流行的特徵,[索尼克WA]加了這三種手法以外,以現實形式挑戰了實時的全局照明(global illumination)。

雖然GI絕對不是使外觀華麗的技術,但因為能做出[完全是遊戲的CG]的視覺,讓人們看起來畫面中的人們好像真的實際氣息一樣的[真實感],確實隱藏著把影像的真實感推上好幾個等級的潛力。

這次[索尼克WA]採用的實時GI系統,在本代機上能合理的運行,而且效果也提高了。今後,我預感會有很大的變化即將到來,那麼一起在刺蝟引擎的進化中期待吧!


分享到:


相關文章: