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

Abstract subsurface scattering models. More...

#include <mitsuba/render/subsurface.h>

+ Inheritance diagram for mitsuba::Subsurface:

Public Member Functions

virtual bool preprocess (const Scene *scene, RenderQueue *queue, const RenderJob *job, int sceneResID, int cameraResID, int samplerResID)=0
 Possibly perform a pre-process task. More...
 
void setActive (bool active)
 Selectively activate/deactivate the subsurface integrator. More...
 
bool isActive () const
 Return whether or not the subsurface integrator is currently active. More...
 
virtual void cancel ()
 Cancel any running pre-process tasks. More...
 
const std::vector< Shape * > getShapes () const
 Return the list of shapes associated with this subsurface integrator. More...
 
virtual Spectrum Lo (const Scene *scene, Sampler *sampler, const Intersection &its, const Vector &d, int depth=0) const =0
 Get the exitant radiance for a point on the surface. More...
 
void serialize (Stream *stream, InstanceManager *manager) const
 Serialize this subsurface integrator to a binary data stream. More...
 
void setParent (ConfigurableObject *parent)
 Set the parent node of the subsurface integrator. More...
 
virtual const ClassgetClass () const
 Retrieve this object's class. More...
 
- Public Member Functions inherited from mitsuba::NetworkedObject
virtual void bindUsedResources (ParallelProcess *proc) const
 Bind any used resources to the process proc. More...
 
virtual void wakeup (ConfigurableObject *parent, std::map< std::string, SerializableObject * > &params)
 Retrieve any required resources. More...
 
- Public Member Functions inherited from mitsuba::ConfigurableObject
virtual void addChild (const std::string &name, ConfigurableObject *child)
 Add a child (default implementation throws an error) More...
 
void addChild (ConfigurableObject *child)
 Add an unnamed child. More...
 
virtual void configure ()
 Configure the object (called once after construction and addition of all child ConfigurableObject instances)) More...
 
const std::string & getID () const
 Return the identifier associated with this instance (or "unnamed") More...
 
void setID (const std::string &name)
 Set the identifier associated with this instance. More...
 
const PropertiesgetProperties () const
 Return the properties object that was originally used to create this instance. More...
 
- Public Member Functions inherited from mitsuba::SerializableObject
 SerializableObject (Stream *stream, InstanceManager *manager)
 Unserialize a serializable object. 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 mitsuba::NetworkedObject
static Classm_theClass
 
- Static Public Attributes inherited from mitsuba::ConfigurableObject
static Classm_theClass
 
- Static Public Attributes inherited from mitsuba::SerializableObject
static Classm_theClass
 
- Static Public Attributes inherited from Object
static Classm_theClass
 Pointer to the object's class descriptor. More...
 

Protected Member Functions

 Subsurface (const Properties &props)
 Create a new subsurface scattering class. More...
 
 Subsurface (Stream *stream, InstanceManager *manager)
 Unserialize a subsurface integrator from a binary data stream. More...
 
virtual ~Subsurface ()
 Virtual destructor. More...
 
- Protected Member Functions inherited from mitsuba::NetworkedObject
virtual ~NetworkedObject ()
 Virtual destructor. More...
 
 NetworkedObject (const Properties &props)
 Constructor. More...
 
 NetworkedObject (Stream *stream, InstanceManager *manager)
 Unserialize a configurable object. More...
 
- Protected Member Functions inherited from mitsuba::ConfigurableObject
virtual ~ConfigurableObject ()
 Virtual destructor. More...
 
 ConfigurableObject (const Properties &props)
 Construct a configurable object. More...
 
 ConfigurableObject (Stream *stream, InstanceManager *manager)
 Unserialize a configurable object. More...
 
- Protected Member Functions inherited from mitsuba::SerializableObject
 SerializableObject ()
 Construct a serializable object. More...
 
virtual ~SerializableObject ()
 Virtual deconstructor. More...
 
- Protected Member Functions inherited from Object
virtual ~Object ()
 Virtual private deconstructor. (Will only be called by ref) More...
 

Protected Attributes

std::vector< Shape * > m_shapes
 
bool m_active
 
- Protected Attributes inherited from mitsuba::ConfigurableObject
Properties m_properties
 

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

Abstract subsurface scattering models.

Can be attached to an arbitrary shape to compute exitant radiance due to internal scattering. How that is done is completely up to the implementation. It might for instance recursively trace rays or perform lookups into a precomputed point cloud radiance representation.

Constructor & Destructor Documentation

mitsuba::Subsurface::Subsurface ( const Properties props)
protected

Create a new subsurface scattering class.

mitsuba::Subsurface::Subsurface ( Stream stream,
InstanceManager manager 
)
protected

Unserialize a subsurface integrator from a binary data stream.

virtual mitsuba::Subsurface::~Subsurface ( )
protectedvirtual

Virtual destructor.

Member Function Documentation

virtual void mitsuba::Subsurface::cancel ( )
virtual

Cancel any running pre-process tasks.

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

Retrieve this object's class.

Reimplemented from mitsuba::NetworkedObject.

const std::vector<Shape *> mitsuba::Subsurface::getShapes ( ) const
inline

Return the list of shapes associated with this subsurface integrator.

bool mitsuba::Subsurface::isActive ( ) const
inline

Return whether or not the subsurface integrator is currently active.

virtual Spectrum mitsuba::Subsurface::Lo ( const Scene scene,
Sampler sampler,
const Intersection its,
const Vector d,
int  depth = 0 
) const
pure virtual

Get the exitant radiance for a point on the surface.

virtual bool mitsuba::Subsurface::preprocess ( const Scene scene,
RenderQueue queue,
const RenderJob job,
int  sceneResID,
int  cameraResID,
int  samplerResID 
)
pure virtual

Possibly perform a pre-process task.

The last three parameters are resource IDs of the associated scene, camera and sample generator, which have been made available to all local and remote workers.

void mitsuba::Subsurface::serialize ( Stream stream,
InstanceManager manager 
) const
virtual

Serialize this subsurface integrator to a binary data stream.

Reimplemented from mitsuba::NetworkedObject.

void mitsuba::Subsurface::setActive ( bool  active)
inline

Selectively activate/deactivate the subsurface integrator.

void mitsuba::Subsurface::setParent ( ConfigurableObject parent)
virtual

Set the parent node of the subsurface integrator.

Reimplemented from mitsuba::ConfigurableObject.

Member Data Documentation

bool mitsuba::Subsurface::m_active
protected
std::vector<Shape *> mitsuba::Subsurface::m_shapes
protected
Class* mitsuba::Subsurface::m_theClass
static

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