Earth and Moon

For the past week, I decided to work on a more photo-realistic render. A while back, I was entertaining myself by trying to render the Earth and moon in Maya. I never finished that scene, however, because I couldn’t find a good way to render out stars in Maya without using a static background image. Before I found a good solution in Maya, I got sidetracked and forgot about it.

I decided to translate the surfaces from Maya to LightWave, to try to stretch my abilities in the LightWave node editor. Here is my final result:

LightWave 3D render of the Earth and moon from space.
LightWave 3D render of the Earth and moon from space.

The node editor has some powerful features for mixing disparate textures into one surface. The Earth is one surface, with multiple textures mixed together to form the land, sea, clouds, and city lights. One difficult effect, however, is the blue glow of the atmosphere on the day side of the Earth. In Maya, it was pretty easy to accomplish using a volumetric shader. Unfortunately, LightWave does not support volumetric shaders so I had to resort to some trickery to mimic that effect.

I will put together a tutorial to show the different techniques I used to render the Earth, hopefully available later this week.

For the background stars, I used the common one-point-poly method of creating a starfield. I used a mix of different surfaces, applied to different sets of one-point-polygons, to add some additional color differences to the background stars. My only complaint about this technique is that there is too little size variation among the stars. In fact, there is not any real size variation, it is only a visual trick due to adding turbulence noise to the color channel of the star surfaces.

I tried to generate HyperVoxels to use as stars, but there are several drawbacks. First, the HyperVoxels end up having real-world size. I created all the particles in a separate camera view to make it quicker to perform test renders, and my camera had a small FOV (35mm). When I switched to the render camera, with a focal length of 350mm, the HyperVoxels were far too large. So if I was doing any kind of animation where the camera focal length can change between shots, using HyperVoxels would be far too difficult to manage.

The second problem with HyperVoxels is that they significantly increase the render time. I went from a 40 second render to a 10 minute render with 150,000 HyperVoxels in the scene. Considering that the I surfaced the HyperVoxels as tiny spheres far out in the distance, that is a very bad tradeoff for such a simple effect.