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... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
SerializableObject (Stream *stream, InstanceManager *manager) | |
Unserialize a serializable object. More... | |
![]() | |
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 Class * | m_theClass |
![]() | |
static Class * | m_theClass |
![]() | |
static Class * | m_theClass |
![]() | |
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... | |
![]() | |
virtual | ~NetworkedObject () |
Virtual destructor. More... | |
NetworkedObject (const Properties &props) | |
Constructor. More... | |
NetworkedObject (Stream *stream, InstanceManager *manager) | |
Unserialize a configurable object. More... | |
![]() | |
virtual | ~ConfigurableObject () |
Virtual destructor. More... | |
ConfigurableObject (const Properties &props) | |
Construct a configurable object. More... | |
ConfigurableObject (Stream *stream, InstanceManager *manager) | |
Unserialize a configurable object. More... | |
![]() | |
SerializableObject () | |
Construct a serializable object. More... | |
virtual | ~SerializableObject () |
Virtual deconstructor. More... | |
![]() | |
virtual | ~Object () |
Virtual private deconstructor. (Will only be called by ref) More... | |
Protected Attributes | |
std::vector< Shape * > | m_shapes |
bool | m_active |
![]() | |
Properties | m_properties |
Additional Inherited Members | |
![]() | |
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 |