-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CPU Particles #28
base: main
Are you sure you want to change the base?
CPU Particles #28
Conversation
Hey, I was really interested in creating something like this as well, but after looking at your code it seems like Bevy is going through a lot of changes with the render system, so I think I'm going to wait a little while until it's more stable. But I have a few ideas for how users can control values for things like position, 2D rotation, color, etc. So I figured you might be interested, especially if you are going to be the driving force behind this (I'm not too involved, so I don't know about who is doing what, but you seem way more experienced with this stuff). Essentially, it's a builder pattern for interpolation curves. It would look like so:
The idea is that the lengths are relative (they don't have to add to 1); 20 will become 20/(20+30+30)=0.25. This could work with things like your Also, I think |
Seems good, the referenced Curve PR in the RFC could really use a better builder-like public interface. Though I think the eventual goal is to have it available in some general editor eventually instead of authoring it from code.
This is actually probably better to just keep it simple.
Yeah this is why I'm waiting for the aforementioned animation curve PR and 0.6's render rework to land before opening a PR with this. |
This very much look like the kind of feature that can be entirely investigated and implemented in an external crate without an RFC. Case in point is |
Yes, this can be experimented with externally, and I am via https://github.com/james7132/bevy_prototype_particles (though that is slowly getting out of date with the rendering implementation), but ultimately I want this to be a first party crate at some point. The rationale is in the RFC: no competitive game engine is considered feature complete without some kind of implementation for particle systems. Also having a common implementation/interface allows the ecosystem to develop tools against it more readily (i.e. CPU-side modifiers). IMO, we need both a first party CPU and a GPU implementation to round out the rendering offering that Bevy has to be competitive with pretty much any other major game engine. |
Just mentioning that this crate: https://github.com/abnormalbrain/bevy_particle_systems |
RENDERED
This RFC proposes adding a fully featured CPU particle system implementation to Bevy.