#59: SHADOWS & LIGHT (Vue)
(and other apps)

MAKING A 3D PLANET IN VUE (and other apps)

Making a planet of your own, be it Earth, or a sci-fi one, is a common and fun thing in 3D art. Here's some detailed info on how to do it! :)
While I used Vue for this, the principles apply to most apps.

For the purposes of this tutorial, I used NASA's "Blue Marble Next Generation" images, courtesy of NASA who own the original textures of course, which can be found here:
I'm asusming this is for non-commercial work, see NASA's term sof use and conditions for using their images!

To follow this tutorial step by step, you'll need to download an image of your choice, I chose to use the "Blue Marble Next Generation - June" images. Now here's an important warning!! If you do not have a 64 bit computer with at least 4 gigs of RAM, you may not be able to use the large images!

Problem is, for high detail, you want very big images for a planet, like 16000 x 8000 or larger, NASA's images are mostly 21600x10800 size, and that's far too damn big for most ordinary computers to handle! 64 bit computers with lots of RAM, can.
NASA also has 5400x2700 sized images which are suitable for less powerful computers. 8000x4000 images or sometimes 16000x8000 are the maximum 32 bit PCs can usually take, so just be wary of this.

It's because as an image increases in size, it's memory requirements expand enormously. So if an image doubles in size, it now takes x4 the amount of memory to hold it (Length x breadth which has doubled so it increases by a total of x4)

Flaming Pear sells a very neat plugin for Photoshop called "Lunar Cell" you can use to make planet textures, it can even output them as seperate layers in a .psd file.

Real planets are not truly spherical by the way. Their centrifugal force bulges out their equators, thus rocky planets are very slightly eliptical, it's not very apparent though so don't worry about it for say, Earth, who's bulge is only about 40km high at the equator.
The larger and less dense a palent is, the more this warps the shape, so gas giants like Jupiter have an obviously non-spherical shape, which you should be aware of, this also applies to suns. Simply squash the starting sphere slightly in the vertical.

This was inspired by the aamazing "Interactive planetary creation tutorial" over on www.scifi-meshes.com
Geekatplay.com has an excellent tutorial on making a Sun and supernova, and AsilFX has a section on planets in Tips n' Tricks Vol1

And a debt of thanks is owed to the artists who let space grasp our visions: Chesley Bonestell, Chris Foss and the artists who worked on the BBC's "Sky At Night" astronomy program who gave me such joy :)

Earth Blue Pearl 800 size

To begin, it's important to understand you need four spheres, and individual textures to make a planet that has an atmosphere and lights for cities. Group the spheres when you've finished making them, as shown in the small image to the right, for ease of use later as they are all part of one planet.

  • Main planet surface. You need a texture map for this and a seperate one for specularity if it has oceans! Bump is optional, and is often not needed as it can't be seen except for up very close.
  • A special, minisculy larger copy of the planet surface sphere that will show up city lights by using transparency and a directional light linked to it.
    The Sun must be set to not affect this sphere, as you only see city lights in the dark! This special light, is put on the opposite side of the Sun, and set to only affect this "city light" sphere, will make sure it lights up in the dark. You only need a transparency texture for this to show where lights are.
  • A larger sphere with clouds. Note, clouds are only 1 to 6 miles above the surface of the Earth, so this sphere is just slightly smaller than your planet sphere. A texture for transparency is needed, and maybe one for bump.
  • Atmosphere, this uses a special volumetric material and functions to give the faint blue rim you see in space pictures of Earth. Earth's atmosphere goes out to about 50 miles but most of the visible part is only about 15 miles or so high..

Note: all material mapping must be "Parametric" for this to work!

