Integrators#
The Eradiate kernel provides volumetric path tracing integrators that extend
Mitsuba’s volpath to address Earth observation use cases:
piecewise_volpath— handles piecewise-homogeneous plane-parallel atmospheres with a fast regular tracking algorithm.eovolpath— a full-featured Earth observation volumetric path tracer. It extendsvolpathwith EO-specific variance reduction methods and tracking estimators.Added in version 0.5.0.
Piecewise volumetric path tracer (volpath)#
Parameter |
Type |
Description |
Flags |
|---|---|---|---|
max_depth |
integer |
Specifies the longest path depth in the generated output image (where -1 corresponds to \(\infty\)). A value of 1 will only render directly visible light sources. 2 will lead to single-bounce (direct-only) illumination, and so on. Default: -1 |
— |
rr_depth |
integer |
Specifies the minimum path depth, after which the implementation will start to use the russian roulette path termination criterion. Default: 5 |
— |
hide_emitters |
boolean |
Hide directly visible emitters. Default: false |
— |
This plugin provides a piecewise volumetric path tracer that can be used to compute approximate solutions of the radiative transfer equation for plane parallel geometry. Its implementation makes use of multiple importance sampling to combine BSDF and phase function sampling with direct illumination sampling strategies. On surfaces, it behaves exactly like the standard path tracer.
This integrator only works with piecewise media. It uses assumptions on the medium’s geometry to accelerate the sampling and transmission calculations.
This integrator has special support for index-matched transmission events (i.e. surface scattering events that do not change the direction of light). As a consequence, participating media enclosed by a stencil shape are rendered considerably more efficiently when this shape has a null or thin dielectric BSDF assigned to it (as compared to, say, a dielectric or roughdielectric BSDF).
Note
This integrator does not implement good sampling strategies to render participating media with a spectrally varying extinction coefficient. For these cases, it is better to use the more advanced volumetric path tracer with spectral MIS, which will produce in a significantly less noisy rendered image.
Warning
This integrator does not support forward-mode differentiation.
EO Volumetric path tracer (eovolpath)#
Parameter |
Type |
Description |
Flags |
|---|---|---|---|
max_depth |
integer |
Specifies the longest path depth in the generated output image (where -1 corresponds to \(\infty\)). A value of 1 will only render directly visible light sources. 2 will lead to single-bounce (direct-only) illumination, and so on. (Default: -1) |
|
rr_depth |
integer |
Specifies the minimum path depth, after which the implementation will start to use the russian roulette path termination criterion. (Default: 5) |
|
rr_factor |
float |
Specifies the maximum probability to keep a path when russian roulette is evaluated. (Default: 0.97) |
|
ddis_enable |
boolean |
Activate the DDIS variance reduction method. The |
|
ddis_enable_surface |
boolean |
Activate ddis for surfaces when |
|
pbs_enable |
boolean |
Enable prediction-based path splitting (PBS). At each volumetric event,
the predicted contribution of the ddis scattered direction is used to determine whether
to split the path into multiple independent copies or to perform russian rouletter.
Each split path has a proportionally reduced weight. Requires |
|
pbs_min_split_threshold |
float |
Minimum prediction weight required to trigger a split. Only paths whose predicted weight exceeds this value are split. Must be greater than 1 for splitting to produce more than one copy. (Default: 3.0) |
|
pbs_max_split_count |
integer |
Maximum number of path copies created at a single splitting event. The actual count is
|
|
pbs_crit_rr_threshold |
float |
Weight threshold below which Russian Roulette is applied to split paths. Split paths whose current prediction weight falls below this value are stochastically terminated to limit the cost of low-weight copies. (Default: 0.33) |
|
pbs_min_rr_threshold |
float |
Minimum survival probability for split-path Russian Roulette. The survival probability is
|
|
nle_enable |
boolean |
Enable the N-tuple Local Estimate (NLE) variance reduction method. Each primary ray is traced as
a mother path. At regular intervals along the mother’s trajectory, a clone path is forked
and traced independently to perform additional next-event estimation. Requires |
|
nle_first_clone_depth |
integer |
Scatter depth at which the mother path creates its first clone. Clone creation then recurs
every |
|
nle_max_clone_depth |
integer |
Maximum number of scattering events a clone is allowed to trace before it is terminated. Controls the amount of next-event estimation work performed per clone. (Default: 12) |
|
nle_nee_per_clone |
integer |
Interval, in scattering events, between successive clone creation events along the mother
path. A new clone is spawned every |
|
hide_emitters |
boolean |
Hide directly visible emitters. (Default: no, i.e. false) |
This plugin provides a volumetric path tracer catered towards Earth Observation simulations that can be used to compute approximate solutions of the radiative transfer equation. Its implementation makes use of multiple importance sampling to combine BSDF and phase function sampling with direct illumination sampling strategies. On surfaces, it behaves exactly like the standard path tracer.
This integrator has special support for index-matched transmission events (i.e. surface scattering events that do not change the direction of light). As a consequence, participating media enclosed by a stencil shape are rendered considerably more efficiently when this shape has a null or thin dielectric BSDF assigned to it (as compared to, say, a dielectric or roughdielectric BSDF).
In addition, it implements the VROOM variance reduction methods [BM11] which reduce noise in the presence of strongly peaked phase functions. Note that VROOM makes some strong assumptions: there must be a single directional emitter and the sampler must be independent.
Warning
This integrator does not support forward-mode differentiation.
Stokes-moment integrator (stokes_moment)#
Parameter |
Type |
Description |
Flags |
|---|---|---|---|
use_stokes |
boolean |
Enable Stokes vector AOVs. Requires a polarized rendering mode. Default: false. |
|
use_moment |
boolean |
Enable second-moment AOVs for variance estimation. Default: false. |
|
meridian_align |
boolean |
When use_stokes is true, align the Stokes vector to the meridian plane instead of the sensor’s x-axis. Default: false. |
|
(Nested plugin) |
integrator |
Sub-integrator (exactly one must be specified) which will be sampled along the integrator. |
This integrator combines the stokes and moment integrators into a single plugin, resolving the issue that stokes cannot be nested inside moment (the sensor pointer would not be set correctly). Enable either or both modes via use_stokes and use_moment.
AOV layout mirrors the behaviour of the integrators it combines. When both modes are active, the layout is (N = child AOV count):
[0..11] name.S0.R name.S0.G name.S0.B name.S1.R ... name.S3.B
[12..12+N-1] child AOVs
[12+N..12+N+2] name.X name.Y name.Z
[12+N+3..2*(12+N+3)-1] m2_ mirror of all preceding channels
This plugins departs from the stokes integrator by prepending the nested integrator name to the stokes AOV names.