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