Light caching (sometimes also called light mapping) is a technique for
approximating the global illumination in a scene. This method was developed
originally by Chaos Group specifically for the V-Ray renderer. It is very
similar to photon mapping, but without many of its limitations.
The light cache is built by tracing many 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, very similar to the photon map. On the other hand,
in a sense, it is the exact opposite of the photon map, which traces paths
from the lights, and stores the accumulated energy from the beginning of the
path into the photon map.
Although very simple, the light-caching approach has many advantages over
the photon map:
- It is easier to set up. We only have the camera to trace rays from,
as opposed to the photon map, which must process each light in the scene
and usually requires separate setup for each light.
- The light-caching approach works efficiently with any lights -
including skylight, self-illuminated objects, non-physical lights,
photometric lights etc. In contrast, the photon map is limited in the
lighting effects it can reproduce - for example, the photon map cannot
reproduce the illumination from skylight or from standard omni lights
without inverse-square falloff.
- The light cache produces correct results in corners and around small
objects. The photon map, on the other hand, relies on tricky density
estimation schemes, which often produce wrong results in these cases,
either darkening or brightening those areas.
- In many cases the light cache can be visualized directly for very
fast and smooth previews of the lighting in the scene.
Even with these advantages, light caching is similar in speed to the
photon map and can produce approximations to the global lighting in a scene
very quickly. In addition, the light cache can be used successfully for
adding GI effects to animations.
Of course, the light cache has some limitations:
- Like the irradiance map, it is view-dependent and is generated for a
particular position of the camera.
- Like the photon map, the light cache is not adaptive. The
illumination is computed at a fixed resolution, which is determined by
the user.
- The light cache does not work very well with bump maps.
These parameters affect the calculation phase of the light cache; they do
not affect the final rendering.
Subdivs - this determines how many paths
are traced from the camera. The actual number of paths is the square of the
subdivs (the default 1000 subdivs mean that 1 000 000 paths will be traced
from the camera).
Sample size - this determines the spacing
of the samples in the light cache. Smaller numbers mean that the samples
will be closer to each other, the light cache will preserve sharp details in
lighting, but it will be more noisy and will take more memory. Larger
numbers will smooth out the light cache but will loose detail. This value
can be either in world units or relative to the image size, depending on
light cache Scale mode.
Scale - this parameter determines the
units of the Sample size and the
Filter size:
Screen - the units are fractions of the
final image (a value of 1.0 means the samples will be as large as the
whole image). Samples that are closer to the camera will be smaller, and
samples that are far away will be larger. Note that the units do not
depend on the image resolution. This value is best suited for stills or
animations where the light cache needs to be computed at each frame.
World - the sizes are fixed in world units
everywhere. This can affect the quality of the samples - samples that
are close to the camera will be sampled more often and will appear
smoother, while samples that are far away will be noisier. This value
might work better for fly-through animations, since it will force
constant sample density everywhere.
Number of passes - the light cache is
computed in several passes, which are then combined into the final light
cache. Each pass is rendered in a separate thread independently of the other
passes. This ensures that the light cache is consistent across computers
with different number of CPUs. In general, a light cache computed with
smaller number of passes may be less noisy than a light cache computed with
more passes, for the same number of samples; however small number of passes
cannot be distributed effectively across several threads. For
single-processor non-hyperthreading machines, the number of passes can be
set to 1 for best results.
Store direct light - with this option, the
light cache will also store and interpolate direct light. This can be useful
for scenes with many lights and irradiance map or direct GI method for the
primary diffuse bounces, since direct lighting will be computed from the
light cache, instead of sampling each and every light. Note that only the
diffuse illumination produced by the scene lights will be stored. If you
want to use the light cache directly for approximating the GI while keeping
the direct lighting sharp, uncheck this option.
Show calc. phase - turning this option on
will show the paths that are traced. This does not affect the calculation of
the light cache and is provided only as a feedback to the user. This option
is ignored when rendering to fields - in that case, the calculation phase is
never displayed.
Use camera path - when this option is
on, V-Ray will calculate the light cache samples
for the entire camera path, instead of just the current view, in the same
way as this is done for the Fly-through mode.
This is useful when rendering animations with moving objects where the
camera also moves and the light cache needs to be in
Single frame mode. In this case, setting the
Use camera path option on will help to
reduce any flickering, as the GI sample positions on static geometry will
not change.
Adaptive tracing - when this option is on,
V-Ray will store additional information about the incoming light for each
light cache sample, and try to put more samples into the directions from
which more light coming. This may help to reduce the noise in the light
cache, particularly in the case of caustics.
Use directions only - this option is only
available when the Adaptive tracing option is
on. It causes V-Ray to only use the optimized directions, generated from the
light cache samples, rather than the accumulated irradiance from the samples
themselves. This produces more accurate results, but also a noisier light
cache.
These parameters control how the light cache is used in the final
rendering, after is has been calculated.
Pre-filter - when this is turned on, the
samples in the light cache are filtered before
rendering. Note that this is different from the normal light cache filtering
(see below) which happens during rendering. Prefiltering is performed by
examining each sample in turn, and modifying it so that it represents the
average of the given number of nearby samples. More prefilter samples mean a
more blurry and less noisy light cache. Prefiltering is computed once after
a new light cache is computed or loaded from disk.
Filter - this determines the type of
render-time filter for the light cache. The filter determines how irradiance
is interpolated from the samples in the light cache.
None - no filtering is performed. The
nearest sample to the shaded point is taken as the irradiance value.
This is the fastest option, but it may produce artifacts near corners,
if the light cache is noisy. You can use pre-filtering (see above) to
decrease that noise. This option works best if the light cache is used
for secondary bounces only or for testing purposes.
Nearest - this filter looks up the nearest
samples to the shading point and averages their value. This filter is
not suitable for direct visualization of the light cache, but is useful
if you use the light cache for secondary bounces. A property of this
filter is that is adapts to the sample density of the light cache and is
computed for a nearly constant time. The
Interpolation samples parameter determines how many of the
nearest samples to look up from the light cache.
Fixed - this filter looks up and averages
all samples from the light cache that fall within a certain distance
from the shaded point. This filter produces smooth results and is
suitable for direct visualization of the light cache (when it is used as
the primary GI engine). The size of the filter is determined by the
Filter size parameter. Larger values blur
the light cache and smooth out noise. Typical values for the
Filter size are 2-6 times larger than the
Sample size. Note that
Filter size uses the same scale as the
Sample size and its meaning depends on
the Scale parameter.
Use light cache for glossy rays - if this
option is on, the light cache will be used to
compute lighting for glossy rays as well, in addition to normal GI rays.
This can speed up rendering of scenes with glossy reflections quite a lot.
Mode - determines the rendering mode of
the light cache:
Progressive path tracing - in this mode,
the light cache algorithm is used to sample the final image
progressively. For a discussion of this mode see the
tutorial.
Single frame - this will compute a new
light cache for each frame of an animation.
Fly-through - this will compute a light
cache for an entire fly-through animation, assuming that the camera
position/orientation is the only thing that changes. The movement of the
camera in the active time segment only is taken in consideration. Note
that it may be better to use World
Scale for fly-through animations. The
light cache is computed only at the first rendered frame and is reused
without changes for subsequent frames.
From file - in this mode the light cache
is loaded from a file. The light cache file does not include the
prefiltering of the light cache; prefiltering is performed after the
light cache is loaded, so that you can adjust it without the need to
recompute the light cache.
File - specifies the file name to load the
light cache from, when the Mode is set to
From file.
Save to file - this button allows to save the
light cache to a file on disk, for later re-use. Note that the
Don't delete option must be
on for this to work - otherwise, the light cache
will be deleted as soon as rendering is complete and it will not be possible
to save it.
This group of controls determine what happens with the light cache after
rendering is complete.
Don't delete - when on
(the default), the light cache remains in memory after the rendering. Turn
this option off to automatically delete the light
cache (and thus save memory).
Auto save - when on,
the light cache will be automatically written to the specified file. Note
that the light cache will be written as soon as it is calculated, rather
than at the actual end of the rendering.
Switch to saved map - when
on, after the rendering is complete, the light
cache Mode will be automatically set to
From file and the name of the auto-saved light
cache file will be copied to the File
parameter.