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

Detailed description

A tiled sample sequence view.

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 );

#include <tiled_sequence.h>

Public Methods

FERMAT_HOST_DEVICE uint32 shift_index (const uint32 idx, const uint32 dim) const
 
FERMAT_HOST_DEVICE float sample (const uint32 idx, const uint32 dim) const
 
FERMAT_HOST_DEVICE FERMAT_FORCEINLINE float shift (const uint32 idx, const uint32 dim) const
 
FERMAT_HOST_DEVICE FERMAT_FORCEINLINE float shift (const uint32 pixel_x, const uint32 pixel_y, const uint32 dim) const
 
FERMAT_HOST_DEVICE float sample_1d (const uint32 tile_idx, const uint32 idx, const uint32 dim) const
 
FERMAT_HOST_DEVICE float sample_2d (const uint32 pixel_x, const uint32 pixel_y, const uint32 dim) const
 

Public Members

uint32 n_dimensions
 
uint32 tile_size
 
const float * samples
 
const float * shifts
 

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