Fermat
|
A simple implementation of the TPTVertexProcessor policy interface required by all the PTLibCore functions. This class is responsible of processing each vertex generated by the path tracer, including:
#include <pathtracer_vertex_processor.h>
Public Methods | |
template<typename PTContext > | |
FERMAT_DEVICE uint32 | preprocess_vertex (const PTContext &context, const RenderingContextView &renderer, const PixelInfo pixel_info, const EyeVertex &ev, const float cone_radius, const cugar::Bbox3f scene_bbox, const uint32 prev_vertex_info, const cugar::Vector3f w, const float p_prev) |
template<typename PTContext > | |
FERMAT_DEVICE void | compute_nee_weights (const PTContext &context, const RenderingContextView &renderer, const PixelInfo pixel_info, const uint32 prev_vertex_info, const uint32 vertex_info, const EyeVertex &ev, const cugar::Vector3f &f_d, const cugar::Vector3f &f_g, const cugar::Vector3f &w, const cugar::Vector3f &f_L, cugar::Vector3f &out_w_d, cugar::Vector3f &out_w_g, uint32 &out_vertex_info) |
template<typename PTContext > | |
FERMAT_DEVICE void | compute_scattering_weights (const PTContext &context, const RenderingContextView &renderer, const PixelInfo pixel_info, const uint32 prev_vertex_info, const uint32 vertex_info, const EyeVertex &ev, const uint32 out_comp, const cugar::Vector3f &g, const cugar::Vector3f &w, cugar::Vector3f &out_w, uint32 &out_vertex_info) |
[PTVertexProcessor::compute_nee_weights] More... | |
template<typename PTContext > | |
FERMAT_DEVICE void | accumulate_emissive (const PTContext &context, RenderingContextView &renderer, const PixelInfo pixel_info, const uint32 prev_vertex_info, const uint32 vertex_info, const EyeVertex &ev, const cugar::Vector3f &w) |
[PTVertexProcessor::compute_scattering_weights] More... | |
template<typename PTContext > | |
FERMAT_DEVICE void | accumulate_nee (const PTContext &context, RenderingContextView &renderer, const PixelInfo pixel_info, const uint32 vertex_info, const bool shadow_hit, const cugar::Vector3f &w_d, const cugar::Vector3f &w_g) |
[PTVertexProcessor::accumulate_emissive] More... | |
|
inline |
[PTVertexProcessor::compute_scattering_weights]
[PTVertexProcessor::accumulate_emissive] accumulate an emissive surface hit
context | the current context |
renderer | the current renderer |
pixel_info | packed pixel info |
vertex_info | packed vertex info |
ev | the eye vertex |
w | the emissive sample weight |
|
inline |
[PTVertexProcessor::accumulate_emissive]
[PTVertexProcessor::accumulate_nee] accumulate a NEE sample
context | the current context |
renderer | the current renderer |
pixel_info | packed pixel info |
vertex_info | packed vertex info |
hit | the hit information |
w_d | the diffuse nee weight |
w_g | the glossy nee weight |
|
inline |
[PTVertexProcessor::compute_nee_weights] compute nee weights given a vertex
context | the current context |
renderer | the current renderer |
pixel_info | packed pixel info |
vertex_info | packed vertex info |
ev | the eye vertex |
f_d | the diffuse brdf |
f_g | the glossy brdf |
w | the current path weight |
f_L | the current light EDF sample contribution, including the MIS weight |
out_w_d | the output diffuse weight |
out_w_g | the output glossy weight |
out_vertex_info | the output packed vertex info |
[PTVertexProcessor::compute_nee_weights_body]
[PTVertexProcessor::compute_nee_weights_body]
|
inline |
[PTVertexProcessor::compute_nee_weights]
[PTVertexProcessor::compute_scattering_weights] compute scattering weights given a vertex
context | the current context |
renderer | the current renderer |
pixel_info | packed pixel info |
vertex_info | packed vertex info |
ev | the local vertex |
out_comp | the bsdf scattering component |
g | the bsdf scattering weight (= f/p) |
w | the current path weight |
out_w | the output path weight |
out_vertex_info | the output vertex info |
|
inline |
preprocess a vertex and return some packed vertex info
context | the current context |
renderer | the current renderer |
pixel_info | packed pixel info |
ev | the eye vertex |
cone_radius | the current cone radius |
scene_bbox | the scene bounding box |