2016年3月7-9日,由全球移動遊戲聯盟主辦的第五屆全球移動遊戲大會GMGC2016在國傢會議中心盛大舉行,作為亞太地區最具影響力的遊戲行業盛會,此次大會以“Game2.0:創新不止·忠於玩傢”為主題,包括騰訊、百度、360、阿裡、谷歌、中手遊、京東、藍港互動等在內的來自全球移動遊戲及泛娛樂產業的開發商、運營商、制作商、平臺商、硬件廠商、大眾玩傢以及相關政府機構和國際產業組織齊聚一堂,共話移動遊戲及泛娛樂產業的熱點議題。主會場峰會分為“遊戲領袖峰會”及“泛娛樂主題峰會”兩場同時進行,9日下午,來自Epic Games資深技術工程師王禰進行瞭題為《UE4在移動平臺的開發優勢》的演講。


以下是演講內容實錄
王禰:大傢好!今天我講的主題其實是偏移動一些。
UE4支持手遊的特性,大部分編輯器裡面PC上開發功能和主機上開發功能都是一致都是可以使用的,有非常豐富的編輯器。第一個,我寫在這裡最重要的是大傢比較關心,比如材質效果,UE3時代在比較後期我們也推出瞭UE3對移動設備支持。當時對移動設備支持,我們在材質做瞭一些簡化,兼容更多的設備讓運行效率可控,我們當時是有一個很固定的模板,你隻能在模板裡填寫參數。現在整個渲染的工具非常強,你在移動端也可以使用跟PC端完全一樣的材質編輯器擴展各種各樣的功能。
移動端的材質也是基於物理真實的,這裡寫的PBS的材質。這個材質有什麼好處?跟以前傳統的一些材質做法不太一樣。你隻要設置一些經驗參數就可以獲得跟,在各種光照環境下都跟真實比如說佈料、木頭、金屬非常接近的效果。移動芯片性能,所以我們在移動設備上對整個模型做瞭簡化,我寫的BRDF是什麼?雙向的反射性物理函數,通過這樣一個函數描述它的屬性。雖然在移動端做瞭簡化,依然滿足瞭能量守恒,所以其實效果也是非常接近PC端。並且我們在最近的幾個版本裡面為瞭適配更多設備,我對這樣的模板還做瞭更多級別的匹配,我們有更簡化的模型,不帶金屬度的材質,完全是粗糙材質,我們可以用精簡的BRDF公式計算,使得整個材質計算更精簡一些。
我們手遊端引擎完全支持HDR。在我們移動端是前向渲染管線,比較高效的渲染效果不太能做,依然把大量的高級的後處理效果挪到全像管線裡面,這裡列出瞭一些,由UE3比較知名的Bloom,景深,能做調色,還有屏幕空間的光線。
剛才說的圖像方面的,下看看一下各個方面的支持,針對移動設備的支持,支持所有的貼圖格式,PC上方便的ES2預覽。Device文件和Scalability設置。為瞭兼容性還有非常強大的兩個設置,你可以針對不同的設備,逐硬件設備或者根據你的按照GPU分類,看你的設備上需要開啟哪些後處理效果,需不需要打開動態陰影質量。後面Shader模板簡化設置分支,為瞭中低端設備做瞭一些更簡化的Shader模板模型。
為瞭方便開發者來調試,我們也能用遠程,在PC上起一個命令去直接出觸及安卓和iOS的應用。
零用測試兼容性的時候,可以批量分佈式的發佈到不同的設備,並且跑各自的測試,最終收集最終跑的結果,讓大傢可以更方便測試整個設備兼容性。
我們跟大部分的手機硬件開發商包括芯片廠商、SOC廠商都有非常緊密的合作。我們跟高通、ARM、三星有一個演示,我們的展臺也有兩臺S7,上面有一個技術演示非常驚艷。
根據硬件,我們跟硬件開發商合作進行優化,根據大小盒的硬件設備做現成的調整,哪些現成使用,哪些現成不使用。比如說在iOS上面把應用的次數和遊戲現成截耦,來達到省電的優化。
接下來就看一下這次在S7上展示的這個演示,發佈瞭即將發佈一些移動端高端的特性。
毫無疑問大傢看到這裡肯定是視頻,其實在我們的展臺當時有很多人路過看我們的演示,開始都以為這是視頻,在設備上認為是視頻,不會覺得在移動設備上已經跑出驚艷畫面效果,當時有好幾個場景是需要手動交互,錄制完的屏幕,隕石碰撞、吸引小行星之類,都是實時去交互的,在那個地方體現出來這是一段實時技術演示。這段技術演示不是完整遊戲,可以體現出來你在高端設備上做效果的時候,能達到的高度。這些都是在版本中介紹。
我們來介紹一下演示裡面用到瞭哪些一般在移動設備上不太會看到的技術。
第一,GPU粒子。大傢剛剛看到的在隕石碰撞撞到內核迸發出來GPU粒子,通過場控制它移動的方向。
第二,靜態陰影與CSM混合使用,CSM可選擇隻影響動態單位。以前CSM在移動端也支持, 開銷比較大,CSM對主方向光打全,以後會對所有的物體都做投影,現在我們改進成瞭對靜態物體依然用烘焙,隻對動態物體產生影響。這樣就可以用比較低的成本完全非常高質量的動態投影,並且可以和靜態投影融合得非常好。
第三,我們又改進瞭一些後處理效果,比如說現在支持電影化的tonemapper,移動端自由調色,我們也改變瞭DoF的效果,剛開始水滴的地方做出色差的後處理效果。
另外,以前版本裡面支持環境光,我們所謂的IBL,我們會用一個叫relflection把環境貼圖烘焙起來,作為間接光照,以前在PC上這個光照非常完美,根據粗糙度不同的切斷,移動端用瞭三套,你的木紋非常粗糙,你用比較高的高光反射,這個時候根據粗糙度取不同的captures貼圖呈現最好的效果。
最後,畫面比較驚艷的部分,全動態的反射,這個反射是基於一個平面。我們跟三星推出ProtoStar。所以會把數據總GPU讀出來,放到run裡面再放回去,這個過程非常消耗,在移動端做遊戲,盡可能不要用後處理效果,後處理效果非常強,並且對遊戲畫質提升非常有幫助,為瞭兼顧設備性能和開銷,所以大部分時候我們會關掉大量的後處理效果,這是基於硬件。
哪些狀態你是要保留,哪些狀態是不需要保留,這些行為都可以在GPU裡面做完,不需要跟run讀取存取,我們有reflection畫一遍再渲染到實際畫面上。動態單位可以使用reflection來渲,做出非常好的融合效果,盡可能省,我繪制動態單位比較少一點。
Vulkan提供底層顯示API,圖像內存資源分配,復用。更明確的reder passes,更地層更顯式的API。行為上的一致性。SPIR-V。任何一個設備聲稱支持Vulkan有一個一致性的規則,你一定要去通過這個審核。這樣帶來的好處是,當以後Vulkan標準普及以後,所有的設備從windows到安卓你看到的效果都是一致的,現在很多時候你寫的是一樣,但是效果差非常大,不同硬件廠商驅動沒有標準。
體驗ProtoStar那個演示就會有一個問題,這個演示與美國GDS版本有一個區別,那個打開時間會更長。現在這個版本,把進程殺掉,第一次打開,有一些地方會卡頓。這個問題怎麼解決?Vulkan帶來好處,畫面很炫,不管硬件怎麼樣,所有編譯成中間模塊,使用的時候給不同的節點就可以,實時編譯開銷非常小,對硬件兼容性也會非常好。
Vulkan在大循環裡面逐個循環內層,而不是每個東西site一遍,CPU開銷非常高。這個開銷非常小,你可以控制在最小的集合。
每個都有CPU開銷,你不知道哪個硬件廠商對內存分配,驅動猜測不出來你要使用數據對內存做存儲效率非常低下。得益於我們對Vulkan的支持,我非常看好Vulkan,並且兼容性非常好。
基本上今天介紹的內容就是這些,謝謝大傢。
