Abstract integrator base-class; does not make any assumptions on how radiance is computed. More...
#include <mitsuba/render/integrator.h>
Public Member Functions | |
virtual bool | preprocess (const Scene *scene, RenderQueue *queue, const RenderJob *job, int sceneResID, int sensorResID, int samplerResID) |
Possibly perform a pre-process task. More... | |
virtual bool | render (Scene *scene, RenderQueue *queue, const RenderJob *job, int sceneResID, int sensorResID, int samplerResID)=0 |
Render the scene as seen by the default sensor. More... | |
virtual void | cancel ()=0 |
Cancel a running render job. More... | |
virtual void | postprocess (const Scene *scene, RenderQueue *queue, const RenderJob *job, int sceneResID, int sensorResID, int samplerResID) |
Possibly perform a post-process task. More... | |
virtual void | configureSampler (const Scene *scene, Sampler *sampler) |
Configure the sample generator for use with this integrator. More... | |
virtual const Integrator * | getSubIntegrator (int index) const |
Return the nested integrator (if any) More... | |
void | serialize (Stream *stream, InstanceManager *manager) const |
Serialize this integrator to a binary data stream. 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 | setParent (ConfigurableObject *parent) |
Notify the ConfigurableObject instance about its parent object. 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... | |
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 | |
Integrator (const Properties &props) | |
Create a integrator. More... | |
Integrator (Stream *stream, InstanceManager *manager) | |
Unserialize an integrator. More... | |
virtual | ~Integrator () |
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... | |
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... | |
Protected Attributes inherited from mitsuba::ConfigurableObject | |
Properties | m_properties |
Abstract integrator base-class; does not make any assumptions on how radiance is computed.
In Mitsuba, the different rendering techniques are collectively referred to as integrators, since they perform integration over a high-dimensional space. Each integrator represents a specific approach for solving the light transport equation—usually favored in certain scenarios, but at the same time affected by its own set of intrinsic limitations. Therefore, it is important to carefully select an integrator based on user-specified accuracy requirements and properties of the scene to be rendered.
This is the base class of all integrators; it does not make any assumptions on how radiance is computed, which allows for many different kinds of implementations ranging from software-based path tracing and Markov-Chain based techniques such as Metropolis Light Transport up to hardware-accelerated rasterization.
|
protected |
Create a integrator.
|
protected |
Unserialize an integrator.
|
inlineprotectedvirtual |
Virtual destructor.
|
pure virtual |
Cancel a running render job.
This function can be called asynchronously to cancel a running render job. In this case, render() will quit with a return value of false
.
Implemented in mitsuba::SamplingIntegrator.
|
virtual |
Configure the sample generator for use with this integrator.
This function is called once after instantiation and can be used to inform the sampler implementation about specific sample requirements of this integrator.
|
virtual |
Retrieve this object's class.
Reimplemented from mitsuba::NetworkedObject.
Reimplemented in mitsuba::MonteCarloIntegrator, and mitsuba::SamplingIntegrator.
|
virtual |
Return the nested integrator (if any)
When the integrator contains a nested integrator, this function can be used to query for it
|
virtual |
Possibly perform a post-process task.
This function is called automatically before the main rendering process; the default implementation does nothing.
The last three parameters are resource IDs of the associated scene, sensor and sample generator, which have been made available to all local and remote workers.i
|
virtual |
Possibly perform a pre-process task.
This function is called automatically before the main rendering process; the default implementation does nothing.
The last three parameters are resource IDs of the associated scene, sensor and sample generator, which have been made available to all local and remote workers.i
|
pure virtual |
Render the scene as seen by the default sensor.
Progress is tracked by sending status messages to a provided render queue. The parameter job
is required to discern multiple render jobs occurring in parallel. The last three parameters are resource IDs of the associated scene, sensor and sample generator, which have been made available to all local and remote workers. Returns true upon successful completion.
Implemented in mitsuba::SamplingIntegrator.
|
virtual |
Serialize this integrator to a binary data stream.
Reimplemented from mitsuba::NetworkedObject.
Reimplemented in mitsuba::MonteCarloIntegrator, and mitsuba::SamplingIntegrator.
|
static |