Some things to understand:

  1. Textures for planets should be in 2 x 1 ratio size, like 1200 x 600 etc. this is so they map well to a sphere. NASA's Blue Marble images in 2 x 1 ratio, so no worries there.

  2. Space is very different from normal render surroundings. There's no atmosphere to scatter light, no objects around to reflect it. So, setups in space should have very little ambient light and normal stars produce very hard, deep shadows with little softness. Red giants can be enormous though and can be softer, simply due to their spread, and red dwarfs are dim.
    Close-by nebulae, star clusters and planets can throw a lot of light though, and many systems have more than one Sun, so it's fair and often necessary to use fill and extra lights simply to make a render look good.
    This is why space photographs look so odd, like moon landings or Hubble space repairs: light in space tends to be very harsh with deep shadows and hard contrast as there's little ambient light and shadows are hard, unlike on Earth. *cough* conspiracy theories, lol ;)

  3. Planets have "terminators", where sun's day and night shadows go over them. Planet's with atmospheres and normal suns will have softer temrinators, where as airless planets will have very dramatic changes from light to dark. Thus, you need to increase contrast on materials. Try around 40% for Earth-like planets, to 80% or more for airless planets.

  4. If you wish to have city lights, you need a greyscale image to drive where the lights will and will not be. Such maps can be found on the Blue Marble NASA site. http://visibleearth.nasa.gov/view_rec.php?id=1438

  5. You need a specularity map for the oceans, as the oceans do show up as shiny from space. For the Blue Marble Earth pics, you can actually use the "barythmetic" images (Water), I explain how to convert and use them below.

  6. To make city light show up you need to cheat and add a directional light, set to only affect a "city light" sphere (see below)

  7. You must make sure the Sun points directly at the centre of your planet. Planet's orbit and axis may vary but they go around a massive spherical star, part of the trick to getting your art right is to realize that no matter where a planet is, the afore mentioned facts mean the Sun's light always points to the dead centre of the planet (for art concerns, anyway, astronomers, don't kill me! lol). The planet's axis may vary, the Earth is tilted on it's axis 27 degrees, for example, so it's ok to rotate the planet, but not have the Sun's light just clip the planet.
    Sort the Sun out nice, then adjust the planet, rather than the other way around.

  8. If you have Post Render Settinds turned on, see below, it will affect the way the final image looks. For me, keeping to the default materials have of 60% Diffuse looks much more realistic, however this makes a slightly muted picture, which IS how planets look, but the Post Render Settings "Auto Exposure" and "Nautral Film Response" will brighten it way up, so IMHO, turn 'em off!!

In Vue, begin by loading the "Outer Space" atmosphere, found in the "Effects---Other" collection.
For other apps, you want an atmosphere with NO air, no haze or fog and no clouds obviously.,Vvery little ambient light (like 5% to 10%)
You probably won't need Radiosity in the render, as there's little light reflection, but up close on big ships it may help as you'd see reflected colours perhaps.

If need, I use "fill" lights to fill areas that are too dark. dim lights to prevent areas simply being too boring, and maybe set to light up only a certain object to prevent washing out the scene..

The Sun object in space will need a lens flare, whether other light sources have them isup to you (but do not give the sepcial light used to illuminate the "city lights" sphere a lens flare, it's meant to not be visible).
At most, set Softness of the Sun to 0.5 degrees. Sun light in space is damn harsh with sharp shadows.

Start with a Sphere, name it "Earth", or "Planet" or whatever.
Next, duplicate it, make the duplicate a very tiny bit bigger, and name it "City lights" or such.
Duplicate the lights sphere, make it a fraction bigger and name it "clouds".
Duplicate the clouds sphere make it a bit bigger and call it "atmosphere".

Group them all together for your "Planet", and then make a sub-group of the planet surface and citylights, which need to be linked together, so that if you rotate the surface, the city lights will stay in sync with them...otherwise, you may have the lights of Tokyo over the sea! ;)

If you remember, the Earth's real diameter is approximately 27000 miles in diameter, you get an idea of the starting point for the realtive proportions. Of course, you don't need to make the spheres real sized!! (Or want to, as it will probably screw up, lol, Vue 7 I know goes wonky when the spheres get over 50 miles in size)
Only try sticking to the relative proportions between the spheres, is what you need do.
The city light sphere is made a very, very little bigger, so the lights it makes are above the planet surface, and thus visible, but not so much you can see they are above it.
Clouds are usually only a little above the surface, just enough to see shadows caused by them. about 1 to 6 miles in real life.

For this tutorial, I made the planet sphere 6 metres in diameter; the city lights 6.01 metres diameter; clouds 6.05 metres, and the atmosphere 6.3 metres.
Since this is digital art, the scale doesn't matter much really, you can increase or decrease it as you need to "fake" things, but just watch for shadows of space craft etc falling on planets (bad!) and don't try making it real-sized in Vue, as a 27000 mile wide Earth just goes invisible, oddly enough, after about 50 miles in diameter, the sphere starts going screwy.


Next, select the planet's surface sphere, load your main texture in.
Since there is little ambient light, you may need to turn up Diffuse for some renders, default for Diffuse for all materials is 60% and that's usually ok, but you may need to increase it, and you will need to increase contrast to approximately 40% for Earth planets, more for ones with no atmosphere.

I find that if the post-render settings have auto-exposure and natural film repsonse on, in Vue7 Infinite, it makes the image too bright if I increase the Diffuse. Hence, this is where the need to increase Diffuse may come in for some folk (this may not occur in other versions of Vue and sometimes I find increasing Diffuse is still needed for some planets), so try just turning those post settings off and leaving the Diffuse settings at the 60% default to start with.

Planet land masses have almost no specularity as they are rough stone etc, though you can think of adding specularity to ice if you wish. Oceans, however, do have specularity. You will need a texture to drive this.

For Blue Marble Earth , what I do is take the oceanographic images, barythmetic images, and take them into an image editor, like Photoshop, I use Photoshop CS4 64 bit to do the huge textures, by the way. There, I alter the Levels of the image to about half-way to the left. This changes the image to black and white, and neatly works as a way to drive specularity so it only affects the oceans. Edit the "Highlight Production" input, load your image and link to highlight. Note though Vue often inverts images, so you may have to hit the invert button for it to work properly..

Too bright in my opinion.

Converting an oceanographic image to a one suitable for specularity for the oceans

Next, go to the city lights sphere.

If your scene is of an uninhabited planet, you don't need this of course, but, it's simpler to just keep this sphere, so you can re-use the objects easily later one. So if not needed, just hide it from the render or make it 100% transparent.

You don't want this object casting or recieving shadows. It's only the points of light you want seen.

Make the material pure white unless you want coloured lights. You'll need a greyscale image to drive transparency, remember Vue sometimes inverts images. You'll find maps of city lights on the Blue Marble website

Right click the Transparency Production window, and load the image into the material editor in an image node.

Then add a directional light, on the exact opposite direction of your Sun, this will light up the city lights on the opposite side of your Sun, thus making them seem to glow in the dark! ;)
Make sure it's opposite the Sun in all planes, not just one. You can actually lock it tothe Sun if you wish, for animation etc.

