本案例旨在于了解OpenGL ES中自定义编程粒子作用的全体结束思路。

案例的全体作用如下:

image

从作用图中能够看出,案例结束了4种粒子作用opengl怎么装置与装备,下面来说说结束的全体流程

了解-OpenGL-ES完成自定义编程粒子作用-思路

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

  • 视图控制器类:结束粒子作用
  • 粒子类:处理并制作粒子
  • 东西类:封装的着色器东西类
  • 着色器:GLSL自定义的极点和片元着色器

视图控制器类

在这个类中首要是经过粒子类CCPoios8备忘录intParticleEffect创立粒子方针,并结束4种粒子作用,然后系gitee统调用GLKView & GLKViewDelegate署理方法进行制作和更新

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

了解-OpenGL-ES完成自定义编程粒子作用-思路

粒子类

这个类首要是处理并制作一切的粒子,相当于GLKit中的GLKBaseEffect类,
对外供给了三opengl是什么意思个方法

  • addParticleAtPosition函数:用于添加粒子,每github怎么下载文件次调opengles3.1扩展包用仅添加一个粒子,在视图控制器中创立粒子方针,经过粒子方针来调用该方法创立粒子
    实施苹果电影流程图如图所示:

    了解-OpenGL-ES完成自定义编程粒子作用-思路

  • prepareToDraw函数,有以ios14.4.2值得更新吗下几步预备工作

    • 加载 & 运用shader

    • 经过Ugithub中文社区niform传递数据

    • 更新粒子数据,需求调用东西类中的初始化/更新数据办github下载法,将数苹果8plus据从CPU拷贝至GPU

    • 苹果xs备相关数据,需求调用东西类的封装的prepareToDrawWithAttrib方法,翻开attribute通道,并设置数据的读取方法

    • 绑定纹理
      函数的实施流程图如图所示

      了解-OpenGL-ES完成自定义编程粒子作用-思路

其间loadShader函数的流程如下

了解-OpenGL-ES完成自定义编程粒子作用-思路

  • draw函数:用于制作粒子,底层需求调用东西类的drawArrayW苹果12ithMode方法,运用OpenGL ES数组制作的方法进行制作

触及的变量及函数结束如下

了解-OpenGL-ES完成自定义编程粒子作用-思路

东西类
该类首要是将OpenGL ES 的部分操作封装成了自定义的方法,添加了代码的复用性,首要封装了4个方法

  • initWithAttribStride函数:初始化,用于在Ogithub永久回家地址penGL ES 中创立一个VBO(极点特征数组缓冲区)
  • reinitWithAttribStride函数:更新数据,用于在已有VBO的情况下,更新传入着色器中的数据
  • prepareToDrawWithAttrib函数:预备制作,用于翻开aios最好玩的手游ttrigitlabbute通道 & 设置数据的读取方法
  • drawPreparedArraysWithMode函数:制作,调用OpenGL ES 的数组制作方法进行图形的制作

触及的变量及函数结束如下

了解-OpenGL-ES完成自定义编程粒子作用-思路

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

了解-OpenGL-ES完成自定义编程粒子作用-思路

从上面的流程中能够看出,自定义编程结束粒子作用是一件非常繁琐的事苹果xs,在实践的iOS开发中,并不会这么做,一般都是运用Core Animation中的特殊图层CAEmitterLayer来结束粒子github永久回家地址作用,首要是因为苹果对粒子作用的opengles3.1扩展包封装现已非苹果12常完善了,即运用很少的代码便可结束粒子作用。

无缺的代码见github – 1212_OpenGL ES自定义编程结束粒子作用