Mitsuba Renderer  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mitsuba::HemisphereSampler Class Reference

Utility data structure for hemispherical sampling and translational/rotational gradient computation. More...

#include <mitsuba/render/irrcache.h>

+ Inheritance diagram for mitsuba::HemisphereSampler:

Classes

struct  SampleEntry
 

Public Member Functions

 HemisphereSampler (uint32_t M, uint32_t N)
 
uint32_t getM () const
 Return the elevational resolution. More...
 
uint32_t getN () const
 Return the azimuthal resolution. More...
 
SampleEntryoperator() (uint32_t j, uint32_t k)
 Access a cell by index. More...
 
const SampleEntryoperator() (uint32_t j, uint32_t k) const
 Access a cell by index (const version) More...
 
void generateDirections (const Intersection &its)
 Generate a set of projected solid angle-distributed directions. More...
 
void process (const Intersection &its)
 Compute mean distance, gradients etc. More...
 
const RotationalGradientgetRotationalGradient () const
 Return the irradiance gradient with respect to rotation. More...
 
const RotationalGradientgetTranslationalGradient () const
 Return the irradiance gradient with respect to translation. More...
 
Float getHarmonicMeanDistance () const
 Return the average distance over all cells (harmonic mean) More...
 
Float getMinimumDistance () const
 Return the minimum distance over all cells. More...
 
Float getMinimumDistanceRestricted () const
 Return the minimum distance over all cells (>10 deg in elevation) More...
 
const SpectrumgetIrradiance () const
 Return the computed irradiance. More...
 
virtual const ClassgetClass () const
 Retrieve this object's class. More...
 
- Public Member Functions inherited from Object
 Object ()
 Construct a new object. More...
 
int getRefCount () const
 Return the current reference count. More...
 
void incRef () const
 Increase the reference count of the object by one. More...
 
void decRef (bool autoDeallocate=true) const
 Decrease the reference count of the object and possibly deallocate it. More...
 
virtual std::string toString () const
 Return a human-readable string representation of the object's contents. More...
 

Static Public Attributes

static Classm_theClass
 
- Static Public Attributes inherited from Object
static Classm_theClass
 Pointer to the object's class descriptor. More...
 

Protected Member Functions

virtual ~HemisphereSampler ()
 Free all memory. More...
 
- Protected Member Functions inherited from Object
virtual ~Object ()
 Virtual private deconstructor. (Will only be called by ref) More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Object
static void staticInitialization ()
 Initializes the built-in reference count debugger (if enabled) More...
 
static void staticShutdown ()
 Free the memory taken by staticInitialization() More...
 

Detailed Description

Utility data structure for hemispherical sampling and translational/rotational gradient computation.

Uses the improved translational gradients proposed in the paper "Improved radiance gradient computation" by Krivanek J., Gautron P., Bouatouch K., Pattanaik S. (Proceedings of SCCG 2005)

Author
Wenzel Jakob

Constructor & Destructor Documentation

mitsuba::HemisphereSampler::HemisphereSampler ( uint32_t  M,
uint32_t  N 
)

Allocate storage for a hemispherical sample with M elevation and N azimuthal samples.

virtual mitsuba::HemisphereSampler::~HemisphereSampler ( )
protectedvirtual

Free all memory.

Member Function Documentation

void mitsuba::HemisphereSampler::generateDirections ( const Intersection its)

Generate a set of projected solid angle-distributed directions.

virtual const Class* mitsuba::HemisphereSampler::getClass ( ) const
virtual

Retrieve this object's class.

Reimplemented from Object.

Float mitsuba::HemisphereSampler::getHarmonicMeanDistance ( ) const
inline

Return the average distance over all cells (harmonic mean)

const Spectrum& mitsuba::HemisphereSampler::getIrradiance ( ) const
inline

Return the computed irradiance.

uint32_t mitsuba::HemisphereSampler::getM ( ) const
inline

Return the elevational resolution.

Float mitsuba::HemisphereSampler::getMinimumDistance ( ) const
inline

Return the minimum distance over all cells.

Float mitsuba::HemisphereSampler::getMinimumDistanceRestricted ( ) const
inline

Return the minimum distance over all cells (>10 deg in elevation)

uint32_t mitsuba::HemisphereSampler::getN ( ) const
inline

Return the azimuthal resolution.

const RotationalGradient& mitsuba::HemisphereSampler::getRotationalGradient ( ) const
inline

Return the irradiance gradient with respect to rotation.

const RotationalGradient& mitsuba::HemisphereSampler::getTranslationalGradient ( ) const
inline

Return the irradiance gradient with respect to translation.

SampleEntry& mitsuba::HemisphereSampler::operator() ( uint32_t  j,
uint32_t  k 
)
inline

Access a cell by index.

const SampleEntry& mitsuba::HemisphereSampler::operator() ( uint32_t  j,
uint32_t  k 
) const
inline

Access a cell by index (const version)

void mitsuba::HemisphereSampler::process ( const Intersection its)

Compute mean distance, gradients etc.

Member Data Documentation

Class* mitsuba::HemisphereSampler::m_theClass
static

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