如何在Android的OpenGL ES2中使用着色器控制粒子位置

问题描述

|| 我想在Android上绘制一个粒子系统,其中粒子从指定点连续流动。 没有着色器,我可以通过检查粒子的寿命来实现。如果寿命为零,则将位置重置到中心。 如何使用着色器实现相同的效果? 我用了一个寿命变量来跟踪粒子是否还活着。 一旦粒子死了,我想在指定点附近重新定位粒子。 每个粒子的寿命都是随机的, 有什么我可以使用着色器实现的方法吗? 为了使我的问题易于理解,例如,我想与Shader一起实施NeHe第19课(请参阅第19课的DrawGLScene)。 我的工作的完整代码可以在下面找到以供参考 1)无阴影 2)带明暗器     

解决方法

谢谢大家, 在为总休息日奋斗之后,我找到了解决方案... 现在我正在基于时间在顶点着色器中进行所有计算 我正在计算粒子死亡的时间 和mod与当前时间 将给出修改后的时间范围... 基本上每个粒子都会再次生存 可以在以下位置找到代码 谷歌代码目录 感谢所有尝试解决我的问题的人     ,例如,您必须在每个绘图中更新Draw函数中的分词的生命周期,然后将其传递给带有
GLES20.glVertexAttribPointer
的着色器,例如\“
attribute float a_lifetime;
\”。 看看这个来源