首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成GPU粒子

生成GPU粒子
EN

Stack Overflow用户
提问于 2016-07-10 03:38:25
回答 0查看 637关注 0票数 2

我正在开发我的第一个游戏引擎,并试图实现一个GPU粒子系统。我以前在CPU上实现了一个,但现在我正在努力使它更有效率。具体地说,我的问题是在生命周期中产生粒子。

因为我正在为粒子引擎处理帧缓冲区纹理,所以它是非常并行的,但代价是无法返回到CPU,对吧?我首先绘制了一个处理特定粒子系统计算的四边形(为了排序,可能还需要有第二个四边形),然后运行glDrawArraysInstanced

我的一个想法是在需要创建粒子时使用boolean或int,表示创建粒子的需要或要产生的粒子量,两者都由CPU初始化。因此,如果我发现一个粒子(像素)的寿命(假设第一个fbo纹理的alpha值)小于零,并且我知道我应该创建它,我如何禁用其余粒子的创建,或减少要爆炸的粒子数量?我听说过像转换反馈这样的东西,但我不知道这是不是最好的方法。和无状态粒子声音限制-并不是所有粒子都有1:1的产卵率。

简单地重复一下这个问题:产生GPU粒子的最佳方法是什么?

如果我能得到CPU上的粒子数量,顺便说一下,我可以设置绘制glDrawArraysInstanced的数量,所以如果你能在你的答案中包括这个数字,我将不胜感激。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38285650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档