Hyper realistic Earth shader with Eevee


All images in this posts are rendered in eevee with 1 or 32 samples and bloom-option on. No additional post processing is done. GPU GeForce 1080Ti GTX

So I have been offline for a couple of years (6 years), but decided a couple of months ago to take a look into Blender 2.8 and see how its realtime rendering engine could handle volumetrics, or if I had to fake it. Turns out that eevee volumetrics is not very useful in this application because of its 2px rendering and performance issues when working with huge scales like this. Instead I applied my already working volumetric approach (same as in my cycles project). I extended this approach even more by letting the volume cover the whole atmosphere. With some smart tricks I managed to keep poly-count quite low, and still receive descent result, also supporting volumetric shadows.

The original post may be found here: https://blenderartists.org/t/space-earth-volumetric-cloud-shader-rayleight-scatter-etc/574238

Goal
First I think I can say I have reached all the goals from the OP:

:ballot_box_with_check: specular oceans
:ballot_box_with_check: volumetric clouds
:ballot_box_with_check: atmospheric effects such as raylight scattering and halos
:ballot_box_with_check: real displacement if closeup on mountains
:ballot_box_with_check: good looking from far
:ballot_box_with_check: eevee materials and nodes
:ballot_box_with_check: fast renders < 5 min frame (yes about 2 seconds/sample in 4k)
:ballot_box_with_check: Something I can take pictures at from any angle

Then I added some more

New goals 2019

ā€” Create an animation of the thing
ā€” Make the beast a bit more stable, faster and perhaps easier to adjust.
ā€” Would love even higher resolution on the clouds
ā€” When Iā€™m happy with the result, put all resources on blender market if anyone is interested

Hereā€™s what I have done so far:

First of all, I think I have preceeded my inital atempt in Cycles. Probably because I get more instant feedback working with eevee. What I have not succeeded in yet is any real displacement of mountains, but figure that could be solvable in the future. Also, I have used tricks like Shader to RGB node that is not available in cycles, thus, itā€™s only eevee.

Materials
I have worked hard with creating good resources for materials, creating many of the textures from scratch from NASAs scannings (+other open sources). Then I have merging them all in photoshop, creating assets with base resolution of 43200x21600 equivalent to 933 Mp or 43K (!). Cloud map has also been improved by trying to get rid of some of the more appearent cloned areas present in all online resources (Working on a new cloud map for this). I have also created a large resource of normal-maps, water, height, forest etc to be able to build more on my procedural approach.

Shaders
I have completely redone all shaders from scratch. The whole node-setup is a complicated beast, dealing with light-angles and faked reylei-scatter.
The future is probably some combination of texture and procedural approach to all shaders, but this is Alpha-version. The large textures also makes Blender to crash at the moment. Not entirely sure how to fix this.

Models
83 spheres

Rendering
At the moment one have to render in 4k to get aliasing correct in HD. Not sure why samples does not help me here, but maybe I have to fiddle with some driver settings on my GeForce? This was not really a problem until I started with really high resolution maps for rivers and water. Going to work on this a bit more.

Additional things I now have:

:ballot_box_with_check: volumetric shadows from the clouds along the terminator
:ballot_box_with_check: translucent clouds
:ballot_box_with_check: cities w lights + cloud illumination
:ballot_box_with_check: mixed procedural material for infinite resolution of terrain contours
:ballot_box_with_check: rast renders: 4 sec
:ballot_box_with_check: Random crashes :slight_smile:

So here are some more renders:




31 Likes

Wow, it looks pretty impressive :+1:. Iā€™ve made an earth before with the help of Blender Guru and it looks nothing like this, even in EEVEE.

2 Likes

4 sec for these renders? Thatā€™s unbelieveable! Itā€™s the best Earth I have seen here yetā€¦

3 Likes

Really glad to see you back, Poromaa! I referenced your 2013 post and othersā€™ to create my own photorealistic-ish Earth in the summer of 2017.

