MSDN Documentation

Understanding Lighting Models in 3D Graphics

Lighting models are fundamental to creating realistic and visually appealing 3D scenes. They simulate how light interacts with surfaces, determining the color and intensity of light reflected or emitted by objects. This section explores common lighting models used in computer graphics.

1. Ambient Lighting

Ambient lighting provides a base level of illumination to the entire scene, preventing completely dark areas. It's a simple, non-directional light source that simulates indirect light bouncing off surfaces in the environment. It's often used as a fallback to ensure that even unlit surfaces have some visibility.

Formula:

Ambient Color = Ambient Light Intensity * Material Ambient Color
Example of ambient lighting

2. Diffuse Lighting

Diffuse lighting simulates light that reflects equally in all directions from a rough surface. The intensity of diffuse light depends on the angle between the surface normal and the direction of the light source. The more directly the light hits the surface, the brighter it appears.

Formula (Lambertian Model):

Diffuse Color = Light Color * Material Diffuse Color * max(0, dot(Normal, LightDirection))

Where Normal is the surface normal vector, and LightDirection is the vector pointing from the surface point to the light source.

Example of diffuse lighting

3. Specular Lighting

Specular lighting simulates the highlights that appear on shiny surfaces. These highlights are the result of light reflecting directly from the light source towards the viewer. The intensity of specular lighting depends on the angle between the view direction and the reflection direction of the light.

Phong Reflection Model:

Specular Color = Light Color * Material Specular Color * pow(max(0, dot(ReflectionDirection, ViewDirection)), Shininess)

Where ReflectionDirection is the direction of light reflected from the surface, and ViewDirection is the vector from the surface point to the viewer. Shininess is a material property that controls the size and intensity of the highlight.

Example of specular lighting

4. Combined Lighting Models

In practice, realistic lighting is achieved by combining multiple lighting components. A common approach is to sum up the contributions from ambient, diffuse, and specular lighting. More advanced models may also include effects like:

  • Emissive Lighting: Simulates surfaces that emit their own light.
  • Reflective Lighting: Simulates reflections of other objects in the scene.
  • Refractive Lighting: Simulates light passing through transparent objects.

A typical simplified PBR (Physically Based Rendering) approach might combine these elements.

Final Color = Ambient + Diffuse + Specular
Example of combined lighting

5. Advanced Lighting Techniques

Beyond basic models, modern graphics employ sophisticated techniques:

  • Physically Based Rendering (PBR): Aims to simulate light interaction more accurately based on real-world physics, often using parameters like albedo, metallicness, and roughness.
  • Global Illumination: Simulates indirect lighting effects, such as light bouncing off surfaces and illuminating other parts of the scene. Techniques include Radiosity, Ray Tracing, and Path Tracing.
  • Image-Based Lighting (IBL): Uses high-dynamic-range images (HDRI) to capture real-world lighting environments, providing realistic ambient and specular contributions.