Fermat
Public Methods | Public Members | List of all members
TiledSequence Struct Reference

Detailed description

A tiled sample sequence.

Basically, represents a tiled 2d grid of N-dimensional sample sequences, which can be conveniently "sliced" in 1d or 2d sections (each such slice representing a 2d grid of 1d or 2d samples). The per-pixel sequences are constructed by "offsetting" a base, common sequence using a set of per-pixel N-dimensional shifts. The offsetting process is a regular Cranley-Patterson rotation, i.e. the d-th coordinate of the final sequence for pixel p is given by:
sequence(p,d) = mod( base_sequence[d] + shift[p][d], 1 );
The sequence has a further time dimension that can be used for progressive rendering, which can be advanced calling the TiledSequence::set_instance() method.
Notice this is a host container for a device-side sequence. Once it is set up, the device-side view can be queried using the TiledSequence::view() method.

#include <tiled_sequence.h>

Public Methods

void setup (const uint32 _n_dimensions, const uint32 _tile_size, const bool _random=false)
 
void set_instance (const uint32 instance)
 
TiledSequenceView view ()
 

Public Members

uint32 n_dimensions
 
uint32 tile_size
 
DomainBuffer< CUDA_BUFFER, float > m_shifts
 
DomainBuffer< CUDA_BUFFER, float > m_tile_shifts
 
DomainBuffer< CUDA_BUFFER, float > m_samples
 
DomainBuffer< CUDA_BUFFER, float > m_sequence
 

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