展開

星際2圖形介紹SC2中的效果與技術

來源: 佚名 2010/12/17 14:18:52 瀏覽量:458

星際2圖形引擎說明:SC2中的效果與技術
由於原文非常之長,涉及大量術語,翻譯難度較大,所以翻譯者僅翻譯了他認為重要的部分,也就是大多數人關心的


5.0擇要:
在本文中大家將展現用於星際2劇情部分的圖像技術與算法.大家將展現為實現藝術效果而訂定的一係列目標,同時大家也將告訴大家暴雪的藝術風格對大家的引擎設計產生了什麼樣的影響. 通過耽誤緩衝技術---他們被大量用於景深,法線,色彩元素---的說明,大家將揭開大量的技術細節,包括光線管道,全屏閉塞,景深效果.別的,關於影子的一些成果也將在本文中被說明.

5.1說明:
設計星際2的挑戰首先在於這是一款非常成功大作的續集,別的,圖形引擎的選擇也是非常挑剔的,大家很快就會看到,暴雪的藝術風格對大家的引擎產生了什麼影響.

5.2引擎的設計目標:
早在研發的初期,大家就確定引擎會有這樣一些特性:

可塑性(或者說可伸縮性可適應性),這是第一位的引擎的可適應性是大家考量的首要因素.暴雪的遊戲從來以較廣的硬件適應性而聞名---即使在較老式的機器上也能夠運行--同時又能提供優秀不俗的性能表現. 而今,大家希望將這一傳統發揚光大,大家將為所有的現存硬件舉行優化,不管是鐳9800,Geforce 5xxx還是最新的GT200和HD 4800.大家的目標是在所有的GPU平台上都能夠獲得最佳表現. 對可塑性的需求需求大家設計一個非常精妙的Shader框架.對此另有一個章節討論,大家不會在這裏睜開,隻是會作一個簡單的綜述.

由於大家隻有1~2位藝術家計劃獨立編寫shader,所以大家並沒有把精神放在開發一套精妙的shader原形開發工具上.與現代的業界潮流相反,大家的努力方向是讓shader框架越發靈活,讓編程越發輕鬆.因而,在大家的開發過程中,編寫shader和在project裏加入C++文檔沒什麼區別.打個比方來說,大家處理shader代碼就像在C++中調用庫資源.所以,shader這個概念在SC2的開發中含義很廣.每一個shader調用點都能轉換為不同的shader,而在shader代碼中你能隨意調用每個調用點.因此你很難說大家到底用了多少個"獨立的"shader。

因為針對不同的圖像設置(也就是遊戲中你選擇的圖像設置,譯者注),都市有一整套調整後的shader效果與技術。 (這裏做一個小的批注,也就是說,blizzard會根據你選擇的圖像設置,生成一套permutated的shader,相當於一種優化方式---譯者注)

同時,得益於靈活的shader框架,大家的調試事情也變得非常輕鬆。藝術家有新的構思,隻需要在3D-Max上畫出來,然後程序員把生成的代碼優化,就能加入大家的shader庫中,這統統都非常快,而藝術家並不需要關心技術層麵的問題。長話短說,SC2包羅了8000行獨立、不重複的shader代碼,包羅在70個文檔中。那麼好的,大家現在就該進入重點了。

將事情更多地交給GPU,而不是CPU

最早,大家就決定通過把更多任務交給GPU而不是CPU來榨取最多的遊戲效能效果與技術。


在SC2中,絕大多數情況下,大家都是在一個比較遠的距離觀察單位,所以在實際遊戲中,增加單位的多邊形對遊戲體驗的邊際收益很低。在這種情形下,大家很難平衡CPU的負載。

引擎的雙重特性

SC2的引擎必須具有雙重的特性。)

而對付GPU來說,恰恰相反,因為在RTS遊戲中,預渲染任務較輕,所以相應的像素渲染負載趨向於常數。盡管多邊形數量方麵可能會在某些場景出現較大的顛簸,但是現代GPU的計算能力已經能解決這個問題。所以大家盡量地把藝術家的構思通過象素shader來表達,同時盡量降低向量shader的壓力。

最主要的緣故原由是:在SC2中,你能夠生成並控製幾百個單位---比如說蛉蟲或者水師陸戰隊,在多人遊戲中,比如8人的遊戲中,同一個屏幕內的單位可能達到近千的峰值。正因此,大家避免任何運用過多多邊形的藝術元素。
應用名稱:星際爭霸(Starcraft)V1.08b (支持浩方聯網) 下載地址://m.foodseeq.com/f/15853

  (意思就是CPU的處理能力會導致一些難以解決的問題,使大家很難兼顧所有硬件。因為一方麵,在實際遊戲中,大家專注於動作而不是畫麵細節,畢竟大家是在一個很遠的距離上看大量的單位。但是同時,大家的引擎也將用於劇情模式,在這個模式中,玩家將通過引擎生成的動畫來體驗遊戲中的故事、角色、傳奇,並和某些角色舉行互動。

現在,大家就來展示,這些目標怎麼地影響了大家的算法選擇和引擎設計。從某種程度上來說,更接近於FPS遊戲的情況。

在這種情況下,恰恰相反地,含有較少的實體,擁有和較近的鏡頭和更多的視覺。大家將通過一些遊戲畫麵和遊戲內的劇情電影來闡述這些技術細節。

(本文後麵是大量的技術細節與算法,譯者隻選取其中的重要部分舉行意譯,此前為全文翻譯)

1.動態光源
SC2將全麵運用動態光源,你乃至能細致到,一隊水師陸戰隊,他們身上閃爍的光源能影響到周圍的情況貼圖。並且運用了大量的HDR效果。

2.多層麵地圖渲染
SC2的地圖全部都是多層的,也將通過多層麵方式渲染

3.耽誤光照技術
在劇情模式中,光照模型的複雜程度前所未有,而耽誤光照技術使得這成為現實效果與技術。 
 

4.SSAO技術,我不知道該怎麼翻譯這個名詞,大意是全屏幕閉塞情況效果
大家從Crysis等優秀遊戲中吸取了靈感,但是大家的SSAO是獨立完成的,以下你能夠看到一些效果圖,這能讓室 內的情況效果越發逼真,更有利於烘托氣氛,這種技術大量地應用於大家的劇情模式中效果與技術。本論文用了長達6頁來 闡述這一技術,具體細節說實話我也看不懂,但是能想象這將是劇情模式的招牌特效。

5景深效果
景深效果是電影級別渲染所不要缺少的要素。為了兼顧實時計算的需求,大家采用了不損失畫質的一種近似算法 。大致就是在預期視野距離采用清晰圖像,在偏離預期視野的地方運用blur效果(根據距離決定blur程度)。

6半透明渲染效果,和半透明陰影
由於耽誤緩衝技術,大家能實現大量的半透明藝術元素。比如在遊戲中,煙霧和爆炸也將具有陰影,並且根據半透明物體的顏色,陰影也具有本身的顏色!!

 

相關攻略
精彩推薦
奔跑吧兄弟:跑男來了
玩家留言 跟帖評論
查看更多評論