主頁 > 移動端開發 > CG Kit探索移動端高性能渲染

CG Kit探索移動端高性能渲染

2021-12-07 08:09:20 移動端開發

內容來源:華為開發者大會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

上一篇:Android系統編程入門系列之硬體互動——傳感器

下一篇:安卓開發封裝處理Retrofit協程請求中的例外

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more