作者: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开发者】欢迎添加关注!文章转载请注明出处。
信服云 从“点”到“面”, 共筑鲲鹏产业新生态
深圳倍泰环形导轨输送线 圆弧导轨 精密链节输送线
什么是光纤HDMI线_光纤HDMI线的优势
2016黑得漂亮的十部手机,肯定不会落下华为荣耀Magic、小米MIX
datasheet5背后到底是什么支撑着这些数据,趋势和分析
HarmonyOS 3D渲染引擎介绍
2020年第二季度世界晶圆代工前十大企业销售
【大大芯方案】提高驾驶舒适度与安全性,大联大推出基于英飞凌产品的数字仪表显示方案
iPhone 8电池爆个不停,网友猜测原来是它
半导体失效分析
MSO5000-E系列数字示波器的特点
动态电源管理在嵌入式应用中的性能解析
TCL华星公布多款Mini LED背光车载显示屏
英飞特携新品冲击户外电源类“年度创新产品”金球奖
台湾地区2021年IC封测产值有望再创新高
安森美的智能成像方案使道路更安全
英特尔宣称不放弃MeeGo手机操作系统
降低PCB制造成本的技巧
IBM宣布在纽约投资20亿美元建立一个新的IBMAI硬件中心 旨在开发下一代AI硬件
OLED吞噬LCD市场份额:深科达业绩陷入停滞