documentation updates

metadata
Wenzel Jakob 2011-08-19 03:24:40 -04:00
parent 139d0d5073
commit a4439bc7a7
43 changed files with 127 additions and 17 deletions

View File

@ -33,6 +33,7 @@ MTS_NAMESPACE_BEGIN
*
* \sa BSDF::f()
* \sa BSDF::sample()
* \ingroup librender
*/
struct MTS_EXPORT_RENDER BSDFQueryRecord {
public:
@ -191,7 +192,9 @@ public:
* this class can sample and evaluate a complete BSDF, but it also allows to
* pick and choose individual components of multi-lobed BSDFs based on their
* properties and component indices. This selection is done using a
*
* \ref BSDFQueryRecord.
* \ingroup librender
*/
class MTS_EXPORT_RENDER BSDF : public ConfigurableObject, public HWResource {
public:

View File

@ -26,6 +26,8 @@ MTS_NAMESPACE_BEGIN
/** \brief Abstract camera base class. A camera turns a sample on
* the image plane into a 3D ray. It uses two supporting child
* objects: a \re Sampler and a \ref Film instance.
*
* \ingroup librender
*/
class MTS_EXPORT_RENDER Camera : public ConfigurableObject {
public:
@ -201,7 +203,13 @@ protected:
Float m_shutterOpen, m_shutterClose, m_shutterOpenTime;
ref<Medium> m_medium;
};
/**
* Projective camera base class
*
* \ingroup librender
*/
class MTS_EXPORT_RENDER ProjectiveCamera : public Camera {
public:
/// Return the projection transformation
@ -237,8 +245,12 @@ protected:
};
/**
* Base class of all pinhole cameras. Provides solid angle computation
* routines useful for importance-based integrators.
* \brief Base class of all perspective cameras
*
* Provides solid angle computation routines useful
* for importance-based integrators.
*
* \ingroup librender
*/
class MTS_EXPORT_RENDER PerspectiveCamera : public ProjectiveCamera {
public:

View File

@ -26,6 +26,7 @@ MTS_NAMESPACE_BEGIN
/**
* \brief Specifies the transported quantity when
* sampling or evaluating a scattering function
* \ingroup librender
*/
enum ETransportQuantity {
ERadiance = 1,
@ -34,6 +35,7 @@ enum ETransportQuantity {
/**
* \brief Specifies the measure associated with
* a scattering function
* \ingroup librender
*/
enum EMeasure {
ESolidAngle = 1,

View File

@ -29,6 +29,7 @@ MTS_NAMESPACE_BEGIN
/** \brief Abstract Film base class - used to store samples
* generated by the Integrator.
* \ingroup librender
*/
class MTS_EXPORT_RENDER Film : public ConfigurableObject {
public:

View File

@ -25,9 +25,11 @@
MTS_NAMESPACE_BEGIN
/**
* Process for parallel photon map construction. Given a number and
* type (surface/caustic/volume) of photons, it distributes the work
* over an arbitrary number of machines.
* Process for parallel photon map construction
*
* Given a number and type (surface/caustic/volume) of photons, this
* class distributes the work over an arbitrary number of machines.
* \ingroup librender
*/
class MTS_EXPORT_RENDER GatherPhotonProcess : public ParticleProcess {
public:

View File

@ -681,6 +681,7 @@ MTS_NAMESPACE_BEGIN
* in parallel.
*
* \author Wenzel Jakob
* \ingroup librender
*/
template <typename AABBType, typename TreeConstructionHeuristic, typename Derived>
class GenericKDTree : public KDTreeBase<AABBType> {

View File

@ -25,6 +25,8 @@
MTS_NAMESPACE_BEGIN
/**
* \brief Storage for an image sub-block (a.k.a render bucket)
*
* This class is used by image-based parallel processes and encapsulates
* the resulting information in a rectangular region of an image. Such
* blocks may also include a border storing contributions that are slightly
@ -34,6 +36,8 @@ MTS_NAMESPACE_BEGIN
* This is important to avoid bias when using large-extent reconstruction
* filters, while at the same time placing significantly different amounts
* of samples into nearby pixels.
*
* \ingroup librender
*/
class MTS_EXPORT_RENDER ImageBlock : public WorkResult {
public:

View File

@ -28,6 +28,8 @@ MTS_NAMESPACE_BEGIN
* the subclass) on the pixels of an image where work on adjacent pixels
* is independent. For preview purposes, a spiraling pattern of square
* pixel blocks is generated.
*
* \ingroup librender
*/
class MTS_EXPORT_RENDER BlockedImageProcess : public ParallelProcess {
public:

View File

@ -33,6 +33,8 @@ MTS_NAMESPACE_BEGIN
* rasterization that directly operates on the camera's film and has
* no global knowledge about radiance within the scene. Other possibilities
* are sampling- or particle tracing-based integrators.
*
* \ingroup librender
*/
class MTS_EXPORT_RENDER Integrator : public NetworkedObject {
public:
@ -109,6 +111,7 @@ protected:
/**
* \brief Radiance query record data structure used by \ref SampleIntegrator
* \ingroup librender
*/
struct MTS_EXPORT_RENDER RadianceQueryRecord {
public:
@ -278,6 +281,7 @@ public:
/** \brief Abstract base class, which describes integrators
* capable of computing samples of the scene's radiance function.
* \ingroup librender
*/
class MTS_EXPORT_RENDER SampleIntegrator : public Integrator {
public:
@ -402,6 +406,7 @@ protected:
* \brief Base class of all recursive Monte Carlo integrators, which compute
* unbiased solutions to the rendering equation (and optionally
* the radiative transfer equation).
* \ingroup librender
*/
class MTS_EXPORT_RENDER MonteCarloIntegrator : public SampleIntegrator {
public:

View File

@ -38,6 +38,7 @@ typedef Spectrum TranslationalGradient[3];
* (Proceedings of SCCG 2005)
*
* \author Wenzel Jakob
* \ingroup librender
*/
class MTS_EXPORT_RENDER HemisphereSampler : public Object {
public:
@ -140,6 +141,7 @@ private:
* by E. Tabellion and A. Lamorlette (SIGGRAPH 2004)
*
* \author Wenzel Jakob
* \ingroup librender
*/
class MTS_EXPORT_RENDER IrradianceCache : public SerializableObject {
public:

View File

@ -27,6 +27,7 @@ MTS_NAMESPACE_BEGIN
/**
* \brief Data structure used by the direct illumination / shadow ray
* sampling methods in the class \ref Luminaire.
* \ingroup librender
*/
struct MTS_EXPORT_RENDER LuminaireSamplingRecord {
public:
@ -66,6 +67,7 @@ public:
/**
* \brief Data structure used to record information associated with
* emission sampling in the class \ref Luminaire.
* \ingroup librender
*/
struct MTS_EXPORT_RENDER EmissionRecord {
public:
@ -119,6 +121,7 @@ public:
/**
* \brief Abstract implementation of a luminaire. Supports emission and
* direct illumination sampling strategies, and computes related probabilities.
* \ingroup librender
*/
class MTS_EXPORT_RENDER Luminaire : public ConfigurableObject, public HWResource {
public:

View File

@ -28,6 +28,7 @@ MTS_NAMESPACE_BEGIN
* integral of the RTE
*
* \sa Medium::sampleDistance()
* \ingroup librender
*/
struct MTS_EXPORT_RENDER MediumSamplingRecord {
public:
@ -89,6 +90,7 @@ public:
};
/** \brief Abstract participating medium
* \ingroup librender
*/
class MTS_EXPORT_RENDER Medium : public NetworkedObject {
public:

View File

@ -26,6 +26,7 @@ MTS_NAMESPACE_BEGIN
#define MIPMAP_LUTSIZE 128
/** \brief Isotropic/anisotropic EWA mip-map texture map class based on PBRT
* \ingroup librender
*/
class MTS_EXPORT_RENDER MIPMap : public Object {
public:

View File

@ -25,7 +25,8 @@
MTS_NAMESPACE_BEGIN
/**
* Sparse mipmap data structure based on an adaptive octree representation
* \brief Sparse mipmap data structure based on an adaptive octree representation
* \ingroup librender
*/
class MTS_EXPORT_RENDER SparseMipmap3D : public SerializableObject {
public:

View File

@ -27,6 +27,7 @@ MTS_NAMESPACE_BEGIN
* \brief Contains a few useful noise functions
*
* The implementations in this class are based on PBRT
* \ingroup librender
*/
class MTS_EXPORT_RENDER Noise {
public:

View File

@ -38,6 +38,8 @@ MTS_NAMESPACE_BEGIN
* of \ref ParticleTracer with overridden functions
* \ref ParticleTracer::handleSurfaceInteraction and
* \ref ParticleTracer::handleMediumInteraction.
*
* \ingroup librender
*/
class MTS_EXPORT_RENDER ParticleProcess : public ParallelProcess {
public:
@ -119,6 +121,8 @@ protected:
*
* Traces particles and performs a customizable action every time a
* surface or volume interaction occurs.
*
* \ingroup librender
*/
class MTS_EXPORT_RENDER ParticleTracer : public WorkProcessor {
public:

View File

@ -27,6 +27,8 @@ MTS_NAMESPACE_BEGIN
/**
* \brief Data structure, which contains information
* required to sample or query a phase function.
*
* \ingroup librender
*/
struct MTS_EXPORT_RENDER PhaseFunctionQueryRecord {
/**
@ -97,6 +99,7 @@ struct MTS_EXPORT_RENDER PhaseFunctionQueryRecord {
};
/** \brief Abstract phase function.
* \ingroup librender
*/
class MTS_EXPORT_RENDER PhaseFunction : public ConfigurableObject {
public:

View File

@ -28,6 +28,8 @@ MTS_NAMESPACE_BEGIN
*
* Requires 24 bytes when Mitsuba is compiled with single precision
* and RGB-based color spectra.
*
* \ingroup librender
*/
struct MTS_EXPORT_RENDER Photon {
friend class PhotonMap;

View File

@ -39,6 +39,7 @@ MTS_NAMESPACE_BEGIN
* estimate. The bug has been fixed in this re-implementation.
*
* \author Wenzel Jakob
* \ingroup librender
*/
class MTS_EXPORT_RENDER PhotonMap : public SerializableObject {
public:

View File

@ -27,6 +27,7 @@ MTS_NAMESPACE_BEGIN
* Preview worker - can be used to render a quick preview of a scene
* (illuminated by a VPL). The implementation uses coherent ray tracing
* when compiled in single precision and SSE is available.
* \ingroup librender
*/
class MTS_EXPORT_RENDER PreviewWorker : public WorkProcessor {
public:

View File

@ -28,6 +28,8 @@ MTS_NAMESPACE_BEGIN
*
* An example usage is in \ref ParticleProcess, where this class specifies
* sequences of particles to be traced.
*
* \ingroup librender
*/
class MTS_EXPORT_RENDER RangeWorkUnit : public WorkUnit {
public:

View File

@ -27,6 +27,7 @@ MTS_NAMESPACE_BEGIN
* \brief Work unit that specifies a rectangular region in an image.
*
* Used for instance in \ref BlockedImageProcess
* \ingroup librender
*/
class MTS_EXPORT_RENDER RectangularWorkUnit : public WorkUnit {
public:

View File

@ -29,6 +29,7 @@ MTS_NAMESPACE_BEGIN
* Render job - coordinates the process of rendering a single
* image. Implemented as a thread so that multiple jobs can
* be executed concurrently.
* \ingroup librender
*/
class MTS_EXPORT_RENDER RenderJob : public Thread {
public:

View File

@ -32,6 +32,7 @@ MTS_NAMESPACE_BEGIN
* then rendered in parallel.
*
* \sa SampleIntegrator
* \ingroup librender
*/
class MTS_EXPORT_RENDER BlockedRenderProcess : public BlockedImageProcess {
public:

View File

@ -27,6 +27,7 @@ MTS_NAMESPACE_BEGIN
/**
* \brief Abstract render listener - can be used to react to
* progress messages (e.g. in a GUI)
* \ingroup librender
*/
class MTS_EXPORT_RENDER RenderListener : public Object {
public:
@ -55,6 +56,7 @@ protected:
* Render queue - used to keep track of a number of scenes
* that are simultaneously being rendered. Also distributes
* events regarding these scenes to registered listeners.
* \ingroup librender
*/
class MTS_EXPORT_RENDER RenderQueue : public Object {
public:

View File

@ -25,7 +25,8 @@
MTS_NAMESPACE_BEGIN
/**
* Abstract image reconstruction filter
* \brief Abstract image reconstruction filter
* \ingroup librender
*/
class MTS_EXPORT_RENDER ReconstructionFilter : public ConfigurableObject {
public:
@ -59,8 +60,11 @@ protected:
};
/**
* Tabulates expensive-to-evaluate filters so that they become
* simple array lookups. Only works for symmetric filters!
* \brief Tabulates expensive-to-evaluate filters so that they become
* simple array lookups.
*
* Only works for symmetric filters!
* \ingroup librender
*/
#define FILTER_RESOLUTION 15
class TabulatedFilter : public Object {

View File

@ -31,6 +31,7 @@ MTS_NAMESPACE_BEGIN
/**
* \brief Implements the surface area heuristic for use
* by the \ref GenericKDTree construction algorithm.
* \ingroup librender
*/
class SurfaceAreaHeuristic {
public:
@ -94,6 +95,7 @@ private:
* Havran's PhD thesis "Heuristic Ray Shooting Algorithms".
*
* \author Wenzel Jakob
* \ingroup librender
*/
template <typename Derived>
class SAHKDTree3D : public GenericKDTree<AABB, SurfaceAreaHeuristic, Derived> {

View File

@ -58,6 +58,8 @@ MTS_NAMESPACE_BEGIN
* stratify over all of the rays that are ultimately generated, and the
* \ref next1DArray() and \ref next2DArray() methods allow to do this.
* See the file \c direct.cpp for an example.
*
* \ingroup librender
*/
class MTS_EXPORT_RENDER Sampler : public ConfigurableObject {
public:

View File

@ -42,6 +42,7 @@ MTS_NAMESPACE_BEGIN
* Holds information on surfaces, luminaires and participating media and
* coordinates rendering jobs. This class also provides useful query routines
* that are mostly used by the \ref Integrator implementations.
* \ingroup librender
*/
class MTS_EXPORT_RENDER Scene : public NetworkedObject {
public:

View File

@ -34,7 +34,10 @@ XERCES_CPP_NAMESPACE_END
XERCES_CPP_NAMESPACE_USE
MTS_NAMESPACE_BEGIN
/// \brief This exception is thrown when attempting to load an outdated file
/**
* \brief This exception is thrown when attempting to load an outdated file
* \ingroup librender
*/
class VersionException : public std::runtime_error {
public:
inline VersionException(const std::string &str, const Version &version)
@ -48,6 +51,7 @@ private:
/**
* \brief XML parser for Mitsuba scene files. To be used with the
* SAX interface Xerces-C++.
* \ingroup librender
*/
class MTS_EXPORT_RENDER SceneHandler : public HandlerBase {
public:

View File

@ -47,6 +47,8 @@ public:
*
* Subclasses can implement one of various things, such as a BSDF,
* a light source, or a texture.
*
* \ingroup librender
*/
class MTS_EXPORT_RENDER Shader : public Object {
public:

View File

@ -28,6 +28,7 @@ MTS_NAMESPACE_BEGIN
/** \brief Data record, which holds sampling-related information
* for a shape.
* \ingroup librender
*/
struct MTS_EXPORT_RENDER ShapeSamplingRecord {
public:
@ -53,6 +54,7 @@ public:
/** \brief Container for all information related to
* a surface intersection
* \ingroup librender
*/
struct MTS_EXPORT_RENDER Intersection {
public:
@ -173,6 +175,7 @@ public:
};
/** \brief Abstract base class of all shapes
* \ingroup librender
*/
class MTS_EXPORT_RENDER Shape : public ConfigurableObject {
public:

View File

@ -62,6 +62,7 @@ typedef const Shape * ConstShapePtr;
* tends to be quite a bit slower.
*
* \sa GenericKDTree
* \ingroup librender
*/
class MTS_EXPORT_RENDER ShapeKDTree : public SAHKDTree3D<ShapeKDTree> {

View File

@ -26,7 +26,10 @@
MTS_NAMESPACE_BEGIN
/// Block listener callback for use with the Spiral class
/**
* \brief Block listener callback for use with the \ref Spiral class
* \ingroup librender
*/
class MTS_EXPORT_RENDER BlockListener {
public:
/// Called whenever an image block is acquired
@ -52,7 +55,8 @@ protected:
* Aug 25, 2005
* RayTracer.java
* Copyright 2005 Program of Computer Graphics, Cornell University
*/
* \ingroup librender
*/
class MTS_EXPORT_RENDER Spiral : public Object {
public:

View File

@ -31,6 +31,8 @@ MTS_NAMESPACE_BEGIN
* completely up to the implementation. It might for instance
* recursively trace rays or perform lookups into a precomputed
* point cloud radiance representation.
*
* \ingroup librender
*/
class MTS_EXPORT_RENDER Subsurface : public NetworkedObject {
public:

View File

@ -40,6 +40,7 @@ MTS_NAMESPACE_BEGIN
* declared using the MTS_DECLARE_TEST() macro are executed. Finally,
* the shutdown() method is called. See the files in 'mitsuba/src/tests'
* for examples.
* \ingroup librender
*/
class MTS_EXPORT_RENDER TestCase : public Utility {
public:
@ -123,6 +124,7 @@ protected:
* the actual generated results and a user-specified type of test is executed
* to decide between equality or inequality. Any problems are kept in a log,
* which can later be printed using <tt>printSummary()</tt>.
* \ingroup librender
*/
class MTS_EXPORT_RENDER TestSupervisor : public Object {
public:

View File

@ -28,6 +28,7 @@ MTS_NAMESPACE_BEGIN
/**
* \brief Base class of all textures. Computes values for an arbitrary surface
* point. \ref Texture2D is a specialization to UV-based textures.
* \ingroup librender
*/
class MTS_EXPORT_RENDER Texture : public ConfigurableObject, public HWResource {
public:
@ -63,6 +64,10 @@ protected:
virtual ~Texture();
};
/**
* \brief Base class of all 2D textures
* \ingroup librender
*/
class MTS_EXPORT_RENDER Texture2D : public Texture {
public:
/// Return the texture value at \a its

View File

@ -25,7 +25,10 @@ MTS_NAMESPACE_BEGIN
template <typename T> class AnimationTrack;
/// Base class of animation tracks
/**
* \brief Base class of animation tracks
* \ingroup librender
*/
class MTS_EXPORT_RENDER AbstractAnimationTrack : public Object {
template<typename T> friend class AnimationTrack;
public:
@ -63,7 +66,10 @@ protected:
std::vector<Float> m_times;
};
/// Parameterizable animation track
/**
* \brief Parameterizable animation track
* \ingroup librender
*/
template <typename T> class AnimationTrack : public AbstractAnimationTrack {
public:
typedef T value_type;
@ -155,7 +161,10 @@ template<> void AnimationTrack<Quaternion>::serialize(Stream *stream, const Quat
value.serialize(stream);
}
/// Animated transformation with an underlying keyframe representation
/**
* \brief Animated transformation with an underlying keyframe representation
* \ingroup librender
*/
class MTS_EXPORT_RENDER AnimatedTransform : public Object {
public:
/// Create a new animated transform

View File

@ -30,6 +30,7 @@ static const uint32_t KNoTriangleFlag = 0xFFFFFFFF;
* Pre-computed triangle representation using Ingo Wald's TriAccel layout.
* Fits into three 16-byte cache lines if single precision floats are used.
* The k parameter is also used for classification during kd-tree construction.
* \ingroup librender
*/
struct TriAccel {
uint32_t k;

View File

@ -28,6 +28,10 @@ namespace fs = boost::filesystem;
MTS_NAMESPACE_BEGIN
/**
* \brief Simple tangent space storage for surfaces
* \ingroup librender
*/
struct TangentSpace {
/// Position partials wrt. the UV parameterization
Vector dpdu;
@ -45,6 +49,7 @@ struct TangentSpace {
};
/** \brief Abstract triangle mesh base class
* \ingroup librender
*/
class MTS_EXPORT_RENDER TriMesh : public Shape {
public:

View File

@ -26,6 +26,7 @@ MTS_NAMESPACE_BEGIN
/** \brief Abstract utility class -- can be used to implement
* loadable utility plugins that perform various actions. They
* can be started using the 'mtsutil' launcher.
* \ingroup librender
*/
class MTS_EXPORT_RENDER Utility : public Object {
public:

View File

@ -25,7 +25,8 @@
MTS_NAMESPACE_BEGIN
/**
* Generalized source of volumetric information
* \brief Generalized source of volumetric information
* \ingroup librender
*/
class MTS_EXPORT_RENDER VolumeDataSource : public ConfigurableObject {
public:

View File

@ -31,6 +31,7 @@ enum EVPLType {
/**
* Support routines for rendering algorithms based on VPLs (virtual
* point lights)
* \ingroup librender
*/
struct VPL {
inline VPL(EVPLType type, const Spectrum &P)