|
class | PDF |
| A sample from a Probability Density Function (PDF). More...
|
|
class | PtVolumetricEstimator |
|
class | RussianRoulette |
| Russian roulette random termination scheme. More...
|
|
class | SenseEvent |
|
class | SidednessAgreement |
|
class | SurfaceHitRefinery |
| Algorithms for various hit point adjustments. For surface escaping routines, the generated ray is not guaranteed to "actually" avoid the surface. In other words, self-intersection may still happen under different circumstances dpending on the method used. More...
|
|
class | SurfaceTracer |
| Common operations for surface tracing. This class also handles many subtle cases for surface tracing. You may take the implementations here as reference if a more fine-grained control is needed for a custom operation. More...
|
|
class | TDirectLightEstimator |
| Estimate direct lighting for a surface point. This is a lightweight helper type for estimating direct lighting. Do not think "direct light" as lighting from a directional light source, it means the first-bounce lighting for any surface point, and the surface point can be the N-th one in a path. More...
|
|
class | TIndirectLightEstimator |
| Estimate indirect lighting for a surface point. More...
|
|
class | TMIS |
| Static helper for Multiple Importance Sampling (MIS). See the paper by Veach et al. [17] for more theoretical background. More...
|
|
Light transport algorithms.
Using shading normal for light transport algorithms is equivalent to using asymmetric BSDFs. This can lead to inconsistent results between regular and adjoint algorithms. This correction factor, when multiplied with the weight of an importance scatter event, restores the consistency when adjoint algorithms also use shading normals during importance transport.
This factor also considers the geometry factor Ns.dot(L)
. The geometry factor is expected to be used (multiplied) together with this factor.
References: [1] Eric Veach, "Non-symmetric Scattering in Light Transport Algorithms", Eurographics Rendering Workshop 1996 Proceedings.
- Parameters
-
Ns | Shading normal. |
Ng | Geometry normal. |
L | Direction of incident importance. |
V | Direction of excitant importance. |
- Note
- All vectors are expected to be in unit length and leaving the surface.
Smoother version of importance_scatter_Ns_corrector()
.
The weighting for importance transport is only correct (same scene interpretation and rendered result) if we account for the BSDF asymmetry when shading normal is used. However, this factor introduces high variance (big firefly marks). This version attempts to lower the variance by removing large correction factor (and this introduces bias, though not easily noticeable).
In PBRT-v3, this factor is completely ignored. In Mitsuba 0.6, this factor is only applied on last bounce, i.e., during radiance estimation (applying the importance_BSDF_Ns_corrector()
, not the scattering/throughput one).