目录
目录README.md

赛题题目:端侧操作系统图形2D粒子动效优化

赛题说明:

粒子动效提升了界面的丰富性,在大桌面转场,文件传送,扫描二维码,以及在应用的视频背景等场景中应用非常广泛。开源端侧操作系统如OpenHarmony操作系统提供了系统的2D粒子动效能力,用户可以使用开放的粒子动画接口,在应用或者大桌面场景创建UI粒子动画效果。 在动视效UX设计越来越高端精致的趋势下,设计师和应用场景提出了更多粒子数以及更多的粒子运动效果(力场作用,颜色渐变)的需求。但现有的粒子系统在终端功耗的约束下,只能支撑1000个粒子的实时(120fps)计算渲染。原因分析如下。OpenHarmony现有的2D粒子系统主要包括了粒子计算和粒子绘制两个主要的过程。粒子绘制在2D统一渲染框架中,使用Skia绘制。由于skia并不提供GPU计算管线,粒子计算当前采用了CPU计算的方式。具体流程如下图示意:

OpenHarmony粒子动画的主要步骤和流程 本创新大赛的赛题为:通过优化粒子计算和粒子绘制流程,支撑端侧1万粒子120帧实时仿真绘制,相同场景下功耗低于优化前的基线。优化手段可包括但不限于粒子计算和粒子绘制全GPU化、指令合批,编译优化等。 这里提供一个具体优化思路分析,做为对参赛选手的引导。 参考思路:考虑抛弃使用CPU实现粒子计算,将粒子计算和粒子绘制融合到一个流程,通过向skia提交粒子绘制指令,在GPU中完成粒子计算和结果更新最终直接完成粒子绘制结果。这个思路优点是GPU适用于大规模粒子的场景,在性能和能效上有先天的优势,需要解决的问题是,粒子动画是一个有状态流程,每帧中粒子计算的输入值取决于上一帧粒子计算的结果,如果使用全GPU解决方案,如何每帧保存这个粒子状态也是一个技术挑战。 赛题的挑战指标:5000个粒子场景实现120Hz的帧率,在相同场景下优化后的功耗要优化前的功耗降低30%。

赛题要求:

  1. 需要基于开源操作系统实现效果,需要满足目标效果;
  2. 若基于OpenHarmony操作系统,实现方法不得与OpenHarmony操作系统已有算法雷同或者一致;
  3. 优化后在粒子规模为5000个粒子数量的条件下,各个粒子效果的场景在移动端设备上120fps满帧运行;
  4. 在相同的场景下(如1000个粒子数),效果不劣化的前提下,优化后相比OpenHarmony操作系统已有算法功耗优化30%;
  5. 要求在给定硬件设备上进行比测。

评分标准:

评分项 占比 说明 目标 40 达成10000个粒子并120fps满帧,40分;达成5000个粒子并120fps满帧,35分。性能若未达标120帧,按照差距比例给分。 功耗 40 优化后对比优化前功耗优化了30%,如果没有达到30%按照达成比例给分,如果是负优化,这项不得分; 代码规范性 10 代码符合OpenHarmony社区规范,按照规范类型扣分点,每条减少1分,直至为0 文档质量 10 文档能将从架构和技术实现角度,说明架构和技术竞争力。

赛题联系人:

粆倩文 chaoqianwen@huawei.com

参考资料:

关于
28.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号