Irradiance Cache

This “meta-integrator” implements irradiance caching by Ward and Heckbert [51]. This method
computes and caches irradiance information at a sparse set of scene locations and efficiently determines
approximate values at other locations using interpolation.
This plugin only provides the caching and interpolation part—another plugin is still needed to do
the actual computation of irradiance values at cache points.This is done using nesting, e.g. as follows:
        <integrator type="irrcache">
                <integrator type="photonmapper"/>
When a radiance query involves a non-diffuse material, all computation is forwarded to the sub-integrator, i.e. irrcache is passive. Otherwise, the existing cache points are interpolated to approximate the emitted radiance, or a new cache point is created if the resulting accuracy would be too low. By default, this integrator also performs a distributed overture pass before rendering, which is recommended to avoid artifacts resulting from the addition of samples as rendering proceeds.
Note that wrapping an integrator into irrcache adds one extra light bounce. For instance, the method resulting from using direct in an irradiance cache renders two-bounce direct illumination.
The generality of this implementation allows it to be used in conjunction with photon mapping (the most likely application) as well as all other sampling-based integrators in Mitsuba. Several optimizations are used to improve the achieved interpolation quality, namely irradiance gradients [49], neighbor clamping [29], a screen-space clamping metric and an improved error function [43].


  • Final Gather resolution : integer
    • Elevational resolution of the stratified final gather hemisphere. The azimuthal resolution is two times this value. (Default: 14, i.e. 2 ⋅ 142=392 samples in total)

  • Quality : float
    • Quality factor (the κ parameter of Tabellion et al. [43]) (Default: 1.0, which is adequate for most cases)

  • Irradiance gradients : boolean
    • Use irradiance gradients [49]? (Default: true)

  • Neighbor clamping : boolean
    • Use neighbor clamping [29]? (Default: true)

  • Screen-space clamp : boolean
    • Use a screen-space clamping criterion [43]? (Default: true)

  • Overture pass : boolean
    • Do an overture pass before starting the main rendering process? Usually a good idea. (Default: true)

  • Quality adjustment : float
    • When an overture pass is used, Mitsuba subsequently reduces the quality parameter by this amount to interpolate amongst more samples, creating a visually smoother result. (Default: 0.5)

  • Show indirect illumination only : boolean
    • Only show the indirect illumination? This can be useful to check the interpolation quality. (Default: false)

  • Show sample placement (debug) : boolean
    • Visualize the sample placement? (Default: false)jjj

  • 最終更新:2014-05-20 15:35:12