add hap
本仓库为第二届中国研究生操作系统开源创新大赛,系统赛道“周四焦糖厚蛋挞队”的作品仓库。技术细节与详细测试见功能说明文档与测评视频。
开发工具:DevEco Studio v5.0.5 Release操作系统:OpenHarmony 5.0.3,对应API能力级别为API 15 Release开发及测试硬件设备:OpenHarmony开发者手机二代、Huawei Mate 70 Pro
我们的粒子系统具有功能丰富,使用简单的特点,基本实现了OH原生粒子接口的所有功能,接口参数如下表:
const config: EmitterConfig = { downsampling: 1, shape: { type: "Rectangle", l: [0, 0], r: [750, 1500] }, rate: 200, count: 60 * 10000, life: 3 * 1000, size: { type: TValueType.Linear, spots: [15,25], }, weight: 1, type: ParticleType.Point, velocity: { type: VelocityType.Custom, speed: 25, angle: 3.1415926 * 3 / 2 }, color: { type: TValueType.Linear, spots: [ [0.3, 0.5, 0.0, 0.0], [0.3, 0.5, 0.9, 1.0] ] } }
const config: EmitterConfig = { downsampling: 1, shape: { type: "Rectangle", l: [0, 0], r: [750, 1500] }, rate: 100, count: 100 * 10000, life: 3 * 1000, size: { type: TValueType.Constant, spots: [20,20], }, weight: 1, type: ParticleType.Image, velocity: { type: VelocityType.Out, speed: [20, 30] }, color: { type: TValueType.Constant, spots: [ [0,0,0,1], [0,0,0,1] ] }, image: "egg_tart.png" };
普通粒子和图片粒子效果
我们同时实现了粒子运动场,方便开发者实现更真实的效果,其中包括引力场、恒力场、通用场。
// 创建引力场 const gravitation: Gravitation = { center: [500, 1000], // 引力中心坐标 mass: 1000, // 引力强度 din: false // 静态场 }; // 创建恒力场 const constantForce: ConstantForce = { radian: 0, // 向右的力 strength: 100 // 力的大小 }; // 创建通用场 const field: Field = { smoothness: 10, // 平滑度 strength: 100 // 场强度 }; // 添加到粒子系统 nativeRender.addGravitation('abc', gravitation); nativeRender.addConstantForce('abc', constantForce); nativeRender.addField('abc', field);
加入运动场效果
为测试粒子性能,队伍开发了测试应用。该应用可以进行粒子发射速率、大小等基本参数设定,并可选择调用我们的粒子系统或OpenHarmony原生接口。下面介绍该测试应用的安装方式。
├─ParticleSystem ├─AppScope // 应用级资源和配置 └─entry // 应用入口模块 └─src ├─main │ ├─cpp // C++实现的粒子系统核心代码 │ │ ├─Base // 基础组件:Program类、FBO类、向量数学库等 │ │ ├─Context // EGL上下文管理,渲染环境设置 │ │ ├─Particle // 粒子系统核心参数:粒子定义、发射器、运动场、配置 │ │ ├─postprocess // 后期处理效果相关代码 │ │ │ ├─ResolveTranslucent // 处理半透明效果的后期处理 │ │ │ └─SimpleCopy // 简单的纹理复制后期处理 │ │ ├─shader // 着色器相关代码 │ │ │ └─shaders // GLSL着色器源码:计算着色器、顶点着色器、片段着色器 │ │ └─types // 类型定义 │ │ └─libnativerender // 原生渲染库相关的类型定义 │ ├─ets // ArkTS代码实现 │ │ ├─entryability // 应用入口类 │ │ └─pages // 应用页面实现,包含ParticleSystemGPU.ets │ └─resources // 应用资源文件,如图像粒子原图片 └─ohosTest
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
端侧操作系统图形2D粒子动效优化
本仓库为第二届中国研究生操作系统开源创新大赛,系统赛道“周四焦糖厚蛋挞队”的作品仓库。技术细节与详细测试见功能说明文档与测评视频。
开发及运行环境
开发工具:DevEco Studio v5.0.5 Release
操作系统:OpenHarmony 5.0.3,对应API能力级别为API 15 Release
开发及测试硬件设备:OpenHarmony开发者手机二代、Huawei Mate 70 Pro
粒子接口及使用方式
粒子接口说明
我们的粒子系统具有功能丰富,使用简单的特点,基本实现了OH原生粒子接口的所有功能,接口参数如下表:
普通粒子使用示例
图片粒子使用示例
代码效果:
普通粒子和图片粒子效果
粒子运动场参数说明
我们同时实现了粒子运动场,方便开发者实现更真实的效果,其中包括引力场、恒力场、通用场。
粒子场使用示例
加入运动场效果
万级粒子测试应用安装
为测试粒子性能,队伍开发了测试应用。该应用可以进行粒子发射速率、大小等基本参数设定,并可选择调用我们的粒子系统或OpenHarmony原生接口。下面介绍该测试应用的安装方式。
方式1 DevEco Studio安装
方式2 Hap包安装
测试应用使用方式
项目结构