內容來源:華為開發者大會2021 HMS Core 6 Graphics技術論壇,主題演講《CG Kit探索移動端高性能渲染》
演講嘉賓:華為海思麒麟GPU團隊工程師
大家好,我來自華為海思麒麟團隊的一名GPU研發工程師,今天給大家帶來的主題是“CG Kit探索移動端高性能渲染”,

華為圖形計算服務(Computer Graphics Kit,簡稱“CG Kit”)提供最前沿計算機圖形學領域的渲染框架、插件SDK與GPU擴展介面,協助開發者挖掘硬體極限性能,大幅降低開發難度,幫助開發者創造出體驗更佳的產品,
那么,CG Kit能提供哪些解決方案呢?
一、Vulkan渲染框架實踐
Vulkan是最新的圖形標準API,相較于OpenGL具備一定的優勢,并且OpenGL這個標準已經停止演進,未來圖形學基本上以Vulkan向前演進,舉個例子,移動端的光線追蹤就是在Vulkan中描述,并且在OpenGL中是沒有的,但問題在于,Vulkan非常靈活,它相較OpenGL有一定的使用門檻,所以就需要有基于Vulkan高性能的渲染框架,以此提供實踐架構和方案,充分發揮出硬體性能,
二、高性能渲染插件
CG Kit提供多執行緒渲染、拍照超分、體積云、遮擋剔除等一系列渲染能力的插件,以便于三方合作的順利進行,比如去年的網易《天諭》手游就集成了拍照超分的演算法,
三、開發者工具鏈
CG Kit也提供了完整的開發者工具鏈,我們可以幫助開發者迅速定位解決渲染功能和性能問題,大家可以想象一下,如果未來工具可以自動識別游戲場景中的一些功能/性能問題并反饋給開發者,這將極大提升我們的開發效率,
四、前沿圖形技術探索
一直以來CG Kit團隊都在對前沿圖形技術進行探索,比如,我們如何把AI的技術應用到圖形渲染中,目前我們已在AI超分、自動3D人臉建模,AI協同影片生成等方面有所研究成果,

Vulkan渲染框架實踐
Vulkan渲染框架實踐,為開發者提供Vulkan渲染解決方案優化、渲染增強插件和渲染技術檔案,比如,檔案中會介紹一些API使用策略、資源快取使用優化、Vulkan的兼容性問題等等,
前面提到Vulkan是比較新的API,它的Command Buffer機制可以天然支持多執行緒渲染,由于Vulkan比較靈活,CG Kit就會針對Vulkan的API做了簡化封裝,使用起來更便利,
其次, CG Kit也支持基于物理的渲染,PBR可以真實地反映物體表面光照的屬性,通過PBR我們渲染出來的物體會更加的真實,
同時,CG Kit提供了資源管理器,可以將所用到的大量管線資源盡可能地進行復用,從而降低開銷,提高渲染性能,
最后,CG Kit同樣支持提供HDR10的顯示能力,配合HDR螢屏的顯示優化,最終出圖會有更好的動態范圍,
靜態超分組件
下面介紹一下游戲拍照超分的插件,游戲是具有社交屬性的,分享就是社交里非常重要的一個環節,在游戲程序中經常會遇到一些非常值得分享的精彩時刻,比如完成了一個里程碑的任務,獲取了一個限量款精美的皮膚,或者已經完成了一個虛擬人物形象定制……在這些時刻,游戲玩家非常迫切地想把這些精彩的瞬間分享給自己的朋友,那就需要用到拍照的功能,但是如何讓拍照的效果更好呢?
針對拍照效果,CG Kit提供了兩種解決方案,
第一種解決方案就是針對具有獨立NPU的高端手機,例如麒麟980、990和麒麟9000芯片對應的手機,這些具有獨立高端NPU的手機可以直接呼叫AI超分介面,這樣畫面細節得以顯著增加,畫面風格更加清晰自然,從下面的對比圖可以看出,處理后的圖片人物面部細節明顯有提升,

而針對那些沒有獨立NPU芯片的手機,我們也提供了一種通用的解決方案,叫作FilterSR,這是基于通用GPU的一種演算法,應用這種演算法后,沒有NPU的手機也可以大幅提升畫面效果,并且相較于傳統的方法它的鋸齒感和畫面清晰度也有很大的提升,值得一提的是,《天諭》就集成了我們拍照超分的演算法,

