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

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

3天内不再提示

OpenHarmony 3.1 Release版本详细了解新图形框架

OpenAtom OpenHarmony 来源:OpenAtom OpenHarmony 作者:OpenAtom OpenHarmony 2022-06-17 11:38 次阅读

3 月 31 日,OpenAtom OpenHarmony(以下简称“OpenHarmony”) 3.1 Release 版本正式发布了。此版本为大家带来了全新的图形框架,实现了UI框架显示、多窗口、流畅动画等基础能力,夯实了 OpenHarmony 系统能力基座,下面就带大家详细了解新图形框架。

一、完整能力视图

新图形框架的能力在持续构建中,图1展示了新图形框架当前及未来提供的完整能力视图。

72d03420-db62-11ec-ba43-dac502259ad0.png

图1 OpenHarmony图形完整能力视图

按照分层抽象和模块化的架构设计原则,新图形框架分为接口层、框架层和引擎层。各层级说明如下:

●接口层:提供图形 NDK(native development kit,原生开发包)能力,包括 OpenGL ES、Native Drawing 等绘制接口能力。

●框架层:由 Render Service、Animation、Effect、Drawing、显示与内存管理等核心模块组成。框架层各模块说明如下:

7313253c-db62-11ec-ba43-dac502259ad0.png

●引擎层:包括 2D 图形库和 3D 图形引擎两个模块。2D 图形库提供 2D 图形绘制底层 API,支持图形绘制与文本绘制底层能力。3D 图形引擎能力尚在构建中。

二、新图形框架的亮点

经过上一节介绍,我们对新图形框架的完整能力有了基本的了解。那么,新图形框架有什么亮点呢?

新图形框架在渲染、动画流畅性、接口方面重点发力:

(1)渲染方面

通常来讲,UI 界面显示分为两个部分:一是描述的UI元素在应用内部显示,二是多个应用的界面在屏幕上同时显示。对此,新图形框架从功能上做了相应的设计:控件级渲染和窗口级渲染。“控件级渲染”重点考虑如何跟UI框架前端进行对接,需要将ArkUI框架的控件描述转换成绘制指令,并提供对应的节点管理以及渲染能力。而“窗口级渲染”重点考虑如何将多个应用合成显示到同一个屏幕上。

(2)动画流畅性方面

我们深挖动画处理流程中的各个环节,对新图形框架进行了新的动画实现设计,提升动画的流畅性体验。

(3)接口方面

新图形框架在接口层提供了更丰富的接口能力。

下面为大家一一详细介绍新图形框架的亮点特性。

1. 控件级渲染

新图形框架实现了基于 RenderService(简称 RS)的控件级渲染功能,如图 2 所示。

736fa26c-db62-11ec-ba43-dac502259ad0.png

图2 控件级渲染

控件级渲染功能具有以下特点:

● 支持 GPU 渲染,提升渲染性能。

● 动画逻辑从主线程中剥离,提供独立的步进驱动机制。

● 将渲染节点属性化,属性与内容分离。

2. 窗口级渲染

新图形框架实现了基于 RenderService 的窗口级渲染功能,如图 3 所示。

73e21ef0-db62-11ec-ba43-dac502259ad0.png

图3 窗口级渲染

窗口级渲染功能具有以下特点:

● 取代 Weston 合成框架,实现RS新合成框架。

● 支持硬件 VSync/软件 Vsync。

● 支持基于 NativeWindow 接入 EGL/GLES 的能力。

● 更灵活的合成方式,支持硬件在线合成/CPU 合成/混合合成(GPU 合成即将上线)。

● 支持多媒体图层在线 overlay。

3. 更流畅的动画体验

动画流畅性是一项很基本、也很关键的特性,直接影响用户体验。为了提升动画的流畅性体验,我们深挖动画处理流程中的各个环节,对新图形框架进行了新的动画实现设计。

如图 4 所示,传统动画的实现流程如下:

(1) 应用创建动画,设置动画参数

(2) 每帧回调,修改控件参数,重新测量、布局、绘制;

