Public Types | Public Methods | Static Public Methods | Public Members | List of all members
PSFPT Struct Reference

Detailed description

An implementation of a path tracer using a simplified version of Path Space Filtering. Unlike the original implementation, this version is not progressive, and relies on efficient spatial hashing for defining accumulation neighborhoods, following ideas first developed by Sascha Fricke, Nikolaus Binder and Alex Keller.


Fast path space filtering by jittered spatial hashing, Binder et al, ACM SIGGRAPH 2018 Talks.

#include <psfpt.h>

Inheritance diagram for PSFPT:

Public Types

enum  PassType { kPresamplePass = 0, kFinalPass = 1 }
typedef AdaptiveClusteredRLStorage VTLRLStorage

Public Methods

void init (int argc, char **argv, RenderingContext &renderer)
void render_pass (const uint32 instance, RenderingContext &renderer, const PassType pass_type)
void render (const uint32 instance, RenderingContext &renderer)
void keyboard (unsigned char character, int x, int y, bool &invalidate)
void destroy ()
- Public Methods inherited from RendererInterface
virtual uint32 auxiliary_channel_count ()
virtual void register_auxiliary_channels (FBufferStorage &fbuffer, const uint32 channel_offset)
virtual void update_scene (RenderingContext &renderer)
virtual void mouse (RenderingContext &renderer, int button, int state, int x, int y)
virtual void draw (RenderingContext &renderer)
virtual void dump_speed_stats (FILE *stats)

Static Public Methods

static RendererInterfacefactory ()

Public Members

DomainBuffer< CUDA_BUFFER, uint8 > m_memory_pool
PSFPTOptions m_options
TiledSequence m_sequence
cugar::LFSRGeneratorMatrix m_generator
cugar::LFSRRandomStream m_random
cugar::Bbox3f m_bbox
float m_time
PTStats m_stats
DeviceHashTable m_psf_hash
DomainBuffer< CUDA_BUFFER, float4 > m_psf_values

Member Function Documentation

◆ destroy()

void PSFPT::destroy ( )

this method is responsible for destroying the object itself

Reimplemented from RendererInterface.

◆ init()

void PSFPT::init ( int  argc,
char **  argv,
RenderingContext renderer 

this method is responsible for any command options parsing / initializations the renderer might need to perform

Reimplemented from RendererInterface.

◆ keyboard()

void PSFPT::keyboard ( unsigned char  character,
int  x,
int  y,
bool &  invalidate 

this method is responsible for handling keyboard events

Reimplemented from RendererInterface.

◆ render()

void PSFPT::render ( const uint32  instance,
RenderingContext renderer 

this method is responsible for rendering a given frame in a progressive rendering

instancethe frame instance

Reimplemented from RendererInterface.

◆ render_pass()

void PSFPT::render_pass ( const uint32  instance,
RenderingContext renderer,
const PassType  pass_type 



[PSFPT::instantiate_vertex_processor] [PSFPT::render-1]



The documentation for this struct was generated from the following files: