OpenGL ES粒子发生器

转载 2011年01月18日 23:12:00

http://www.iphone-geek.cn/%E7%BC%96%E7%A8%8B/opengl-es%E7%B2%92%E5%AD%90%E5%8F%91%E7%94%9F%E5%99%A8

译者注:此代码虽然有这样那样的问题,但仍然值得参考。

IMG_0038

我在360 iDev会议中汇总了粒子发生器的代码。由于我又要开始进行有收入的工作所以我必须将之处之高阁了,但我准备在这里分享给有兴趣者。

IMG_0020

首先,我要说我并不是一个OpenGL的专家,我撰写此文能够帮助我更好地学习OpenGL 和粒子系统,所以可以肯定还有很多地方需要改进。

IMG_0038

其次,此代码还有许多bug,并不适用于最终产品。最重要的一个bug是试图释放粒子时造成的死循环。粒子内存没有被释放,它不断被重用。有两个链 接表,一个用于保存可见的粒子,另一个保存不再可见的粒子。当一个粒子生存期到达时,它将被从一个列表移动到另一个。当需要一个新的粒子时,就从列表中提 取一个。此方法可以避免不断的内存分配和释放的开销 。但是,当粒子发射后,我需要一个选项来释放内存,现在它会造成死循环。

IMG_0005

第三,示例程序将所有的发生器放入一个数组中。当你轻触屏幕时,当前发生器会停止发射,下一个发生器开始启动。当最后一个发生器结束时,第一个发生 器循环启动。此时,会遇到pthread锁竞争问题,两个线程会等待另一个线程,引起程序锁住。由于我并非手工建立线程,所以跟踪此问题可能有相当的难 度。

IMG_0004

可在Google Code project 下载 。如果你不想使用subversion,你也可以直接下载zip文件Particles_03_06_2008 .

相关文章推荐

openGL ES2.0 粒子系统代码(圆片)

  • 2014年08月14日 16:11
  • 24.01MB
  • 下载

OpenGL ES粒子系统制作墙纸

  • 2014年08月14日 16:19
  • 24.15MB
  • 下载

openGL ES进阶教程(一)之粒子光束

2016AR/VR喊的火热,这些在Android上的实现或多或少与openGL 有关。 OpenGL能做的事情太多了!很多程序也看起来异常复杂。更有可能因为某一步的顺序错误导致最后渲染出错,这是因为,...

OpenGL ES2.0粒子系统,添加重力

  • 2014年08月14日 16:14
  • 24MB
  • 下载

android opengl es 粒子系统

先改正在"位图子体"中关于坐标的说法正确的画法应如下图所示 哦哦,粒子系统的实现与星星实现有相似之处,大体上就是先创建一个类,这个类中包含了要创建原型的各类属性,然后再在Renderer中将其各类属性...

Android OpenGL ES2.0粒子系统

  • 2014年08月15日 11:14
  • 25.01MB
  • 下载

OpenGL ES2.0粒子系统(附有源码)

http://blog.csdn.net/cxy200927099/article/details/38584487 刚学OpenGL 2个多星期,也算是入门了吧 在看了老外写...

android opengl es 粒子效果实例代码

概述:粒子系统采用许多形状简单的微小粒子作为基本元素,用它们来表示不规则模糊物体,系统中的每个粒子都有各自的生命周期,我们可以管理它们从创建到消亡的时间,它们都要经历“产生”、“运动”、“消亡”这三个...

OpenGL ES2.0粒子系统(附有源码)

刚学OpenGL 2个多星期,也算是入门了吧 在看了老外写的书 OpenGL ES 2 for Android A Quick - Start Guide.pdf 后,由于这本书上给的代码...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenGL ES粒子发生器
举报原因:
原因补充:

(最多只允许输入30个字)