But I wonder if there's a way to combine both approaches? Like using smooth gradients for the base texture while applying some small-scale turbulent dynamics on top. It could add a nice touch of realism without going full-on simulation, which can get heavy on performance.
Also, have you found any tools or libraries that make working with these simulations more accessible? Sometimes it feels like there’s a barrier to entry with the math, but once you get it, the creative possibilities are endless!
Ooooo… we have smoke like it’s a 1930s billiards bar.
Here’s a few examples that use some fluid dynamics to make “smoke”
https://play.huwroberts.dev/advection/
https://www.shadertoy.com/view/DsKyWm
https://ghostinthecode.net/2016/08/17/fire.html
For fire, the import part is the flame, not the spark. It’s the same methods as above. Everything eventually lands on a 2D texture where you blur or blend it with the scene.
For smoke ribbons this works really well in screen space. For big plumes like mushroom clouds or physical clouds not so much. For those, volumetric SDF is the way to go with rayleigh marching and some gradient of grey.
Anyway, happy coding and enjoy playing with the rules of reality!