Cycles realistic atmosphere (with scattering)

Update 30.10.2018 - packed file, no textures, everything else is there
Atmosphere05_ani02_small_noTex.blend (4.3 MB)

Update 30.09.2017 - new file link:

I tried this in many render engines over the years, but for now blender / cycles is the only one that managed to render it:

the bend file is for some reason too big to upload, so i post the node-tree of the atmo-shader.
The textures are from NASA / the realistic earth tutorial from blenderguru (and the sea color raised in photoshop)
Apart from that the renders are straight out of blender (no post, but filmic color profile)

It is far from perfect - the atmosphere is too high, and it won’t work well from ground level (unless you let it render for a day maybe), still impressive what cycles can do.

I guess the file is too big as i applied the subd on the spheres (earth, clouds and atmo) - if there is interest, i can upload it to wetransfer or similar…



update with more images
ground level renders quite fast actually (all renders are about 10 min on cpu with an macbook)
I dont really understand how the color shift towards the sunset happens - it is nothing i set in the shader - it ‘just happens’.
Probably the Scatter node code has some reference values taken from the chemical composition of air? (because the color as far as i know is a direct result of that)

Just as clarification - there is only one light in the scene, black environment, and no settings changed - only light position (and density tweaks)



Good looking achievement.

You can link your .blend file via a different sharing host (theorysend,, sendspace, zippyshare, dropbox, deposit…)

I noticed that you decompose the position vector and then square each element individually. Why not use the vector dot product available in the vector math node?

This also reminded me of an atmosphere test that I did myself with volumetrics when it first came out. I used a similar setup to your nodes except I used a color ramp with the actual values for air density at various heights.

Thanks for the tip - changing the density indeed should be the next step… how did your test turn out?

edit: and the dot product made is more stable - thanks for that too.

The colouring happens because your volume scattering is blue, which means that blue light is scattered and red light keeps going straight.
So, if the volume is between you and the light source, it shows red, pretty much the reason the real sky is blue :slight_smile:

The same way, if you had a purple volume, it’d look green from behind.

1 Like

that makes sense

I uploaded the results to my Google Drive since I rendered at 4K, but you can check them out over here.

Hi! The results are looking pretty realistic! I was actually also trying to produce a simple shader like this for a long time, but i failed :slight_smile: I wanted to create a scene from around 20km altitude with those beautiful athmo scattering effects, but I think I’m just too stupid…could you post the latest node setup with the point density also?

This was my “best” result of an athmoshpere so far :slight_smile:


wow impressive

I actually just created a color ramp with normalised values for the air density in the value channel that I then converted back into actual density for the atmosphere based on the distance from the center of the spherical object. The clouds are basically a spherically projected texture of the clouds onto a sphere with a solidify modifier with the cloud texture forming both the density and the colour of the volume scatter node. I don’t have the node setup with me atm, but I can have it here within a month (away from the desktop rn).

impressive stuff, thanks for sharing!

By the way, this is the node setup I used. The RGB curves input gives you a nice control for the density. The color ramp is a little bit fiddly. Also notice the absoption, which shouldn’t be missed for physically correct rendering. I tinted it slightly yellow-brownish.


1 Like

Can you upload the blend? Please

Awesome look! I had a slightly different approach for my PlanetCreator2 shader pack, its a procedural shader for creating planets. as I am always looking for the ultimate fast rendering pipeline so instead of using true scattering. I used a mix of Translucency and Diffuse



A download would be much appreciated!

Really cool! I tried to achieve that some years ago ( . I never got the volume shader to work back then.

Love your results!

@Atair: very nice results. I will have to try what is render time on my mac :slight_smile:
BTW: have you seen OSL Sky Shader
It does not replace your shader since OSL one is based as environment (not as material for object).

I tried to animate movement in Z axis like trip from earth to space that I get some decent result, but this does not allow to get look at Earth itself.

1 Like