HDRI Rendering

This tutorial focuses on rendering a photo realistic scene. To do so, we use the radiosity tag and the HDRI tag. With help of these two tags it is possible to use an technique called Image Based Lighting, or IBL. When you render a scene with IBL, the scene won't be light by normal light sources such as a point light, but rather by a special background texture. These High Dynamic Range Images store light levels beyond what a normal texture map can, and so are suitable for simulating realistic environments, such as a very bright sun shining in the sky. These textures end with ".hdr". Normal textures like .jpg don't work because they don't contain the proper lighting information.

The quality of a HDRI rendering is highly dependent on the quality of the HDRI texture. A excellent source for affordable high end HDRI textures is www.realtexture.com . Cheetah3D comes with two small sample HDRI textures from www.realtextures.com . You can find them in the examples folder.

As you can see below, two different .hdr textures can create two totally different lighting environments.

 

 

1. Load in the scene
We'll first load in an existing scene because we're only going to concentrate on rendering in this tutorial. Our sample scene is this piggy bank on a wooden plinth. If we render the scene, we get a neat pink pig as expected, but he doesn't look too realistic just yet.

 

2. Adding the HDRI background
Now we add the HDRI background to our scene. This can be done by adding an HDRI tag to our active camera. The properties of the HDRI tag should show up automatically after you've added the tag to the camera object.

Now load in the HDRI texture "oldtown_pano_small.hdr" which comes with Cheetah3D. As the name of the texture already implies, was it saved in the panorama format so you also have to set the type property to "panorama". The other properties can stay unchanged for the time being.

If you render the scene now, the .hdr texture appears in the background of our scene.

 

3. Using the HDRI texture to illuminate the scene
Now it is time to tell Cheetah3D to use the HDRI background to illuminate the scene. First of all we'll disable the camera light property of the camera object. After doing that we can add the radiosity tag to our camera object.

The properties of the radiosity tag should show up now. This time we'll use ambient occlusion (set type to AMBIENT) because that'll be sufficient for our purposes, and it is much faster than the full radiosity algorithm.

If you now press the render button you will get your first image illuminated by the .hdr texture. As you can see the pig will be illuminated very softly by this HDRI texture. We also get soft shadows on the ground for free.

The surface of the pig looks a little bit cloudy but this can be improved by setting the samples property to 800 and the error property to 0.10. Note that increasing the radiosity quality isn't necessary in this example as will be seen in the next step.

 

4. Adding reflections
In our last step we set the reflection intensity of the pink material to 0.1. After another rendering we see these nice bright reflections from our HDRI texture which gives HDRI renderings their very realistic appearance.

The slightly cloudiness found in step 3 has also disappeared thanks to the reflections.

 

5. Last finish
In the last step, just add a light to the scene with a small ambient term, such as 0.1. This helps to make the scene a little bit brighter and livens up our little piggy.

 

Now it is your turn! Play around with the various properties to get a better understanding of how they work. For example, you could increase the power property of the HDRI tag to make the scene brighter, or just try different HDRI textures. You can also add some classical light sources to illuminate dark areas.

© 2001-2010 Martin Wengenmayer. All rights reserved.