Abstract subsurface scattering models. More...
#include <mitsuba/render/subsurface.h>
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 Class * | getClass () 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 * > ¶ms) |
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 Properties & | getProperties () 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 Class * | m_theClass |
Static Public Attributes inherited from mitsuba::NetworkedObject | |
static Class * | m_theClass |
Static Public Attributes inherited from mitsuba::ConfigurableObject | |
static Class * | m_theClass |
Static Public Attributes inherited from mitsuba::SerializableObject | |
static Class * | m_theClass |
Static Public Attributes inherited from Object | |
static Class * | m_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... | |
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.
|
protected |
Create a new subsurface scattering class.
|
protected |
Unserialize a subsurface integrator from a binary data stream.
|
protectedvirtual |
Virtual destructor.
|
virtual |
Cancel any running pre-process tasks.
|
virtual |
Retrieve this object's class.
Reimplemented from mitsuba::NetworkedObject.
|
inline |
Return the list of shapes associated with this subsurface integrator.
|
inline |
Return whether or not the subsurface integrator is currently active.
|
pure virtual |
Get the exitant radiance for a point on the surface.
|
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.
|
virtual |
Serialize this subsurface integrator to a binary data stream.
Reimplemented from mitsuba::NetworkedObject.
|
inline |
Selectively activate/deactivate the subsurface integrator.
|
virtual |
Set the parent node of the subsurface integrator.
Reimplemented from mitsuba::ConfigurableObject.
|
protected |
|
protected |
|
static |