Easy way to do this is make a directional light, put it right next to your Sun light, set both to NOT point to the camera (which causes problems), orientate it so their directional arrows are touching, so you know they are lined up opposite to each other, then move the directional light straight backwards

set the directional light to "Link" to the Sun, so it moves when you move the Sun. To adjust the light, rotate the Sun and reposition if need, the "city light" should follow.. And make sure each is opposite the planet, the Sun must point AT the planet's centre.

Set it to only affect city lights sphere. You don't need specular lighting with it or any softness.

Now, you need to stop the Sun illuminating the city lights too! Otherwise they'll glow all over, lol
Select the Sun, and edit its properties. Set it so that it illuminates everything except the city lights object.
Do this with any other major lights you add to the scene such as extra Suns or big fill light setc.


Clouds next.

Make the material white or very light grey, you could even create functions to add colour, for alien planets.
Use a cloud map from NASA (assuming your doing Earth)

And now to make the "atmosphere".

Select the atmosphere object and edit the material.
Make it Volumetric Material, turn off Cast Shadows (the atmosphere doesn't cast any) and indirect lighting, it's only lit by direct light.
Lighting model turn to Shaded, Overall Density 10.0, Fuzziness 8%, push up quality to +1 at least. Colour is RGB 137 / 209 /252

Edit the Density Production, in the Function Editor, you'll need to make and connect 3 nodes:

Input Node: Angle of Incidence, connect to a Math's node set it to Multiply (2.2), connect that to a Filter node (Opposite -X)

What all that does, is make an object that only shows where the angle is very oblique, so dead on, it's invisible. This gives the appearance of the way the atmosphere doesn't show up dead on to you, because it's too thin, but at the edges of the planet, where you're looking through it at an angle which gives greater thickness, you can see it.
By the way, that's why the Sunset or Sunrise is red: it's at such a shallow angle, the light has to come through many more miles of air and dust, which absorbs colours from it, so we see it as red on the ground, and it looks blue up high.

Feel free to tweak this as need, or alter for different coloured planet atmospheres, which may be orange, green or whatever.

And that's it! :)
Blue Marble textures courtesy of NASA, other images couretesy of me! ;)


I hope you find this of use! :)

All original art, writing on this site, copyright of Steven James, "Silverblade the Enchanter" ©2012