The magic of this planet is that it really is procedural. No manual intervention is required to create the final shot.Tomas Griger
This is where real fun begins and the real power of Nuke comes into play. Once the precomps were done, I had some ten passes in front of me that I could use to assemble a realistic-looking Earth.
A) Planet surface
As a starting point, I wanted to achieve a plastic-looking surface of the Earth. No clouds or atmosphere yet, just a nice globe. I’ve been playing around with Displacement and Geodisplace nodes for a long time, but with such massive texture files, each one of these methods has extended the rendering time way too much.
After many many trials and errors, I found a way how to display the relief of planet surface with very little impact on rendering time. It was done with finely tuned BumpBoss node settings which I interconnected with the camera and the light representing the Sun to throw the shadows of the hills in the right direction no matter what. Since we are already working in 2D space and the positions of the camera and the Sun are in 3D, I had to dust off my knowledge of trigonometry and use a combination of sines and cosines to create Expressions which compute the correct shadow direction in 2D space.
The relief can get some nice depth using atmospheric “haze”. High mountains are seen more clearly than areas on the sea level, as the light is passing through less atmosphere. Using the height map, I covered the Earth surface with soft blurs or noises to give the impression of atmospheric haze and fog where needed. I wanted to offer the expression of the plasticity especially in the mountainous regions, so I’ve put some extra mist in the mountain valleys, again by procedural actions, no manual editing involved.
It is possible to stack multiple layers of mist, haze and atmospheric inversion on top of each other to make the result look believable. It is an interesting alchemy that can dramatically change the outcome from a wild sci-fi planet to a realistic image. It is one of the most tricky parts, but also the most interesting and technically creative.
B) Specular and LIGHTS Effects
The Earth’s surface is extremely diverse. Homogenous areas kill the realism. More broken it is, more realistic it looks. I covered the vast blue areas of the oceans with several layers of Noise and added the Bathymetry map – depths of the seas. As the water has lots of specular reflection, it is also necessary to integrate it into the image. When the Sun is low above the horizon, it creates a very nice reflection on the water surface, not only on surface of the oceans, but also on rivers and lakes. This was the opportunity to create some nice WOW effect, as even the real ISS photos are the best at sunrises and sunsets.
Last day of the 3D Earth – ▶️ video.
C) Night / Day
Understandably, the Earth’s surface looks quite different at night. Creating a night Earth is a nice grading practice.
I added the texture with Night lights but I had to consider the physics of light again. Cities in deep valleys illuminate the adjacent slopes, but cities in the lowlands do not shine into their surroundings that much. What the night side of the Earth looks like to a naked eye, only a few people can tell. In CGI, I work with an imaginary camera sensor, so I can set the values to look good and believable.
I had to abandon the reality when I came to displaying the day-night transition. The reference images make it clear: when we take a picture of the Earth where both day and night are seen, the night part is just pitch black. I do not want that. I wanted to show some city lights and I had to set up the transition very carefully to keep it believable to human eye.
Nothing adds more to realism of the Earth than good looking believable atmosphere. Therefore, the clouds are critical point in the creation of the planet. There is no usable texture for clouds, no ordinary Noise will be sufficient. Clouds have their patterns, their dynamics, their interaction with the environment, there are many kinds of them and they are not random at all. I can usually tell by looking at the clouds in an image, whether it is real photography or CGI. Poor clouds make poor CGI planet.
Creating good clouds is a science of its own. I am always working on better clouds, but to get some results I needed to start somewhere. Since the texture of clouds from NASA is inadequate (from the altitude of ISS they are heavily pixelated), I had to manually make my own map of clouds.
I had to cut off pieces of clouds from NASA textures, transform them and paste them back together to create reasonably good cloud map. Working with such a large images as cloud textures in Photoshop is really painful, Nuke really excells at this. After many Rotos, Transforms and Merges, I created 3 levels of clouds that I placed on 3 different sized spheres to create the impression of depth of the atmosphere.
I’ve split the clouds into three layers, low clouds, normal clouds and high clouds and colored Red, Blue and Green. It gave me some more flexibility later. For example, when I wanted to show Italy at night but it was covered by a cloud, I turned off the color channel containing the unwanted cloud and I was still left with plenty of useful clouds from the other tho color channels. Nice fast fix thanks to which I didn’t have to re-render the precomps every time the clouds obstructed something. Working with large files is quite hardware intensive, so simple quick fixes like this can saved me hours of time.
Three layers of clouds also create a nice parallax in the animation of flyover over the Earth. The top layer of clouds is deliberately exaggerated way too high so that parallax can always be clearly seen. The lowest layer of clouds is based lower than the peaks of the high mountains, so that they are towering above the clouds, just like they do in reality.
Because I was working in 2D space, the fun part was creating the shadows of the clouds. Again, the shadow placement depends on the location of the Sun in relation to camera. So again, I needed a few trigonometric operations to make sure the shadow always shifts in the right direction. But this was even more tricky: for example, the second layer is casting the shadow on the Earth’s surface, but also on the lower cloud layer below it. But the shadow on the lower clouds is higher than the Earth’s surface and at the same time it does not cast any shadow on the higher cloud layer. Because this is done in 2D space and Nuke does not know which layer is higher and which is lower, I needed to create an interesting maze of Shuffles and Merges. When I completed it, I knew that these two nodes would not bring me any surprise, ever: D
At night, everything behaves quite differently. The clouds at night cast almost no shadows, on the other hand, cities illuminate the clouds from below, but their light is scattered. Also, some clouds are dense rain clouds and others are fine thin stratospheric clouds. The more variations I incorporated into the clouds, the more realistic they looked and more, but the script grew bigger and bigger.
Equally important as clouds is the atmospheric haze. It may seem simple at first glance. You make some blue Constant with a circular Gradient, a little Blur and you have the atmosphere. No. It isn’t that simple. In fact, it is the biggest alchemy. I’ve spent literally days tweaking it to get it just right. This is where even the slightest change in grading changes the look of the entire planet completely. It may look too white and “milky”, you move one adjustment tiny bit and all of a sudden, you have hardly any haze. And again, the higher are the clouds, the less atmosphere there is between the cloud and the camera, and the amount of “haze” needs to be adjusted accordingly.
The earth is round (sorry flatearhers) and so we can see more haze towards the horizon than when we are looking straight down from ISS. But while we no longer see the Earth’s surface on the horizon and everything blends into blue haze, the high clouds may still be visible, because they are simply too high to be obstructed by the haze. We are in 2D space, so anything like this must be defined in the image through networks of Alpha, Shuffle and Merge nodes.
When I got this far, I bumped into one of the most difficult tasks – final grading. It never seemed good enough to me, every time I looked at the image, I found something I wanted to change. Vlado, who has a trained eye, helped me a lot with this, showed me various tricks and after days of tweaking, we agreed on the final version which we presented at Splash 2019 in Prague and is used in 2019 Compozitive showreel.
I made in total 30 shots, each 20 seconds long, from which we chose the best for the showreel. The magic of this planet is that it really is procedural. No manual intervention is required to create the final shot. Want a shot of Madagascar? I set the camera to Madagascar, run the render and that’s it. This was my goal and I am glad that with Vlado’s help I have achieved it.
The story doesn’t end here. NASA’s textures are not good enough, so I spent a few weeks developing a system that is closer to scientific applications than compositing. It uses raw data from satellites, just like Google Earth does. From the altitude of 400 km I can now fly to an airplane flight altitude of 10km and the surface of the Earth is still perfectly sharp. Such texture of the whole Earth would have a few terabytes as one file, so I had to develop a system of “tiles” in Nuke, where only the parts of the texture that are currently visible are used for each image. The system switches off the rest of the tiles automatically. It is inspired by the UDIM system that Vlado brought to my attention. And I won’t stop until I get the perfect 3D looking clouds. They are the biggest challenge.
The planet I created in Nuke is the best quality I’ve ever done thanks to the knowledge and techniques Vladimir showed us at Compozitive Academy. At the same time, it was just the beginning and I believe that next year we will show our Planet 2.0, which will once again push the limits of what compositors think can be done in Nuke.