Creating Clouds for Sky Fleet
Figuring out the clouds for Sky Fleet was a journey but I'm pretty happy with the final solution. Here is how it works and the many failures along the way.
My first idea was to use simple meshes for the clouds. I believe I booleaned together some spheres then cleaned them up to get these shapes.
They thought they looked pretty cool but knew I needed a better solution. I stumbled upon a video by Sebastian Lague on youtube about clouds that gave me some ideas. Sebastian's videos are amazing if you've never seen them.
Watching this video led me down a rabbit hole of cloud rendering shaders. My attempt didn't turn out that great and I finally decided that I wanted a styalized look for the clouds.
Instead of focusing on the rendering I decided to try to come up with better shapes for the clouds. In Sebastian's video he talks about using worley noise. I combined worley and simplex noise to come up with the shapes below.
This gave me much better shapes for the clouds but they looked way too solid I thought.
The first thing I tried was duplicating the meshes a couple times and expanding them. The inside mesh is opaque and the outer meshes are transparent.
After watching more youtube videos I tried this technique and was pretty happy with the result.
Looks pretty good I think but a little too crisp. After some research I found alpha-to-coverage which can be used to apply anti-aliasing to alpha test shaders. Here's how the final clouds look in the game.
Since finishing Sky Fleet I got curious about clouds again and made a little cloudy planet shader.
Here's another way to do fake clouds by Oakleaf
Smacked together some quad-based fake #volumetric clouds in a couple of days. Ended up doing a simple depth sort to keep the quads in correct order, at 500 quads a dumb depth sort + vertex buffer reconstruction takes about 2 ms. Buffers are nice. #GameMaker #gamedev pic.twitter.com/gbaRILUs6N
— Oakleaf (@Oakleaff_) August 22, 2022