This module provides a flexible bidirectional path tracing library, thought to be as performant as possible and yet vastly configurable at compile-time. For more information, see the BPTLib page.
|
template<typename TPrimaryCoordinates , typename TBPTContext , typename TBPTConfig > |
void | bpt::sample_light_subpaths (const uint32 n_light_paths, TPrimaryCoordinates primary_coords, TBPTContext &context, const TBPTConfig &config, RenderingContext &renderer, RenderingContextView &renderer_view) |
|
template<typename TSampleSink , typename TBPTContext > |
void | bpt::solve_shadows (TSampleSink sample_sink, TBPTContext &context, RenderingContext &renderer, RenderingContextView &renderer_view) |
|
template<typename TPrimaryCoordinates , typename TSampleSink , typename TBPTContext , typename TBPTConfig > |
void | bpt::sample_eye_subpaths (const uint32 n_eye_paths, const uint32 n_light_paths, TPrimaryCoordinates primary_coords, TSampleSink sample_sink, TBPTContext &context, const TBPTConfig &config, RenderingContext &renderer, RenderingContextView &renderer_view, const bool lazy_shadows=false) |
|
template<typename TEyePrimaryCoordinates , typename TLightPrimaryCoordinates , typename TSampleSink , typename TBPTContext , typename TBPTConfig > |
void | bpt::sample_paths (const uint32 n_eye_paths, const uint32 n_light_paths, TEyePrimaryCoordinates eye_primary_coords, TLightPrimaryCoordinates light_primary_coords, TSampleSink sample_sink, TBPTContext &context, const TBPTConfig &config, RenderingContext &renderer, RenderingContextView &renderer_view, const bool lazy_shadows=false) |
|
template<typename TSampleSink , typename TBPTContext , typename TBPTConfig > |
void | bpt::light_tracing (const uint32 n_light_paths, TSampleSink sample_sink, TBPTContext &context, const TBPTConfig &config, RenderingContext &renderer, RenderingContextView &renderer_view) |
|
template<typename TBPTContext , typename TBPTConfig > |
__global__ void | bpt::light_tracing_kernel (const uint32 n_light_paths, TBPTContext context, RenderingContextView renderer, TBPTConfig config) |
|
template<typename TBPTContext , typename TBPTConfig > |
void | bpt::light_tracing (const uint32 n_light_paths, TBPTContext &context, RenderingContextView &renderer, TBPTConfig &config) |
|
template<typename TSampleSink , typename TBPTContext > |
__global__ void | bpt::solve_occlusions_kernel (const uint32 in_queue_size, TSampleSink sample_sink, TBPTContext context, RenderingContextView renderer) |
|
template<typename TSampleSink , typename TBPTContext > |
void | bpt::solve_occlusions (const uint32 in_queue_size, TSampleSink sample_sink, TBPTContext context, RenderingContextView renderer) |
|
template<typename TPrimaryCoordinates , typename TBPTContext , typename TBPTConfig > |
__global__ void | bpt::generate_primary_light_vertices_kernel (const uint32 n_light_paths, TPrimaryCoordinates primary_coords, TBPTContext context, RenderingContextView renderer, const TBPTConfig config) |
|
template<typename TPrimaryCoordinates , typename TBPTContext , typename TBPTConfig > |
void | bpt::generate_primary_light_vertices (const uint32 n_light_paths, TPrimaryCoordinates primary_coords, TBPTContext context, RenderingContextView renderer, const TBPTConfig config) |
|
template<typename TPrimaryCoordinates , typename TBPTContext , typename TBPTConfig > |
__global__ | bpt::__launch_bounds__ (SECONDARY_LIGHT_VERTICES_BLOCKSIZE, SECONDARY_LIGHT_VERTICES_CTA_BLOCKS) void process_secondary_light_vertices_kernel(const uint32 in_queue_size |
|
| bpt::if (thread_id< in_queue_size) process_secondary_light_vertex(thread_id |
|
template<typename TPrimaryCoordinates , typename TBPTContext , typename TBPTConfig > |
void | bpt::process_secondary_light_vertices (const uint32 in_queue_size, const uint32 n_light_paths, TPrimaryCoordinates primary_coords, TBPTContext context, RenderingContextView renderer, const TBPTConfig config) |
|
template<typename TPrimaryCoordinates , typename TBPTContext , typename TBPTConfig > |
__global__ void | bpt::generate_primary_eye_vertices_kernel (const uint32 n_eye_paths, const uint32 n_light_paths, TPrimaryCoordinates primary_coords, TBPTContext context, RenderingContextView renderer, const TBPTConfig config) |
|
template<typename TPrimaryCoordinates , typename TBPTConfig , typename TBPTContext > |
void | bpt::generate_primary_eye_vertices (const uint32 n_eye_paths, const uint32 n_light_paths, TPrimaryCoordinates primary_coords, TBPTContext context, RenderingContextView renderer, const TBPTConfig config) |
|
template<typename TSampleSink , typename TPrimaryCoordinates , typename TBPTContext , typename TBPTConfig > |
__global__ | bpt::__launch_bounds__ (SECONDARY_EYE_VERTICES_BLOCKSIZE, SECONDARY_EYE_VERTICES_CTA_BLOCKS) void process_secondary_eye_vertices_kernel(const uint32 in_queue_size |
|
template<typename TSampleSink , typename TPrimaryCoordinates , typename TBPTContext , typename TBPTConfig > |
void | bpt::process_secondary_eye_vertices (const uint32 in_queue_size, const uint32 n_eye_paths, const uint32 n_light_paths, TSampleSink sink, TPrimaryCoordinates primary_coords, TBPTContext context, RenderingContextView renderer, const TBPTConfig config) |
|