OpenGL ES实现自定义编程粒子效果 思路

2021-04-18  本文已影响0人  辉辉岁月

本案例旨在于了解OpenGL ES中自定义编程粒子效果的整体实现思路。

案例的整体效果如下:

从效果图中可以看出,案例实现了4种粒子效果,下面来说说实现的整体流程

如图所示,大致分为4部分

视图控制器类

在这个类中主要是通过粒子类CCPointParticleEffect创建粒子对象,并实现4种粒子效果,然后系统调用GLKView & GLKViewDelegate代理方法进行绘制和更新

涉及的变量及函数如图所示

粒子类

这个类主要是管理并绘制所有的粒子,相当于GLKit中的GLKBaseEffect类,
对外提供了三个方法

prepareToDraw函数,有以下几步准备工作

其中loadShader函数的流程如下

涉及的变量及函数实现如下

工具类
该类主要是将OpenGL ES 的部分操作封装成了自定义的方法,增加了代码的复用性,主要封装了4个方法

涉及的变量及函数实现如下

自定义着色器
着色器中的变量及man函数操作如下

从上面的流程中可以看出,自定义编程实现粒子效果是一件非常繁琐的事,在实际的iOS开发中,并不会这么做,一般都是使用Core Animation中的特殊图层CAEmitterLayer来实现粒子效果,主要是因为苹果对粒子效果的封装已经非常完善了,即使用很少的代码便可实现粒子效果。

完整的代码见github - 1212_OpenGL ES自定义编程实现粒子效果

上一篇下一篇

猜你喜欢

热点阅读