0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

酷炫3D效果在瘦设备上也能实现?

物联网星球 2021-12-21 17:55 次阅读

作者: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
    3D
    +关注

    关注

    9

    文章

    2756

    浏览量

    106450
  • HarmonyOS
    +关注

    关注

    79

    文章

    1827

    浏览量

    29259
收藏 人收藏

    评论

    相关推荐

    ad19中3d模型不显示?

    封装库导入3d模型不显示,但导入3d模型后的封装库生成pcb文件时显示3d模型,这是什么原因导致的。
    发表于 04-24 13:41

    头盔3D扫描逆向工程3d建模抄数测绘服务-CASAIM中科广电

    3D扫描
    中科院广州电子
    发布于 :2024年04月12日 14:03:01

    包含具有多种类型信息的3D模型

    的文件格式流程,其中包含具有多种类型信息的3D模型,例如时间、成本、材料属性、几何形状、施工进度、热属性等。 BIM在AEC领域中发挥着重要作用。BIM文件允许AE提供项目中所有信息的视图,其效果和精度超越了
    发表于 03-28 17:18

    3D动画原理:电阻

    电阻3D
    深圳崧皓电子
    发布于 :2024年03月19日 06:49:19

    谁有PADS 3D元件库?

    谁有PADS 3D元件库?共享吗
    发表于 01-16 18:41

    友思特C系列3D相机:实时3D点云图像

    3D相机
    虹科光电
    发布于 :2024年01月10日 17:39:25

    长沙3D扫描仪扫描摩托车3D建模尺寸测量解决方案CASAIM中科广电

    3D测量设备
    中科院广州电子
    发布于 :2023年10月24日 14:35:27

    广东三维扫描仪高精度3d扫描尺寸测量3d比对检测CASAIM中科广电

    3D测量设备
    中科院广州电子
    发布于 :2023年10月24日 14:35:01

    电竞键盘M0系列: 玩家级灯光效果

    电竞键盘M0系列: 玩家级灯光效果 玩家级灯光效果: 采用MG32F02U128芯
    发表于 08-29 15:34

    光学3D表面轮廓仪可以测金属吗?

    并自动聚焦测量工件获取2D3D表面粗糙度、轮廓等一百余项参数,广泛应用于光学,半导体,材料,精密机械等等领域。 总之,光学3D表面轮廓仪在金属测量方面应用广泛,可以实现非接触式、高精
    发表于 08-21 13:41

    实时3D艺术最佳实践-纹理技术解读

    纹理贴图获取2D曲面图像并将其映射到3D多边形。 本指南涵盖了几种纹理优化,可以帮助您的游戏运行得更流畅、看起来更好。 在本指南的最后,您可以检查您的知识。您将了解有关主题,包括纹理图谱
    发表于 08-02 06:12

    低成本3D扫描仪机械部分设计中。#3d打印 #3d扫描 #3d建模 #3d #fusion

    3D扫描仪
    学习电子知识
    发布于 :2023年07月03日 20:13:56

    求分享8MPLUS-BB的3D cad模型吗?

    以下是我的请求列表, 你分享 8MPLUS-BB 的 3D cad 模型吗? 我可以请求共享 8MPLUS-BB 的 Altium 设计文件吗? 我们已经采购了 EVM 板,并计划设计一个外壳。
    发表于 06-05 13:37

    3D扫描进度更新,在等快递。还有准备3D打印。#3d建模 #3d扫描 #三维扫描 #3d设计 #创客

    3D打印机3D打印
    学习电子知识
    发布于 :2023年05月28日 20:54:11

    3d打印机已经满足不了我了 #车床 #铣床 #3d打印 #物联网 #3d

    3D打印机3D打印
    学习电子知识
    发布于 :2023年05月28日 20:53:32