體積云組件
CG Kit也提供了移動端高性能的體積云插件,體積云技術可以實時動態地渲染出高度真實云海中全域光照場景,并且支持玩家在云中任意地穿梭,畫面可以真實還原云朵的物理特性,比如,玩家在穿梭程序中撲面而來的粒子感,還有真實的光照效果,包括云朵邊緣的細節等等,都會有非常好的呈現,從下圖可以看出,這個云朵的顏色是隨著時間的變化在逐步變化的,就是因為我們對光照做了24小時的適配,

在體積云的形態方面,我們支持真實和卡通兩個風格,還支持任意形狀的Mash轉換成體積云,這樣可以滿足開發者不同的定制需求,
從性能角度看,在麒麟980這個平臺上,我們可以做到4毫秒以內渲染1幀,插件顯示上,同時提供了PC端和移動端的插件,一般來說開發者是在移動端上進行編輯除錯,并在移動端上以SO的方式集成,而它的包體大小只有400K左右,
體積霧組件
下面介紹一下體積霧組件,在一些特定游戲風格的游戲中,具有高度真實的光和霧的效果會給大家帶來非常好的體驗,比如去年有一款非常火的游戲,叫《賽博朋克2077》,它里面就有很多霧效,
主機3A大作中,體積霧一般是通過體渲染來實作的,不同于表面渲染只需要渲染物體表面,體渲染要渲染物體內部,渲染作業量可能是表面渲染的幾十倍上百倍,體渲染對硬體的性能要求非常高,這也是一直沒有在移動端落地的原因,
而CG Kit體積霧的組件對傳統的體渲染做了很多優化,我簡單介紹兩種優化,
第一種優化是針對多光源場景下的優化,多光源的時候,渲染的作業量是成幾十倍的增加,針對這個問題我們引入了光源剔除技術,讓光照計算只發生在光源所影響的區域范圍內,這樣就可以大幅地降低渲染的作業量,
第二種優化是,為了提升渲染的效率,我們采用了降低采樣率的方式,但是降低采樣率以后會存在畫面細節不足的問題,為了解決這個問題,我們引入了時域濾波技術,把當前幀和上一幀的結果融合,這樣也會得到一個非常不錯的結果,資料結構也針對這些優化做了相對性的適配,
經過前面一系列的優化之后,我們可以在移動端進行實時高性能的體積霧渲染,從性能角度來看,在麒麟980平臺上,可以做到4毫秒一幀渲染;在集成形式上,可以同時提供PC端和移動端插件,支持PC端對編輯除錯,移動端以SO方式集成,移動端插件包體小于500KB,

AI捏臉
最后介紹一下AI捏臉,在游戲場景中如果能夠做到虛擬形象千人千面,而且它的虛擬形象能夠有游戲玩家一部分的臉部特征,就會提升用戶的代入感,AI捏臉以正面自拍照的方式輸入,在呼叫我們的AI介面以后,會生成一組高度還原用戶臉部特征的捏臉引數,基于捏臉引數自動生成3D模型,同時我們在追求幾何相似的同時,還將真實紋理、模型紋理相融合,使得它的紋理能提現玩家的一些面部特征,還原性更高,我們在集成上提供了非常簡單的介面,開發者可以便利地進行適配,也可以大幅地提升他的開發效果,

因為我們是純端側運行,在中高端機型AI捏臉時間小于4s,穩定性很高,同時我們的捏臉范圍不但支持面部,而且還支持五官、發型、眼鏡等;我們還融入了高度還原的真實紋理,有更好的還原度,并提供美觀度調整功能,可以控制最終的輸出圖美觀度,在開發效率上,開發者只需要兩步就可以呼叫我們的功能,第一步PC端進行模型自由適配,第二步在移動端以用戶的自拍照為輸入就可以呼叫我們的介面,整個程序非常簡單便捷,
希望大家可以進行深度的合作,謝謝!
了解更多詳情>>
訪問華為開發者聯盟官網
獲取開發指導檔案
華為移動服務開源倉庫地址:GitHub、Gitee
關注我們,第一時間了解 HMS Core 最新技術資訊~
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/374474.html
標籤:Android