(3) 内容渲染。

74157f5c-db62-11ec-ba43-dac502259ad0.png

图4 传统动画实现

经过深入分析,我们发现传统动画实现存在以下缺点:

(1)UI 与动画一起执行,UI 的业务阻塞会影响动画的执行,导致动画卡顿。

(2)每帧回调修改控件属性,会触发测量布局录制,导致耗时增加。

针对以上两点缺陷,我们对新图形框架进行了新的动画实现设计,如图5所示。

744b065e-db62-11ec-ba43-dac502259ad0.png

图5 新框架的动画实现

(1)动画与 UI 分离。

动画在渲染线程步进,与 UI 业务线程分离。

(2)动画仅测量、布局、绘制一次,降低动画负载。

通过计算最终界面属性值,对有改变的控件添加动画,动画过程中不测量、布局、绘制,提升性能。

4. 对外提供的接口

新图形框架提供了丰富的接口:

(1)SDK:支持 WebGL 1.0、WebGL 2.0,满足 JS 开发者的 3D 开发的需求。

WebGL 开发指导

https://docs.openharmony.cn/pages/v3.1/zh-cn/OpenHarmony-Overview_zh.md/

(2)NDK:支持 OpenGL ES3.X,可以通过 XComponent 提供的 nativewindow 创建 EGL/OPENGL 绘制环境,满足游戏引擎等开发者对 3D 绘图能力的需求。

749952fa-db62-11ec-ba43-dac502259ad0.png

图6 OpenGL ES使用示例

新图形框架还处于不断完善过程中,我们将基于新框架提供更多的能力,相信以后会给大家带来更多的惊喜,敬请期待~

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 框架
    +关注

    关注

    0

    文章

    398

    浏览量

    17414
  • OpenHarmony
    +关注

    关注

    25

    文章

    3649

    浏览量

    16087

原文标题:OpenHarmony 3.1 Release版本关键特性解析——新的图形框架可以带来什么

