Faking Global Illumination

The first image of mine that actually got printed in a proper magazine (3d World) was geometrically very simple. A few boxes, extruded surfaces etc. What made it stand out, in my opinion, are three things: First, it is proportionally correct, based on a real-world environment studied down to the most ridiculous details, of which many are too small to be seen (big mistake). Second, it uses high-resolution bitmapped textures which were hand-painted and then dirtied in precise places, and third, it uses very diffuse lighting which works well under the circumstances (one very strong light source coming from above), and which is the object of this tutorial. A hi-res version of the image can be found in the cgi section.

Simple model, nice lighting

Simple model, nice lighting

First steps

I had spent two days trying to light this thing, using preposterous light arrays (10×10x10 attenuated omnis), domelights, whatever. But I found that the following method works well, simply because it gives you precise control over every surface. It’s a bit more tedious, but it works (at least it did for me).

Start by adding one Omni Light in the middle of the scene. A very warm color, a low multiplier (0.2) and a progressive attenuation, it will act as an ambient light surrounding the area where the sunlight hits the floor. It also simulates the subtle yellow light reflected from the beige floor. It shouldn’t affect specular highlights so I turn this off.

Start with almost nothing

Start with almost nothing

Light from the Sun

Next comes the sunlight itself, which is a Direct Light. It shines through a skylight above which is actually modeled, so I don’t need a projection map. The light multiplier is set at 0.8 and there’s no need for attenuation. With shadow-mapped shadows at their defaults you get this, which is an OK shadow.

Add direct lighting

Add direct lighting

Separate the walls

What I do now is simply separate lights and surfaces using the Exclude/Include function of each light. Now, for example, I add a spotlight which includes all the objects on the front wall, as well as the wall itself.

Almost everything about the light is at its default setting, except the attenuation which start a bit in front of the wall, and ends behind it. Since the spot is at an angle, the attenuation factor varies over the surface and looks quite nice.

Light the back wall

Light the back wall

Simulate attenuation

Simulate attenuation

The left wall (and all its associated objects) is going through the same treatment. The spot shines a bit from behind, and has its attenuation factor set to achieve the same principle described above.

Same drill for the right wall.

Light the left wall

Light the left wall

And the right one

And the right one

Finishing touches

In order to obtain a natural-looking light for the floor and the railing, two spots were added (including only the required objects, of course). They are pointing at the floor from opposite directions and are set up so as to attenuate progressively over the surface. Both have their Multiplier at around 0.8 – this prevents overexposure of the surface but still keeps a nice strong light.

And the floor

And the floor

Because the right door was to be rendered closely, I dedicated two more spotlights to it. This was enough to consider the image finished.

Conclusion

Another advantage of this technique is that it allows you to quickly render any part of your scene, from almost any angle, without worrying about the lighting at all.

The finished image

The finished image

Don’t expect to get perfect results the first time. It took a lot of tweaking to get the attenuation, color and multiplier right for each light. 3D artists should consider this as fun, although I had some persons asking why I didn’t just photograph the bloody thing. Anyway, I hope this gave you some ideas.

share this

12 Comments

  1. Posted November 22, 2006 at 20:59 | Permalink

    Nice tutorial i want know more infromation of interior lighting in offices, rooms,etc.
    and also cameras.

  2. Posted December 2, 2006 at 22:54 | Permalink

    i want to know different kinds of light, and how it is used in the global illumination. If you have a time you can share your ideas to me.

  3. garvey harris
    Posted December 11, 2006 at 21:43 | Permalink

    i was really pleased you wrote this and its easy to follow

  4. 3d rage
    Posted January 9, 2007 at 17:13 | Permalink

    very interesting tutorial. i’m assuming this tutorial was done in max, i was wondering if this technique can b used for MAYA also?… or will i be wasting my time?

  5. Tal
    Posted January 10, 2007 at 9:03 | Permalink

    It’s obviously possible to apply this technique using any other software tool, especially top-of-the-line applications like Maya. Read the Maya Documentation on lights and you should be fine :)

  6. maddy
    Posted April 16, 2007 at 19:13 | Permalink

    nice tutorials and i like to see more like this

  7. naveen
    Posted April 16, 2007 at 19:15 | Permalink

    nice tutorials and i like to see more like this in maya

  8. myself
    Posted April 23, 2007 at 23:05 | Permalink

    nice one, i like it. however im having hard time to apply it in Maya, I would like to see something tuts like this for Maya…
    every good tutorial i find is for studio max

  9. msadiq
    Posted June 8, 2007 at 4:22 | Permalink

    nice tutorial want to know more

  10. dipu
    Posted November 8, 2007 at 9:48 | Permalink

    this is really a nise job done by you. is better software redering without using render engine.

  11. Posted January 6, 2008 at 7:10 | Permalink

    You have done a great job. This is really a nice tutorial you have shown. This tutorial helps a lot of 3d begineers.

  12. sachin nagare
    Posted January 25, 2008 at 8:58 | Permalink

    Wonderful tutorial

    really like to know more about it

    thank u

One Trackback

  1. [...] Faking Global Illumination Filed under: 3D Studio Max, Rendering, Lighting — alek @ 5:20 pm [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>