OpenGL 中粒子发射器的简单 3D 烟雾算法
我需要创建一个简单的粒子发射器来实现某种类似烟雾的效果。 我需要算法方面的帮助,该算法应该执行以下操作:
* 在生命周期为 L 的帧中创建 X 数量的粒子
* 定义帧中每个单独粒子的速度
是否有一些很好的数学算法可用于此?
I need to create a simple particle emitter to achieve somekind of a smoke-like effect.
I need help with the algorithm that should do something like this:
*Create X amount of particles in a frame with lifetime L
*Define the velocity for each individual particle in a frame
Is there some nice mathemtical algorithm available for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我见过的大多数只是在发射器级别具有发射速度,然后当您发射粒子时,您会选择一个速度矢量,该速度矢量在方向和方向上都稍微偏离发射器。长度。更先进的解决方案通过将其模拟为流体来使其具有体积。谷歌搜索体积烟雾可能会找到大量这方面的提示。
Most I've seen simply has an emission velocity at emitter level, then when you emit the particle you pick a velocity vector which slightly deviates from the emitter both in direction & length. More advanced solutions makes it volumetric by simulating it as fluids instead. Googling volumetric smoke will likely turn up a ton of tips on this.
我发现了这个复杂的例子 - fluidsim。
另一种是简单的 C 语言,没有 OpenGL,你可以在里面找到算法,检查一下
I found this complicated example - fluidsim.
And another one on simple C without OpenGL, you can find algorithm inside, check it