文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    触觉智能Purple Pi OH鸿蒙开发板成功适配OpenHarmony5.0 Release,开启新征程

    触觉智能Purple Pi OH鸿蒙开发板,成功适配OpenHarmony5.0 Release版本!为大家带来OpenHarmony5.0特性讲解!关注触觉智能,为大家带来更多
    的头像 发表于 10-25 10:51 294次阅读
    触觉智能Purple Pi OH鸿蒙开发板成功适配<b class='flag-5'>OpenHarmony</b>5.0 <b class='flag-5'>Release</b>,开启新征程

    OpenHarmony之开机优化

    一丶环境信息 源码版本OpenHarmony-4.1-Release 板子型号:dayu200(RK3568) 二丶Bootchart工具 在开机优化时,我们需要借助Bootchart工具,当前
    发表于 07-01 16:39

    龙芯2K0300蜂鸟板支持OpenHarmony 4.0 Release版本操作系统

    OpenHarmony操作系统,可以为开发者提供更多的选择。本次发售的2K0300蜂鸟开发板内置OpenHarmony 4.0 Release版本操作系统,并支持升级到
    发表于 06-20 10:02

    鸿蒙开发:【OpenHarmony 4.0 Release指导】

    OpenHarmony 4.0版本如期而至,开发套件同步升级到API 10。相比3.2 Release版本,新增4000多个API,应用开发能力更加丰富;HDF新增200多个HDI接口
    的头像 发表于 05-14 09:59 1266次阅读
    鸿蒙开发:【<b class='flag-5'>OpenHarmony</b> 4.0 <b class='flag-5'>Release</b>指导】

    【开源鸿蒙】下载OpenHarmony 4.1 Release源代码

    本文介绍了如何下载开源鸿蒙(OpenHarmony)操作系统 4.1 Release版本的源代码,该方法同样可以用于下载OpenHarmony最新开发
    的头像 发表于 04-27 23:16 787次阅读
    【开源鸿蒙】下载<b class='flag-5'>OpenHarmony</b> 4.1 <b class='flag-5'>Release</b>源代码

    OpenHarmony南向开发案例:【分布式画板】

    使用OpenHarmony3.1-Release开发的应用。通过OpenHarmony的分布式技术,使多人能够一起画画。
    的头像 发表于 04-12 14:40 985次阅读
    <b class='flag-5'>OpenHarmony</b>南向开发案例:【分布式画板】

    OpenAtom OpenHarmony 4.1 Release版本正式发布

    近日,OpenAtom OpenHarmony(以下简称“OpenHarmony”)4.1 Release版本如期而至,开发套件同步升级到API 11
    的头像 发表于 04-07 11:43 632次阅读

    DAYU200的版子刷4.0的Release版本,屏幕触摸不起作用,要怎么处理呀?

    自已从 OpenHarmony 官网下载的源码 3.2 Release 版本编译 烧录进去,功能都正常,4.0 Release 版本烧进去后
    发表于 01-23 18:54

    开源大师兄开发板通过 OpenHarmony 3.2 Release版本兼容性测评

    近期,江苏润开鸿数字科技有限公司(以下简称“润开鸿”)开源⼤师兄开发板顺利通过OpenHarmony3.2.1Release版本兼容性测评,为基于开源大师兄开发板研发更多可释放该系统版本新特性的⽣态
    的头像 发表于 01-20 08:02 837次阅读
    开源大师兄开发板通过 <b class='flag-5'>OpenHarmony</b> 3.2 <b class='flag-5'>Release</b><b class='flag-5'>版本</b>兼容性测评

    带您一起详细了解IEEE802.3bt(PoE++)的有关特点

    Hqst华强盛(盈盛电子)导读:带您一起详细了解IEEE802.3bt(PoE++)的有关特点,让我们对IEEE802.3bt(PoE++)协议有更具体的了解
    的头像 发表于 01-04 11:26 1930次阅读
    带您一起<b class='flag-5'>详细了解</b>IEEE802.3bt(PoE++)的有关特点

    OpenHarmony开源GPU库Mesa3D适配说明

    了drm panfrost的实现。目前OpenHarmony 3.2-Release基线中,支持4.19及5.10两个Linux版本,而只有5.10才提供了对panfrost的支持。如果当前Linux
    发表于 12-25 11:38

    搭载KaihongOS的高动态人形机器人“夸父”通过OpenHarmony 3.2 Release版本兼容性测评

    OpenHarmony”)3.2 Release版本兼容性测评并获颁兼容性证书 。这体现了深圳开鸿数字产业发展有限公司(以下简称”深开鸿“)OpenHarmony生 态建设能力和在新
    的头像 发表于 12-20 09:45 449次阅读
    搭载KaihongOS的高动态人形机器人“夸父”通过<b class='flag-5'>OpenHarmony</b> 3.2 <b class='flag-5'>Release</b><b class='flag-5'>版本</b>兼容性测评

    OpenHarmony社区运营报告(2023年11月)

    API 10。相比3.2 Release版本,新增40 00多个ArkTS API,应用开发能力更加丰富;HDF新增200多个HDI接口,硬件适配更加便捷;我们持续优化图形框架和方舟编
    的头像 发表于 12-08 21:15 668次阅读
    <b class='flag-5'>OpenHarmony</b>社区运营报告(2023年11月)

    搭载KaihongOS的高动态人形机器人“夸父”通过OpenHarmony3.2 Release版本兼容性测评

      近日,搭载KaihongOS的国内首款可跳跃、可适应多地形行走的开源鸿蒙人形机器人通过OpenAtom OpenHarmony(以下简称“OpenHarmony”)3.2 Release
    的头像 发表于 12-07 18:15 510次阅读

    OpenHarmony 4.0 Release版本发布

    与业务场景的终端商用设备操作系统发行版及解决方案。以下正文转自OpenAtomOpenHarmony微信公众号。OpenHarmony4.0Release版本如期而
    的头像 发表于 11-18 08:02 475次阅读
    <b class='flag-5'>OpenHarmony</b> 4.0 <b class='flag-5'>Release</b><b class='flag-5'>版本</b>发布