我正在尝试使用 OpenGL ES 2.0 在 iPhone 上实现状态保留粒子系统。通过状态保持,我的意思是每个粒子在时间上向前集成,具有随时间变化的唯一速度和位置向量,并且无法在每次渲染调用时从初始条件计算。
这是我能想到的一种可能的方式。
- 在 VBO 中设置粒子初始条件。
- 在顶点着色器中集成粒子,在片段着色器中将结果写入纹理。(第一次渲染调用)
- 将数据从纹理复制到 VBO。
- 从 VBO 中的数据渲染粒子。(第二次渲染调用)
- 重复 2.-4。
我唯一不知道如何有效地做的是第3步。我必须通过CPU吗?我想知道是否可以使用 OpenGL ES 2.0 完全在 GPU 上执行此操作。非常感谢任何提示!