Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
July 28, 2017
arrowPress Releases






If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 
Image-Based Ambient Lighting
by David Rosen on 04/20/10 05:29:00 am   Expert Blogs

2 comments Share on Twitter Share on Facebook    RSS

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

 

Ambient light (or indirect light) is light that is not coming directly from a bright light source. For example, in an outdoor scene, the sun is a direct light, and the ambient light comes from the sky and the ground.

Here's a picture of the shadowed side of an Overgrowth character, showing how it's lit by scattered light from the sky and the ground:


Historically, ambient lighting has been represented by a uniform grey light that fills the entire scene, eliminating any pure black shadows.

This works to make the lighting less stark, but it doesn't fulfill any of the other functions of real ambient lighting: reacting to surface shapes and environmental coloring in order to add definition and bring the scene together.

Here's a comparison of uniform ambient lighting and Overgrowth ambient lighting.


I found that image-based lighting is the most intuitive and efficient way to achieve this effect. The method used in Overgrowth is based on cubemaps, which are groups of six images that combine to form the faces of a cube.

We start out with the cubemap containing the sky and distant terrain, and blur it to create a diffuse lighting cubemap. To blur the cubemap we just perform a cylindrical blur around each axis, as shown here:


This is very fast because the lighting cubemap can be quite small -- ours has faces of size 128*128. To prevent banding artifacts, we have to use a floating-point texture for the blurring, but afterwards it's stored in a DXT1 RGB texture for efficiency.

Now, to find the ambient light color for an object, we can just look up the cubemap in the direction of the surface normal. That's all there is to it! I really like this technique because it's fast, simple, and effective.

It's limited in that it only works well for uniform outdoor scenes, but since that is the most common setting in Overgrowth, it works well for us!

Follow us on the Wolfire Blog!


Facebook iconModDB iconSteam iconTwitter iconYouTube icon


Related Jobs

Visual Concepts
Visual Concepts — Los Angeles, California, United States
[07.27.17]

AI Software Engineer
Visual Concepts
Visual Concepts — Los Angeles, California, United States
[07.27.17]

Tools Software Engineer
Pulseworks
Pulseworks — Smyrna, Georgia, United States
[07.27.17]

Unreal Technical Artist (VR)
Visual Concepts
Visual Concepts — Los Angeles, California, United States
[07.27.17]

Software Engineer





Loading Comments

loader image