Support Forum G3D Web Page |
Per-path data passed between major routines. More...
Public Member Functions | |
void | fastRemove (int i) |
Removes element i from all arrays, including either outputIndex or outputCoord. More... | |
void | resize (size_t n) |
Does not resize outputIndex or outputCoord. More... | |
size_t | size () const |
Public Attributes | |
Array< Radiance3 > | direct |
Scattered radiance due to the selected light (which may be an emissive surface), IF it is visible: (B_j * |w_j . More... | |
Array< bool > | impulseRay |
True if the previous scattering event was an impulse (or primary ray). More... | |
Array< bool > | lightShadowed |
False if the light that created the direct value is visible. More... | |
Array< Color3 > | modulation |
How much the surfaces between the eye and the current path node have already modulated the contribution observed due to the BSDF. More... | |
Array< PixelCoord > | outputCoord |
Location in the output image to write the final radiance to. More... | |
Array< int > | outputIndex |
Location in the output buffer to write the final radiance to. More... | |
Array< Ray > | ray |
Array< Ray > | shadowRay |
Shadow rays corresponding to the direct values. More... | |
Array< shared_ptr< Surfel > > | surfel |
Surfels hit by primary and indirect rays (may be nullptr if each missed) More... | |
Per-path data passed between major routines.
Configured as a structure of arrays instead of an array of structures s othat the ray and surfel buffers can be directly passed to G3D::TriTree routines.
|
inline |
Removes element i from all arrays, including either outputIndex or outputCoord.
|
inline |
Does not resize outputIndex or outputCoord.
|
inline |
Scattered radiance due to the selected light (which may be an emissive surface), IF it is visible: (B_j * |w_j .
n| * f) / p_j The actual light position is implicitly encoded in the shadowRay.
Referenced by fastRemove(), and resize().
Array<bool> G3D::PathTracer::BufferSet::impulseRay |
True if the previous scattering event was an impulse (or primary ray).
Light surfaces do not contribute to indirect light unless the previous event was an impulse. This avoids double-counting the lights.
Referenced by fastRemove(), and resize().
Array<bool> G3D::PathTracer::BufferSet::lightShadowed |
False if the light that created the direct value is visible.
Referenced by fastRemove(), and resize().
How much the surfaces between the eye and the current path node have already modulated the contribution observed due to the BSDF.
Initialized based on the number of rays per pixel.
Referenced by fastRemove(), and resize().
Array<PixelCoord> G3D::PathTracer::BufferSet::outputCoord |
Location in the output image to write the final radiance to.
Referenced by fastRemove().
Array<int> G3D::PathTracer::BufferSet::outputIndex |
Location in the output buffer to write the final radiance to.
Referenced by fastRemove().
Referenced by fastRemove(), resize(), and size().
Shadow rays corresponding to the direct values.
Referenced by fastRemove(), and resize().
Surfels hit by primary and indirect rays (may be nullptr if each missed)
Referenced by fastRemove(), and resize().