• This lesson will discuss the theories behind GI
  • This lecture-only topic is approximately 10 minutes in length
  • Goal - By the end of this lesson you will have a general understanding of how the different GI methods, available in V-Ray, work




Available Materials
Additional resources                                                                                                           

Available materials

To set up the lesson follow the links below and download all available materials.

Lesson plan download
Presentation (Lecture) download                       


1. Terminology

When we see things in the real world they are illuminated both directly and indirectly. Here’s some terms to be aware of when thinking about Global Illumination.

  • Indirect Lighting
    • When light bounces around and fills in areas that a direct light source can not reach
  • Caustics
    • The bending of light rays reflected or refracted by a curved non-opaque object
  • Occlusion
    • The darkening of areas not illuminated by direct or indirect lighting
  • Ray Distance
    • The length light will travel in a 3D scene to calculate GI


a) Light Bounces

  • Light naturally bounces off and around other objects to illuminate things we see
  • The more the light bounces, the more shadows will be filled with light



b) Color Bleeding

  • Color Bleed happens when the color of a highly saturated object affects a more neutrally colored object near it
  • Often seen on light colored walls or surfaces



c) Occlusion

  • Light doesn’t naturally fall evenly over every part of a surface
    • Some areas remain in shadow, unless directly illuminated by a source
    • Having these darker areas in the corners of our 3D renders can help them feel more real



d) Caustics

  • Caustics happens when light travels through objects like glass and the light bends into brighter areas projected onto a surface
    • Also seen when light travels through the water of a pool (or shallow ocean) and a pattern is created on the ground below



2. Global Illumination 


a) GI Overview

  • Global Illumination is turned On through the Render Settings window, under the GI Tab
    • The advanced GI settings are collapsed by default
  • Primary and Secondary Bounces
    • GI Engines used to determine quality and speed of GI calculations
    • Including both Primary and Secondary bounces will increase overall illumination of your scene
    • The default Multiplier of 1.0 will give physically accurate results
  • Reflective and Refractive Caustics
    • Controls whether or not GI rays will be calculated for reflective and refractive surfaces



b) GI - advanced
  • Post-processing
    • Allows additional modification of the indirect illumination, before adding it to the final rendering
    • Default settings are physically accurate
  • Ambient Occlusion
    • Allows an ambient occlusion term added to the global illumination solution
  • Ray Distance
    • Allows a limit on the distance traveled by each GI ray in order to optimize and speed up rendering



c) Bounce Engines
  • Primary bounces – the calculation type that will be taking the lead in the indirect illumination calculations
  • Secondary bounces – supports the primary bounce engine and can help fill in areas to smooth out the result
  • The Multiplier value determines how much the diffuse bounces contribute to the final image illumination
    • Anything other than 1.0 is not physically accurate



d) Brute force – simplest approach; GI is computed independently for each shaded surface point by tracing a number of rays in different directions on the hemisphere about that point



  • More accurate than the other bounce engines but creates longer render times
  • Produces flicker free animation; great for motion blur
  • Tends to produce more noise, which can be avoided by using more rays (but will slow render)



  • Subdivs – determines the number of samples used to approximate GI
  • To speed up GI, you can use a faster method (like Light Cache) for approximating secondary GI bounces, while using the Brute force method for the primary bounces




e) Irradiance map – based on irradiance caching
  • Basic idea is to compute GI only at important parts (where objects are close to each other, or in places with sharp GI shadows) in the scene, and interpolates the rest
  • A collection of points in 3D space (a point cloud) along with the computed indirect illumination at those points




f) Light cache – allows us to quickly calculate multiple bounces of light
  • The light map is built by tracing many eye paths from the camera
  • Each of the bounces in the path stores the illumination from the rest of the path into a 3d structure
  • The light map is a universal GI solution that can be used for both interior or exterior scenes, either directly or as a secondary bounce approximation when used with the irradiance map or the brute force GI method




g) Light cache (diagrams below show combining Brute force and Light cache engines)
  • Easy to set up (only requirement is a camera)
  • Works efficiently with any light types and produces correct results in corners and around small objects
  • Visualized directly for very fast and smooth previews of lighting in scene




First we trace the light cache, then the AA engine shoots camera rays which in turn shoots Brute Force rays and the BF engine looks at the info in the LC


h) Light cache: World Scale – determines the units of the Sample size and the Filter Size

  • Unchecked = units are fractions of the final image
    • Samples closer to camera will be smaller and samples far away will be larger
    • The units do not depend on the image resolution
    • Best suited for stills or animations in which the camera doesn’t move
  • Checked = sizes are fixed in world units everywhere
    • Can affect the quality of the samples (ones close to camera will be sampled more often and will appear smoother; ones far away will be noisier)
    • Best suited for animations in which the camera moves; will force constant sample density everywherе


  • Filter – determines how irradiance is interpolated from the samples in the light cache
    • Type = Nearest means the filter looks up the nearest samples to the shading point and averages their values
    • Type = Fixed means the filter looks up all the samples that fall in a specified radius around the shading point and averages their values
  • Prefilter – the samples in the light cache are filtered before rendering (normal filtering happens during rendering); performed by examining each sample in turn and modifying it so it represents the average of the given number of nearby samples



  • Subdivs – how many paths are traced from the camera
    • Actual number of paths is the square of the subdivs (default of 500 = 250,000 paths traced from camera)
  • Sample size – the spacing between the samples in the light cache
    • Smaller numbers mean samples are closer together which will keep sharp details in lighting but will be noisier and will need more memory





i) Irradiance map

  • Subdivs – controls the quality of individual GI samples (smaller values render faster blotchy results)Min rate – determines the resolution for the first GI pass
    • 0 = same resolution as final rendered image (makes the irradiance map similar to the direct computation method)
    • -1 = resolution will be half of the final image
    • Best to keep Min rate at a negative number so GI computes quickly for large and flat regions in the image
  • Max rate – determines the resolution of the last GI pass




j) Irradiance map (diagrams below show combining Irradiance map and Light cache engines)
  • Very fast to compute (especially for scenes with large flat areas) and doesn’t produce noise in the final result
  • Irradiance map file can be saved and re-used to speed up calculations of different views or for fly-through animations
  • May lose some small details that would be seen in Brute force (because of interpolation)
  • Requires more memory and not good with motion-blurred moving objects




First the light cache is traced, then the IMap is traced, which looks for info in the LC. Then all the info from both LC and IMap are stored in the irradiance map.

Lastly, the AA engine shoots camera rays which adds the info from the Imap to complete the indirect illumination




a) Indirect Lighting

  • Illumination caused by light rays bouncing off objects in the scene

b) Caustics

  • The effect of light passing through objects like water or glass and hitting a solid object

c) Occlusion

  • The little shadows where direct illumination doesn’t fall on an object

d) Ray Distance            

  • The distance light travels in a 3D scene to calculate GI                                                           


Additional resources

Find more training resources listed below: