I’ve made some additions to my noise library. Most notably the random generation of rings. A bunch of combinations etc and I’ve got:
Considering the amount of pain I had trying to work out how to do this; I thought I’d write up something lengthy to explain how it works. It also helps me find if there’s anything in it that I don’t fully understand, else I wouldn’t be able to explain it.
The full Variant types header file has already been posted. This is the code I’m going off of.
Back from a break.
I’ve spent a few weeks working on engine enhancements to what I’m calling “spaceengine”. In addition, I’ve cleaned up a lot of the code and made some corrections here and there.
You can faintly see the planet, but what’s great is the successive levels of bloom.
And here you can see my very simplistic atmosphere being rendered. I had attempted to implement proper atmospheric scattering but the topic is very complex and I was having a lot of difficulty with it.
All of the samples for atmospheric scattering I’ve seen rely on earth-like parameters and coefficients, which is fine, but I know in advanced I’m going to need very non-earth like planets.
So for now I’ve opted for a simpler approach that essentially let’s the planet define the colour and density of it’s atmosphere, and the shader simply checks for eye ray length through the atmosphere and adjusts the colour accordingly. It works well enough for now.
Finally, I’ve implemented shadows for nearby objects.
Next, I’m working on object picking and then I’ll be revamping my noisemachine to work sort of like libnoise by using modules. This will help me get my planet and moon textures looking good.