Ever since Iā€™ve seen Eevee, Iā€™ve been itching to try recreating a nice Earth in it, but college has kept me too busy lately. So Iā€™m really glad to see you go at it again. Looking forward to your progress updates on this front. :slight_smile:

1 Like

Its a really great work.
Very impressing to see the water surface reflections and the transition zone at the day and night boundary.

1 Like

Gorgeous stuff. I have been working on something similar and I would love to hear how you managed to create the clouds and shadows. That is the only part I have truly failed at.

Nevermind. I figured it out. Transparent shadows only work if you are using the ā€˜Alpha Hashedā€™ blend mode.

All cloud shadows and volumetric effects are one shader that ā€œfakesā€ it. That shader is then applied to a cloud-sphere that is duplicated 90 times with some scale-offset to create a volumetric atmosphere.

Yeah, cloud stacking is a well know method for creating pseudo volumetric effectsā€¦whatā€™s tripping me out is the shadowsā€¦youā€™re saying they are shader based too? How do they react to light direction?

If itā€™s one shader to do cloud and shadowsā€¦damnā€¦Iā€™m impressed. I just figured out that you can get some decent results with alpha hashed materials and high samples. Unfortunately, itā€™s slow.

For the fake shadows: Itā€™s a bit complicated, but I have used shader2rgb node to generate a light map of where sun is comming from. On terminators, this map is a gradient to black. I use that to translate textures toward dark side of earth, but only when z is close to surfaceā€¦ that will make all shadows (that is no real shadows, but rather just dark color masked by the cloud uv-map) get dragged out close to terminator.

The setup is a mad manā€™s work, but works and it is quite fast.

Poromaa, Good job! Looking forward for animationsā€¦

I think you and I should collaborate. We are clearly working towards similar ends. Iā€™ve been doing some extensive work on the Blue marble cloud map, which actually sucks pretty bad. Iā€™ve figured out a way to generate an infinite number of cloud variants without having to clone parts of the original texture. When Iā€™m finished working on this particular texture, it will be completely unique and much better looking than the blue marble maps. It may also be possible to have animated clouds too.

Iā€™m thinking of sharing my custom textures with you. I want to see what It they look like on your setup, which is much more advanced than mine. Btw, the test images below were rendered using the low resolution versions (16k). This particular cloud formation is not on the Blue Marble maps.

1 Like

Cool! Yeah, the blue marble cloud map is quite nasty. Have cleaned it up, but see cloned elements everywhere I look at my renderingsā€¦

I Have some crash problems when rendering animations, which i believe is because of the sizes of my textures. Because of that I, also have tried to look into ways to create procedural maps based on real textures of lower res, but its quite tricky. What I have figured out so far is how to apply a normal map of lower resolution, that is then repeated over the bigger map as a bump map. Normal maps have far better result than displacement or bump-maps which are rendered with 2px sampling (ugly).

Regarding animations - I have experimented with animating the clouds with a low res normal map that ā€œwarpsā€ them. The setup is quite complicated, but in short I render a normal map that represents the undistorted clouds. Then I use the photoshop liquidify tool to twirl and move parts of the map. I then apply that to the normal map. This enables me to tween between the undistorted cloud map (just ordinary normal map as input) and the ā€œwarpedā€ one that moves the clouds. Quite clever Imo. However, I get some nasty artifacts at the seam of the texture. Going to work on that.

Can you share the shader with us please?

Iā€™ve created this atmosphere in Eevee with mostly compositing techniques because that is what iā€™m good at. I am trying to create ultra-realistic animation of earth within Eevee but, I am having trouble creating depth in the clouds, even trying your technique iā€™m stuck on how you do it. I must say it is much easier to make clouds look better in Cycles but render times kill my PC. Can you share your Blender file with me to check out how is you create the clouds?

How did you do that raylight scattering on the atmosphere?
My Earth on Eevee:

What color is your atmosphere? I havenā€™t been able to get it rightā€¦

Hi Poromaa,

Any plans to put this on the market? I would love to play with this great earth :slight_smile:
Thank you.

When is this project finished? And is this a free download later?