作者:zhuhuanhuan,圖形技術專家
隨著3D技術的應用普及,越來越多的場景都能看到3D的身影,比如充電動效、3D壁紙、游戲等等,給用戶帶來了更有趣、更豐富的體驗。要滿足用戶的3D體驗需求,離不開3D渲染引擎。本期,我們就和大家聊一聊HarmonyOS的3D渲染引擎。
一、產生背景
現有的商業3D引擎,在游戲、工業設計、影視等領域發揮了至關重要的作用。為了兼顧跨平臺的一致性、降低開發者的使用門檻,這些引擎往往會對不同的硬件平臺做抽象,提供一站式的統一開發框架,讓開發者在開發應用時無需關注硬件平臺的差異性。這雖然給開發者帶來了便利,但在一些輕量級3D場景下卻存在應用架構龐大的問題,并且會消耗過多的內存和功耗。
以3D壁紙為例,如果使用現在流行的商業渲染引擎來實現,其內存占用和功耗都很大。下面的圖1展示了一款典型的2D靜態壁紙與其3D版本之間的資源消耗對比。可以看出,內存和功耗都大大增加了,這會大幅降低設備的待機時間。
圖1 靜態壁紙與動態壁紙的資源消耗對比
為了解決當前主流渲染引擎資源占用過高的問題,服務“1+8+N”眾多設備的輕3D需求,華為自主研發了全新的輕量級HarmonyOS 3D渲染引擎。
二、HarmonyOS 3D渲染引擎介紹
HarmonyOS 3D渲染引擎采用了業界最先進的ECS(Entity-Component-System,實體-組件-系統)渲染引擎架構。 ECS架構的數據和方法分離,按照組合的方式將組件及其行為拼裝成對象,對cache命中更加友好,并且更加易于實現多線程并行。
那么基于ECS架構的HarmonyOS 3D渲染引擎到底是怎樣的?下面我們從典型特征、特性列表、性能表現三個方面,帶大家了解HarmonyOS 3D渲染引擎。
1. 典型特征 HarmonyOS 3D渲染引擎具有以下典型特征:
數據驅動
為了最大限度減輕迭代開發的工作量,采用了數據驅動的設計思想,使得大量配置和修改都無需重新編譯代碼。例如render node graph、shader pipeline、renderpass layout、vertex data declaration和post-processing等內容都可以通過json等文本文件指定,開發者可以通過修改這些配置文件實現改變渲染流程、增加后處理效果、修改模型形狀等操作。
插件機制
在保持引擎核心代碼盡可能少的同時,提供了極為方便的架構級插件擴展支持。比如,在低端設備上,可以只提供引擎的核心部件,這樣編譯出來的二進制文件規模非常小。而在高端設備上,可以根據需要添加擴展功能插件,例如碰撞功能、粒子效果等。這樣,既可以降低應用的資源消耗,也可以讓開發者輕松構建自定義渲染管線。
高度并行
自動支持渲染并行化。GPU資源可以按照lock-free的方式訪問,開發者無需使用鎖,也不用擔心資源訪問的多線程競爭問題。
軟硬結合
HarmonyOS與HISI芯片的軟硬件聯合優化,以及華為在GPU Turbo技術的長期沉淀,為3D應用能效比的提升作出了重要貢獻。
現代圖形API
圖形API充分借鑒了Vulkan API的設計思想,能夠有效利用Vulkan的大量創新特性,例如multi-queue、indirect rendering、stateless rendering、descriptor sets等。
2. 特性列表
相比當前業界常用的渲染引擎,HarmonyOS 3D渲染引擎已經支持所有核心功能和常用特性,可以滿足絕大部分3D應用的開發需求。下面我們就來看看HarmonyOS 3D渲染引擎支持哪些特性吧:
圖2 支持的特性列表
說明:圖2中的“插件系統”是可以根據需要進行擴展的特性,其他特性則是系統默認支持的特性。
如圖2所示,HarmonyOS 3D渲染引擎除了支持Java/C++ API以外,還將在2022年支持HarmonyOS的JS開發框架和聲明式UI。后處理方面,目前支持FXAA抗鋸齒技術,后續還將支持基于時域的TAA(Temporal Anti-Aliasing)抗鋸齒技術,以達到更好的顯示效果。
3. 性能表現
HarmonyOS 3D渲染引擎主打輕量級,其性能表現尤為重要。我們從開源項目獲取了一些標準模型,這些模型經常用于圖形領域的各種demo測試。基于麒麟990平臺評估這些模型在多個引擎中的性能表現,測試結果如下圖所示:
圖3 性能測試結果
開源項目:https://github.com/KhronosGroup/glTF-Sample-Models
從以上測試結果可以看出,HarmonyOS 3D渲染引擎在內存和功耗上表現都非常出色。
三、應用示例
HarmonyOS 3D渲染引擎當前主要面向普通的應用開發者,典型應用場景是在以2D為主的應用中嵌入少量的3D元素。
目前3D渲染引擎已經內置到HarmonyOS中了,下面我們來看看HarmonyOS 3D渲染引擎的幾個典型應用示例:
UX 3D動效:
Qmoji(相機趣味變裝):
3D壁紙:
四、未來展望
雖然HarmonyOS 3D渲染引擎當前主要面向輕量級的3D應用場景,但其同樣支持復雜3D場景的開發,例如3D游戲、車控界面等。為了協作開發者更好地完成3D場景開發,HarmonyOS將在2022年推出3D場景配套的開發工具,敬請期待!
未來,HarmonyOS 3D渲染引擎以及配套的3D開發工具鏈將隨著HarmonyOS持續演進,不斷拓寬應用場景,持續推動3D應用在各種智能設備上的廣泛落地,打造更加絢麗的數字世界!
原文標題:酷炫3D效果在瘦設備上也能實現?
文章出處:【微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。
-
3D
+關注
關注
9文章
2875瀏覽量
107491 -
代碼
+關注
關注
30文章
4780瀏覽量
68539 -
HarmonyOS
+關注
關注
79文章
1974瀏覽量
30149
原文標題:酷炫3D效果在瘦設備上也能實現?
文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論