CG Kit致力於探索移動端高效能渲染能力
內容來源:華為開發者大會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端進行模型自由適配,第二步在移動端以使用者的自拍照為輸入就可以呼叫我們的介面,整個過程非常簡單便捷。
希望大家可以進行深度的合作,謝謝!
瞭解更多詳情>>
訪問
華為開發者聯盟官網
獲取
開發指導文件
華為移動服務開源倉庫地址:
、
關注我們,第一時間瞭解 HMS Core 最新技術資訊~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70003787/viewspace-2844137/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CG Kit探索移動端高效能渲染
- 一卷河圖賦太虛:HMS Core CG kit與移動遊戲新可能遊戲
- 探索高效能圖形渲染能力,應對嚴苛視訊遊戲環境遊戲
- 剖析虛幻渲染體系(12)- 移動端專題Part 1(UE移動端渲染分析)
- React 服務端渲染實現 Gank 移動端React服務端
- 新技能Get! 手把手教你接入CG Kit
- 關於移動端元件庫元件
- react高仿掘金移動版,支援服務端渲染React服務端
- Vue 3深度探索:自定義渲染器與服務端渲染Vue服務端
- 關於移動端rem的設定REM
- 基於VUE移動端UI好用框架VueUI框架
- 致力於通過演算法與交易系統致力於實現業務各個方面的自動化演算法
- 支付寶移動端 Hybrid 解決方案探索與實踐
- 移動端基於動態路由的架構設計路由架構
- 基於weex的考拉移動端動態化方案
- 小白致力於成為前後端開發程式設計師後端程式設計師
- 移動端定位
- 高效能滾動 scroll 及頁面渲染優化優化
- 實現基於React的移動端Swiper元件React元件
- 關於移動端IOS active失效的處理iOS
- 關於移動端網頁裡的畫素網頁
- 用於移動端的css重置reset程式碼CSS
- CG architect:2021年全球渲染引擎調查
- 建立高效能移動 web 站點Web
- Sky:一個基於 Dart 的高效能移動應用 UI 框架DartUI框架
- 服務端渲染到前端渲染,再到“服務端渲染”服務端前端
- 移動端web整理 移動端問題總結,移動web遇到的那些坑Web
- 前端高效能滾動 scroll 及頁面渲染優化前端優化
- 【移動端開發】移動端開發基礎問題
- Lesktop開源IM移動端:接入LayIM移動端UIUI
- 【FAQ】HarmonyOS SDK 閉源開放能力 —Push Kit
- 【FAQ】HarmonyOS SDK 閉源開放能力 —Account Kit
- 【FAQ】HarmonyOS SDK 閉源開放能力 —Map Kit
- 【FAQ】HarmonyOS SDK 閉源開放能力 —Share Kit
- 服務端渲染和客戶端渲染服務端客戶端
- 基於 vagrant搭建移動端的開發環境開發環境
- 移動端 touch事件事件
- 移動端佈局