Hey all,
I was just looking to get some input on how to go about rendering an air/wind mechanic in my project.
It's a 3D platformer, I'm using the bullet physics engine for game physics. There's a mechanic that blows the player up into the air.
My thoughts on going about this are:
1: I can just make a 2D animation of leaves and such blowing upward and billboard the image.
2: batch a bunch of simple objects (leaves and such) and physically blow them upward (basically a simple particle effect using the physics engine, but with simple 3D objects).
3: same as #2 but with 2D billboarded particles instead of 3D objects.
4: use a compute shader with a particle effect to give a bit more depth/animation to the particles.
My concern with #1 is that it'll look a little funny, unless my animation is fantastic, with the leaves rotating around, giving the illusion of 3D. But, I'm not sure I could pull it off. This method works great for my smoke/steam effects, but I worry it's not quite the right approach here. Additionally, the effect will continue to run, and an animation like this will likely look repetitive unless it's a rather long animation. The other options I can randomize.
My concern with #3 is the same with #1 except being flat particles, the best I could do is just rotate them around, which will almost certainly look a little flat.
My concern with #4 is that I generally don't like using compute shaders Also, it seems a bit overkill here for the effect.
I'm leaning toward #2, but kind of don't want to waste the resources for such a simple effect. Though, I haven't profiled this option yet, it could totally be a non-issue (I don't imagine the physics engine will be significantly slowed down by a handful of objects being blown upward). My concern would be that either the effect will feel a bit shallow if there aren't enough things being blown upward or, if there are enough things being blown upward, that it will just seem unrealistic/weird. It could be tricky to get right.
For reference, I'll likely limit the instances of this effect (it's triggered by the player), so there won't be the risk of running dozens or hundreds at the same time, bogging things down.
Anyhow, I'd be interested in any other ideas of how people have gone about little effects like this. Maybe there's something I haven't thought of. Thanks in advance for any thoughts/input!