I've spent a better past 2 months almost. Working hard on an advanced sky and weather system for Weasel engine, Atmos-Engine also known as... PRAR.DNWC [The To be announced game's sky atmosphere engine, made for physically realistic and Realtime DAY, NIGHT, WEATHER Cycle] It aims to encompass that game's mood and is specifically focused for that game's procedural weather system,
which sadly won't come with weasel engine and will only provide parameters and settings to let the user tweak the sky and clouds on the up-close most of physically accurate..
And while I do want to say that currently it's nowhere close to finished due to my reckless and whacky experimentation work, I've only getting close to the visuals but no where close to being developer ready in terms of giving the user flexibility for control..
I've better spent a long ass time studying clouds and their physics for a bit now.. And I know how they should be exactly built, but it's really hard to get something of-- balance of performance and quality at the same time, I don't want them to be a huge cost on performance budget on current hardware, at least no where more than 1ms and I know I can go lower!
but a lot of the studies have been spent around seeing how other developers made their own systems specifically focused on Horizon forbidden west's implementation

and while their SIGGRAPH Nubis cloud system presentation has taught me quite a bit about clouds and how they shape and form across time and rise to upper altitudes

I've managed to easily get all Stratus cloud types working and looking good just fine since it's some easy faded out Perlin noise with some whispy distortion. but the cumulus and cumulonimbus have been the hardest, while I believe I would have finished if I were to instead make a compute shader in the engine's codebase directly, I've opted with this masochistic mindset to wanting to get a working prototype in the blender shader editor, which proved to be hard as it's not as flexible as you'd think it is. And I've always asked crying out loud for why there is no gaussian blur node as it would have helped a lot in the case here. But I didn't give up and so through my 12th attempt I haven't gotten much closer.
What proved to be the hardest was, getting the popcorn fluffy shape that cumulus clouds have and makes them so special,

I've tried to follow along with using a noise texture to get the height shape but that proved to be inconsistent and would give us the structure we want rather, it gave us more of a mountain's point peak

now you would say we're getting close to that popcorn like shape. But the fact is...

the "popcorn" shape of clouds follow a force wind direction and sometimes they'd be more in the center and have that hemi-oval shape. but my implementation couldn't keep the popcorn look consistent when animated or if the user would to change the cloud cover amount. and didn't have much differentiation, as you could get extruded blobs with random variation of scale and would look much more seperated at times than meltedly merged
Comparison overview:


And so I've gotten mostly stuck here and stopped following other's implementation as they were also inconsistent and didn't really stay true. So now I am gonna take some break from this and focus on more important systems and hopefully I would bring a cloud model system that is both cheap to render and high quality! Cause now this almost caused me to have an aneurysm!
3 comments