Environment Mapping Techniques

Environment mapping, also called refection mapping, is a method for applying environment reflections on a reflective surface. Instead of actually rendering the objects reflected on a reflective surface, we prepare a texture that is a panoramic view of the surroundings of the object and then look up into the texture based on texture coordinates. Environmental mapping may have nothing to do with the actual surroundings of the object. This technique generates a realistic appearance of a reflective surface and requires much less time than ray tracing.

Cubic environment mapping uses an imaginary cube and six textures, one texture for each one of the cube's faces. Suitable for simulating an interior environment which has the ceiling, floor, and four walls.

Spherical environment mapping
uses an imaginary sphere and one texture. Suitable for simulating an environment where the distortions of the texture at the top and the bottom of the sphere are negligible.

Ball environment mapping
uses uses an imaginary sphere and one texture like the spherical environment mapping but the texture is mapped onto the sphere in a different manner. (See the figures below. The same checker texture was used for both spherical and ball environment mappings.) With the ball environment mapping, you can hide the most distorted part of a texture by placing it where it can not be seen from the final camera position.

Spherical environment mapping Ball environment mapping

front

front

back

back



You can create a ball environment map as follows:

Real environment. Place a mirror ball (e.g., a gazing ball) at the location in a physical environment where you plan to place a computer generated object. Since reflections are view-dependent it is important that you take a picture of the ball from the same camera position as your background plate. Remove the ball and take a picture of the background plate. Scan in the pictures. The scanned image of the mirror ball needs to be cropped so that the ball's profile barely touches the edges of the image.

Virtual environment. Create a sphere and place it in the approximate location of the object with a reflective surface. Create a new camera and set the rendering resolution to 512 x 512 (or 1024 x 1024 or some other square resolution). Frame the sphere so that the sphere's profile is barely within the new camera's resolution gate. Assign a highly reflective material with no diffuse to the sphere and then render out the scene with ray racing turned on. You need to use ray tracing to render a ball environment map only, i.e., you do not need ray tracing when you render images using a ball environment map.

Smaple: Environment.mv, street.jpg