android 动画引擎,一个使用openGL渲染的炫丽Android动画库

本文介绍了一个基于openGL的Android动画特效库,能够实现各种炫酷的动画效果,包括启动和退出动画等。通过提供的GitHub链接,用户可以获取详细安装指南和示例项目,以了解如何创建和渲染场景、设置模型更新器和矩阵更新器来实现复杂动画。此外,还解释了动画原理,如顶点坐标和颜色变化,以及如何优化更新器的性能。
摘要由CSDN通过智能技术生成

这是一个 android 动画特效库 可以实现各种炫酷动画。

github地址: ht t ps:// gith  u b.co m/g pl ib s/an dro id- ma gic-s ur fac e-view

1. 安装

gradle:dependencies {    compile 'com.gplibs:magic-surface-view:1.0.0'}

2. 一些示例效果

此文档只做一些简单说明, 具体使用方法还请参考其示例项目 (上面github地址可以找到示例项目) .

以下是一些示例效果:

启动及退出动画 :

模仿MacWindow动画 :

其他几个示例效果可以下载其示例项目运行查看。

3. 概述

一个MagicSurfaceView只能同时渲染一个MagicScene

一个MagicScene可以包含多个MagicSurface

一个MagicSurface可以对应一个View或者Bitmap对象

场景创建及渲染// 创建一个Surface对象MagicSurface surface = new MagicSurface(view) // view为要进行动画操作的View

.setVisible(true)                // 设置模型是否要渲染 (默认为true)

.setShininess(64)                // 设置模型材质光泽度,默认64; 数值越大越光滑, 只对光照生效,无光照效果可忽略.

.setGrid(30, 40)                 // 设置网格模型行列数,行列数越多效果越精致,但也更耗性能; 默认 30,30

.setEnableBlend(true)            // 是否开启混合为透明对象时需开启(默认为开启)

.setEnableDepthTest(true)        // 是否开启深度测试开启后会按三维坐标正常显示如果关闭绘制时将覆盖之前已经绘制的东西(默认为开启)

.setModelUpdater(modelUpdater)   // 设置模型更新器, 可以执行顶点坐标及颜色相关动画操作; 详情见 "5. 模型更新器 MagicSurfaceModelUpdater"

.setMatrixUpdater(matrixUpdater) // 设置矩阵更新器, 可以执行矩阵变换相关动画操作; 详情见 "6. 矩阵更新器 MagicSurfaceMatrixUpdater"

.drawGrid(false);                // 设置绘制时是否只绘制网络默认false. (调试动画找问题时可以只画网格可能有点帮助)// 创建场景MagicScene scene = new MagicSceneBuilder(mSurfaceView)

.addSurfaces(surface)            // 添加Surface对象可以添加多个 如: addSurfaces(surface, surface1, surface2)

.ambientColor(0XFF222222)        // 设置场景环境光, 默认为0XFFFFFFFF

.addLights(light)                // 添加光源对象,类型可以为PointLight或者DirectionalLight; 可以添加多个 如: addLights(light, light1, light2)

.setUpdater(sceneUpdater)        // 添加场景更新器, 可以执行场景相关变量的动画操作; 详情见 "4. 场景更新器 MagicSceneUpdater"

.build();// 渲染myMagicSurfaceView.render(scene);

模型更新器 MagicSurfaceModelUpdater 动画原理:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值