Documentation (version 2.0.2)
- Root element
- Surface/Medium integrators
- irrcache - Irradiance caching integrator
- errctrl - Error-controlling integrator
- direct - Direct-only integrator with multiple importance sampling
- path - Path tracer with multiple importance sampling
- volpath - Volumetric path tracer with multiple importance sampling
- volpath_simple - Simple volumetric path tracer
- ptracer - Adjoint particle tracer
- Subsurface Integrators
- Luminaires
- Participating media
- Phase functions
- Cameras
- Films
- Reconstruction filters
- Samplers
- Scene root element
| Plugin name: | |
| Class name: | Scene |
| Description: | Tweaking the kd-tree construction parameters is generally not required. |
| string testType |
When test case mode is active (ubiquaque is started with the -t parameter), this specifies the type of test performed. ubiquaque will expect a reference solution file of the name <sceneName>.ref. When set to t-test, a two-sided t-test on equality to the reference will be performed at the (1 - testThresh) level (99% by default). When set to relerr, the test will fail if the relative error exceeds testThresh. (Default: t-test) |
| float testThresh |
Error threshold for use with testType (Default: 0.01) |
| boolean importanceSampleLuminaires |
By default, luminaire sampling chooses a luminaire with a probability dependent on the emitted power. Setting this parameter to false switches to uniform sampling. (Default: true) |
| boolean kdClip |
kd-tree construction: Enable primitive clipping? Generally leads to a significant improvement of the resulting tree. (Default: true) |
| float kdIntersectionCost |
kd-tree construction: Relative cost of a triangle intersection operation in the surface area heuristic. (Default: 20) |
| float kdTraversalCost |
kd-tree construction: Relative cost of a kd-tree traversal operation in the surface area heuristic. (Default: 15) |
| float kdEmptyBonus |
kd-tree construction: Bonus factor for cutting away regions of empty space (Default: 0.8) |
| integer kdStopPrims |
kd-tree construction: A kd-tree node containing this many or fewer primitives will not be split (Default: 8) |
SampleIntegrator (abstract) - Base class of all sampling-based integrators
| Class name: | SampleIntegrator |
| Description: | Base class of all sampling-based integrators |
| boolean irrSamples |
When computing the irradiance at a surface point using the integrator's E() function, how many samples per pixel should be used? (Default: true) |
| boolean irrIndirect |
When computing the irradiance at a surface point using the integrator's E() function, should indirect illumination be included in the estimate? (Default: true) |
MonteCarloIntegrator (abstract) - Base class of recursive MC integrators
| Class hierarchy: | MonteCarloIntegrator extends SampleIntegrator |
| Description: | Base class of all unbiased recursive Monte Carlo integrators, which estimate the infinite dimensional integral given by the rendering equation (and optionally the radiative transfer equation). |
| boolean multipleScattering |
Should the multiple scattering term be included? (if supported by the integrator) (Default: true) |
| integer rrDepth |
Depth to start using russian roulette (Default: 10) |
| integer maxDepth |
If set to a positive, value, the recursion will stop after this depth. A value of '1' will lead to one-bounce (direct-only) illumination, etc. (Default: -1) |
irrcache - Irradiance caching integrator
| Plugin name: | irrcache |
| Class hierarchy: | IrradianceCacheIntegrator extends SampleIntegrator |
| Description: | Irradiance caching integrator - forwards all radiance computations to an arbitrary sampling-based sub-integrator - with one exception: whenever a Lambertian surface is intersected, an internal irradiance cache is queried for the indirect illumination at the surface position in question. If this query is successful, the sub-integrator is only used to compute the remaining types of radiance (direct, in-scatter, emission) and their sum is returned afterwards. When a query is unsuccessful, a new data point is generated by a final gathering step. The generality of this implementation allows it to be used in conjunction with photon mapping (the most likely application) as well as all other sampling-based integrators in ubiquaque. Several optimizations are used to improve the achieved interpolation quality, namely irradiance gradients [Ward et al.], neighbor clamping [Krivanek et al.], a screen-space clamping metric and an improved error function [Tabellion et al.]. By default, this integrator also performs a distributed overture pass before rendering, which is recommended to avoid artifacts resulting from the addition of samples as rendering proceeds. |
| integer resolution |
Elevational resolution of the stratified final gather hemisphere. The azimuthal resolution is three times this value. Default: 14x(3*14)=588 samples (Default: 14) |
| boolean overture |
If set to true, the irradiance cache will be filled by a parallel overture pass before the main rendering process starts. This is strongly recommended. (Default: true) |
| float quality |
Quality setting (\kappa in the [Tabellion et al.] paper). A value of 1 should be adequate in most cases. (Default: 1) |
| float qualityFactor |
Multiplicative factor for the quality parameter following an overture pass. This can be used to interpolate amongst more samples, creating a visually smoother result. Must be 1 or less. (Default: .5) |
| boolean debug |
If set to true, sample locations will be visually highlighted (Default: false) |
| boolean gradients |
Should irradiance gradients be used? Generally, this will significantly improve the interpolation quality. (Default: true) |
| boolean clampNeighbor |
Should neighbor clamping [Krivanek et al.] be used? This propagates geometry information amongst close-by samples and generally leads to better sample placement. (Default: true) |
| boolean clampScreen |
If set to true, the influence region of samples will be clamped using the screen-space metric by [Tabellion et al.]? Turning this off may lead to excessive sample placement. (Default: true) |
| float influenceMin |
Minimum influence region of an irradiance sample (relative to scene size, in [0,1]) (Default: 0.005) |
| float influenceMax |
Maximum influence region of an irradiance sample (default=64*min) (Default: 64 * influenceMin) |
| boolean direct |
If set to false, direct illumination will be suppressed - useful for checking the interpolation quality (Default: true) |
<!--Sample usage -->
<integrator type="irrcache"><!-- Single-bounce GI on diffuse surfaces, generate debug output -->
<boolean name="debug" value="true"/>
<boolean name="direct" value="false"/>
<integrator type="direct"/>
</integrator>
errctrl - Error-controlling integrator
| Plugin name: | errctrl |
| Class hierarchy: | DirectIntegrator extends SampleIntegrator |
| Description: | Error-controlling integrator - runs a secondary integrator until the error of the computed radiance lies below a specifiable relative threshold (1% by default) with a certain probability (99% by default). Internally, it uses a Z-test to decide when to stop collecting samples. A sufficiently high number of samples is required to make this feasible. The CLT approximation generally holds well enough for n>64 (the default), but this may have to be adjusted depending on the scene. When used in conjunction with image reconstruction filters, this class takes care not to unduly bias neighboring image regions by the placement of many samples at a certain position. |
| float maxError |
Maximum relative error threshold (Default: 0.01) |
| integer minSamples |
Minimum numbers of samples (Should be large enough so that reliable variance estimates can be obtained) (Default: 64) |
| integer maxSamples |
Absolute maximum number of samples to take. The sample collection will stop after this many samples even if the variance is still too high. A negative value will be interpreted as infinity. (Default: 2048) |
| float prob |
Probability of mistakingly accepting a radiance estimate with higher error. (Default: 0.01) |
| boolean verbose |
Display convergence statistics (Default: false) |
<!--Sample usage -->
<integrator type="errctrl"><float name="maxError" value="0.001"/>
<integrator type="path">
<integer name="maxDepth" value="1024"/>
</integrator>
</integrator>
direct - Direct-only integrator with multiple importance sampling
| Plugin name: | direct |
| Class hierarchy: | MIDirectIntegrator extends SampleIntegrator |
| Description: | Direct-only integrator using multiple importance sampling and the power heuristic. Takes a user-specifiable amount of luminaire and BSDF samples By setting one of the strategies to zero, this class can effectively be turned into a luminaire sampling or BSDF sampling-based integrator. Also handles absorption by participating media. |
| integer luminaireSamples |
Number of samples to take using the luminaire sampling technique (Default: 1) |
| integer bsdfSamples |
Number of samples to take using the BSDF sampling technique (Default: 1) |
| float beta |
Beta coefficient for the power heuristic (Default: 2) |
path - Path tracer with multiple importance sampling
| Plugin name: | path |
| Class hierarchy: | MIPathTracer extends MonteCarloIntegrator |
| Description: | MI Path tracer with support for volumetric absorption. Estimates the direct illumination component using both BSDF and luminaire sampling and combines the two using multiple importance sampling and the power heuristic. Afterwards, the BSDF sample is reused to recursively estimate the indirect component, which saves an intersection computation. |
| float beta |
Beta coefficient for the power heuristic (Default: 2) |
volpath - Volumetric path tracer with multiple importance sampling
| Plugin name: | volpath |
| Class hierarchy: | VolumetricPathTracer extends MonteCarloIntegrator |
| Description: | Volumetric path tracer, which solves the full radiative transfer equation in the presence of participating media. Estimates single scattering using both phase function and luminaire sampling and combines the two with multiple importance sampling and the power heuristic. Afterwards, the phase function sample is reused to recursively estimate the multiple scattering component, which saves an intersection computation. On surfaces, this integrator behaves exactly like the MI path tracer. |
| float beta |
Beta coefficient for the power heuristic (Default: 2) |
volpath_simple - Simple volumetric path tracer
| Plugin name: | volpath_simple |
| Class hierarchy: | SimpleVolumetricPathTracer extends MonteCarloIntegrator |
| Description: | Volumetric path tracer, which solves the full radiative transfer equation in the presence of participating media. Significantly simplified version without multiple importance sampling - this version can be much faster than the multiple importance sampling version when when rendering heterogeneous participating media using the [Coleman et al.] sampling technique, since fewer attenuation evaluations will be required. |
ptracer - Adjoint particle tracer
| Plugin name: | ptracer |
| Class hierarchy: | ParticleTracer extends ImageBasedIntegrator |
| Description: | Particle tracer using an adjoint formulation -- meant primarily for verification purposes and test cases. This class follows appendix 4.A of Eric Veach's PhD thesis and computes the inner product between emitted radiance and incident importance at the light source (e.g. I = <Le, Wi>). The importance is recursively estimated using a Monte Carlo random walk and adjoint BSDFs are used for scattering events. Non-symmetric behavior due to the use of shading normals is handled correctly. For practical reasons, the integral is simultaneously computed for every pixel on the image plane. This is done similarly to path tracing with next event estimation (PTNEE) by tracing a shadow ray at every surface/volume interaction. An independent accumulation buffer will be assigned to every processor so that the rendering process can run in parallel. The importance distribution on the camera sensor is chosen to be equivalent to a perspective camera used in a traditional backward ray tracer with uniform sampling on the image plane. The number of samples is specified by the camera's sampler instance. |
| integer granularity |
Granularity of the work units used in parallelizing the particle tracing task (default: 200K samples). Should be high enough so that sending and accumulating the partially exposed films is not the bottleneck. (Default: 200000) |
| boolean multipleScattering |
Should the multiple scattering term be included? (Default: true) |
| integer rrDepth |
Depth to start using russian roulette (Default: 10) |
| integer maxDepth |
If set to a positive, value, the recursion will stop after this depth. A value of '1' will lead to one-bounce (direct-only) illumination, etc. (Default: -1) |
<!--Sample usage -->
<scene><integrator type="ptracer">
<!-- Work on chunks of 1M particles, GI up to a depth of 100 -->
<integer name="granularity" value="1000000"/>
<integer name="maxDepth" value="100"/>
</integrator>
<!-- Luminaires, shapes go here ... -->
<camera type="perspective">
<float name="fov" value="45"/>
<transform name="toWorld">
<translate x="0" y="0" z="3.5"/>
</transform>
<!-- QMC: Use the Hammersley sequence to trace 100M particles -->
<sampler type="hammersley">
<integer name="sampleCount" value="100000000"/>
</sampler>
<!-- Generate a 768x768 EXR image -->
<film type="exrfilm">
<integer name="width" value="768"/>
<integer name="height" value="768"/>
</film>
</camera>
</scene>
Subsurface (abstract) - Subsurface integrator base class
| Class name: | Subsurface |
| Description: | Abstract subsurface integrator -- can be attached to a shape to compute exitant radiance due to internal scattering. By default, the parameters are set to the skim milk data from "A Practical Model for Subsurface scattering" (Jensen et al.) |
| spectrum sigmaS |
Scattering coefficient (Default: 0.7, 1.22, 1.9) |
| spectrum sigmaT |
Absorption coefficient (Default: 0.0014, 0.0025, 0.0142) |
| float eta |
Refractive index of the object (Default: 1.3) |
| float sizeMultiplier |
Scattering/absorption coefficient multiplier - can be used to convert these to world-space units. (Default: 1) |
dipole - Dipole diffusion subsurface integrator
| Plugin name: | dipole |
| Class hierarchy: | IsotropicDipole extends Subsurface |
| Description: | Subsurface scattering integrator using Jensen's fast hierarchical dipole approximation scheme. ("A Rapid Hierarhical Rendering Technique for Translucent Materials" by Herik Wann Jensen and Juan Buhler, in SIGGRAPH 02) |
| integer maxDepth |
Max. depth of the created octree (Default: 10) |
| float minDelta |
Error threshold (Default: .1) |
| boolean requireSample |
Should every triangle contain at least one sample? (Default: false) |
Medium (abstract) - Base class of all participating media
| Class name: | Medium |
| Description: | Base class of all participating media -- By default, the parameters are set to the skim milk data from "A Practical Model for Subsurface scattering" (Jensen et al.) |
| spectrum sigmaS |
Scattering coefficient (Default: 0.7, 1.22, 1.9) |
| spectrum sigmaT |
Absorption coefficient (Default: 0.0014, 0.0025, 0.0142) |
| float sizeMultiplier |
Scattering/absorption coefficient multiplier - can be used to convert these to world-space units. (Default: 1) |
homogeneous - Homogeneous participating medium
| Plugin name: | homogeneous |
| Class hierarchy: | HomogeneousMedium extends Medium |
| Description: | Homogeneous participating medium. An arbitrary (manifold) shape must be specified as a child object. |
heterogeneous - Heterogeneous participating medium
| Plugin name: | heterogeneous |
| Class hierarchy: | HeterogeneousMedium extends Medium |
| Description: |
Heterogeneous medium class using trilinear interpolation,
Simpson quadrature and one of several possible sampling
strategies. Data files have to be provided in an ASCII
format as follows:
|
| string filename |
File containing sampled volume densities |
| string strategy |
Specifies the used strategy - the four choices are:
|
| string stepSizeFactor |
While integrating density along a ray, approximately one sample per voxel is taken - that number can be changed here (Default: standard) |
| float sigma |
Can be used to override the extinction coefficient used to sample distances in the in-scatter line integral. By default, the smallest spectral sample of sigmaA+sigmaT is used. (Default: min(sigmaA+sigmaS)) |
isotropic - Isotropic phase function
| Plugin name: | isotropic |
| Class hierarchy: | IsotropicPhaseFunction extends PhaseFunction |
| Description: | Basic isotropic phase function |
hg - Henyey-Greenstein phase function
| Plugin name: | hg |
| Class hierarchy: | HGPhaseFunction extends PhaseFunction |
| Description: | Phase function by Henyey and Greenstein (1941). Parameterizable from backward- through isotropic- to forward scattering. |
| float g |
Asymmetry parameter of the Henyey-Greenstein phase function. Must lie in [-1, 1] where >0 is forward scattering and <0 is backward scattering. (Default: 0.8) |
Luminaire (abstract) - Abstract luminaire
| Class name: | Luminaire |
| Description: | Abstract implementation of a luminaire. Supports emission and shadow ray sampling and computes related probabilities. |
| transform toWorld |
Affine luminaire space to world space transformation (Default: identity) |
area - Lambertian area luminaire
| Plugin name: | area |
| Class hierarchy: | AreaLuminaire extends Luminaire |
| Description: | Lambertian area light source - can be attached to an arbitrary shape contained inside the scene. Shadow rays are generally sampled uniformly with respect to surface area, which may lead to high variance (e.g. many of the generated samples are facing away from the point to be shaded). When the shape in question is a sphere, rays are sampled uniformly wrt. solid angle, which significantly reduces the variance. Thus, spheres are recommended whenever there is some flexibility in choosing the luminaire shape. |
| spectrum intensity |
Intensity of the luminaire (Default: 1) |
<!--Sample usage -->
<shape type="obj"><string name="filename" value="meshes/luminaire_mesh.obj"/>
<!-- Local to world coordinate transformation -->
<transform name="toWorld">
<translate x="0" y="-0.5" z="0"/>
</transform>
<!-- Diffuse area luminaire emitting black body radiation at 1500 Kelvin -->
<luminaire type="area">
<!-- Can alternatively be specified with the <rgb> or <spectrum> elements -->
<blackbody name="intensity" temperature="1500"/>
</luminaire>
<!-- Black body - do not reflect any light -->
<bsdf type="lambertian">
<spectrum name="reflectance" value="0"/>
</bsdf>
</shape>
collimated - Collimated beam luminaire
| Plugin name: | collimated |
| Class hierarchy: | CollimatedBeamLuminaire extends Luminaire |
| Description: | Collimated beam with a configurable thickness. Points from (0,0,0)->(0,0,1) by default - use the toWorld parameter to change this. |
| float radius |
World-space beam radius (Default: 0.01) |
| spectrum intensity |
Intensity of the luminaire. Specify only one of intensity and power. (Default: power/surfaceArea) |
| spectrum power |
Power of the luminaire. Specify only one of intensity and power. (Default: 1) |
point - Isotropic point source
| Plugin name: | point |
| Class hierarchy: | PointLuminaire extends Luminaire |
| Description: | Positioned at (0,0,0) by default - use the toWorld parameter to change this. |
| spectrum intensity |
Intensity of the luminaire (Default: 1) |
spot - VRML SpotLight-equivalent luminaire
| Plugin name: | spot |
| Class hierarchy: | SpotLuminaire extends Luminaire |
| Description: | In its local coordinate system, the spot light is positioned at the origin and points into the positive Z direction. Its intensity linearly ramps up between cutoffAngle and beamWidth, after which it remains at the maximum value. |
| spectrum intensity |
Intensity of the luminaire (Default: 1) |
| float cutoffAngle |
Cutoff angle in degrees (Default: 20) |
| float beamWidth |
Beam width in degrees (Default: cutoffAngle * 3/4) |
<!--Sample usage -->
<luminaire type="spot"><!-- Spot light placed at (0, -3, 2) pointing towards (1, 1, 4) -->
<transform name="toWorld">
<lookAt ox="0" oy="-3" oz="2" tx="1" ty="1" tz="4"/>
</transform>
</luminaire>
constant - Constant background luminaire
| Plugin name: | constant |
| Class hierarchy: | ConstantLuminaire extends Luminaire |
| Description: | Simulates a diffuse, infinitely far-away emitter |
| spectrum intensity |
Intensity of the luminaire (Default: 1) |
envmap - Environment map luminaire
| Plugin name: | envmap |
| Class hierarchy: | EnvMapLuminaire extends Luminaire |
| Description: | Basic environment map implementation without importance sampling. Uses the scene's bounding sphere to simulate an infinitely far-away light source. Expects an EXR image in latitude-longitude (equirectangular) format. |
| spectrum intensity |
Intensity of the luminaire (Default: 1) |
<!--Sample usage -->
<luminaire type="envmap"><!-- Load Paul Debevec's Pisa environment map -->
<string name="filename" value="pisa.exr"/>
<!-- Apply a rotation to the environment map -->
<transform name="toWorld">
<rotate x="0" y="1" z="0" angle="45"/>
</transform>
</luminaire>
Camera (abstract) - Camera base class
| Class name: | Camera |
| Description: | A camera turns a sample on the image plane into a 3D ray. For this, it requires two supporting objects: a Sampler and a Film instance. |
| transform toWorld |
Affine camera space to world space transformation (Default: identity) |
PinholeCamera (abstract) - Pinhole camera base class
| Class hierarchy: | PinholeCamera extends Camera |
| Description: | Provides solid angle computation routines useful for importance-based integrators. |
| float fov |
Field of view of the camera (in degrees) (Default: 90) |
| boolean mapSmallerSide |
Specifies which side of the image plane should cover the field of view specified in the fov parameter (Default: true) |
perspective - Perspective camera model
| Plugin name: | perspective |
| Class hierarchy: | PerspectiveCamera extends PinholeCamera |
| Description: | Depth of field can optionally be activated by specifying both focal distance and lens radius (uses a thin lens approximation) |
| float focalDistance |
Distance to the focal plane (Default: 0) |
| float lensRadius |
World-space lens radius (Default: 0) |
| float nearClip |
Near clipping plane distance (Default: 1e-2) |
| float farClip |
Far clipping plane distance (Default: 1e4) |
<!--Sample usage -->
<camera type="perspective"><float name="fov" value="45"/>
<transform name="toWorld">
<translate x="0" y="0" z="3.5"/>
</transform>
<!-- 3x3=9 stratified samples per pixel -->
<sampler type="stratified">
<integer name="resolution" value="3"/>
</sampler>
<!-- Generate a 768x768 EXR image -->
<film type="exrfilm">
<integer name="width" value="768"/>
<integer name="height" value="768"/>
<!-- 4x4 Mitchell-Netravali reconstruction filter -->
<rfilter type="mitchell"/>
</film>
</camera>
orthographic - Orthographic camera model
| Plugin name: | orthographic |
| Class hierarchy: | OrthographicCamera extends Camera |
| Description: | Simple orthographic camera model |
| float nearClip |
Near clipping plane distance (Default: 1e-2) |
| float farClip |
Far clipping plane distance (Default: 1e4) |
| boolean mapSmallerSide |
Specifies which side of the image plane maps to normalized device coordinates in [0,1] (Default: true) |
Film (abstract) - Abstract Film base class
| Class name: | Film |
| Description: | Used to store samples generated by an Integrator. |
| integer width |
Horizontal sensor resolution in pixels (Default: 512) |
| integer height |
Vertical sensor resolution in pixels (Default: 512) |
| integer cropOffsetX |
Horizontal pixel position of the crop window relative to the upper left corner (Default: 0) |
| integer cropOffsetY |
Vertical pixel position of the crop window relative to the upper left corner (Default: 0) |
| integer cropWidth |
Width of the crop window in pixels (Default: width) |
| integer cropWeight |
Height of the crop window in pixels (Default: height) |
| boolean highQualityEdges |
If set to true, regions slightly outside of the film plane will also be sampled, which improves the image quality at the edges especially with large reconstruction filters. (Default: false) |
exrfilm - EXR high dynamic-range film
| Plugin name: | exrfilm |
| Class hierarchy: | EXRFilm extends Film |
| Description: | Simple film implementation, which stores the captured image as an RGBA-based high dynamic-range EXR file. No gamma correction is applied and spectral radiance values are converted to linear RGB using the CIE 1931 XYZ color matching functions and ITU-R Rec. BT.709 |
| boolean alpha |
Should an alpha channel be added to the output image? (Default: true) |
| boolean banner |
Should a program logo be added to the output image? (Default: true) |
pngfilm - PNG low dynamic-range film
| Plugin name: | pngfilm |
| Class hierarchy: | PNGFilm extends Film |
| Description: | Simple film implementation, which stores the captured image as an RGBA-based low dynamic-range PNG file with gamma correction. Spectral radiance values are converted to linear RGB using the CIE 1931 XYZ color matching functions and ITU-R Rec. BT.709 |
| boolean alpha |
Should an alpha channel be added to the output image? (Default: true) |
| integer bpp |
Bits per pixel including alpha (must be 8, 16, 24 or 32) (Default: 24/32, dep. on alpha) |
| float gamma |
Gamma value for the correction. Negative values switch to sRGB (Default: -1) |
mfilm - MATLAB film
| Plugin name: | mfilm |
| Class hierarchy: | MFilm extends Film |
| Description: | Debugging film, which dumps raw luminance values as a 2D array in MATLAB M-file format. When test case mode is active, the film writes a triple (luminance, variance, sample count) for every pixel. |
| boolean spectra |
Should all spectral samples be exported? In this case, each pixel will generate several numbers (matching the configured discretization of the color spectrum). By default, ubiquaque exports the luminances found using the CIE XYZ color matching curves. (Default: false) |
box - Box filter
| Plugin name: | box |
| Class hierarchy: | BoxFilter extends ReconstructionFilter |
| Description: | Box filter -- fastest, but prone to aliasing. |
gaussian - Windowed Gaussian filter
| Plugin name: | gaussian |
| Class hierarchy: | GaussianFilter extends ReconstructionFilter |
| Description: | Windowed Gaussian filter with configurable extent and standard deviation. Often produces pleasing results, but may introduce too much blurring. This is the default filter if none is specified. |
| float halfSize |
Half filter size in pixels (Default: 2) |
| float stddev |
Standard deviation of the Gaussian (Default: .5) |
wsinc - Windowed sinc filter
| Plugin name: | wsinc |
| Class hierarchy: | WindowedSincFilter extends ReconstructionFilter |
| Description: | Windowed version of the ideal low-pass filter (with a Lanczos envelope) -- may produce ringing artifacts near sharp edges. |
| float halfSize |
Half filter size in pixels (Default: 3) |
| float cycles |
Number of cycles, after which the sinc function should be truncated (Default: .5) |
mitchell - Mitchell-Netravali filter
| Plugin name: | mitchell |
| Class hierarchy: | MitchellNetravaliFilter extends ReconstructionFilter |
| Description: | Separable reconstruction filter by Mitchell and Netravali. D. Mitchell, A. Netravali, Reconstruction filters for computer graphics, Proceedings of SIGGRAPH 88, Computer Graphics 22(4), pp. 221-228, 1988. |
| float halfSize |
Half filter size in pixels (Default: 2) |
| float B |
B parameter from the paper (Default: 1/3) |
| float C |
C parameter from the paper (Default: 1/3) |
<!--Sample usage -->
<film type="exrfilm"><integer name="width" value="512"/>
<integer name="height" value="512"/>
<rfilter type="mitchell">
<float name="halfSize" value="2"/>
</rfilter>
</film>
catmullrom - Catmull-Rom filter
| Plugin name: | catmullrom |
| Class hierarchy: | CatmullRomFilter extends ReconstrutionFilter |
| Description: | Mitchell-Netravali filter configured with constants B and C so that it matches the Catmull-Rom spline. Usually does a better job at at preserving sharp features. |
| float halfSize |
Half filter size in pixels (Default: 2) |
independent - Independent sample generator
| Plugin name: | independent |
| Class hierarchy: | IndependentSampler extends Sampler |
| Description: | Independent sample generator - returns independent uniformly distributed random numbers on [0,1) and [0, 1)x[0, 1). |
| integer sampleCount |
Number of generated samples / samples per pixel. (Default: 1) |
stratified - Stratified sample generator
| Plugin name: | stratified |
| Class hierarchy: | StratifiedSampler extends Sampler |
| Description: | Stratified sample generator. Given a resolution R and a depth D, it generates R*R samples, each of which can be queried for up to D 1- or 2-dimensional vectors by an integrator. The returned 1D/2D-vectors of a particular depth have the property of being stratified over all R*R samples. When the maximum depth is exceeded, independent sampling takes over. |
| integer resolution |
Stratification resolution of the sample space. The default results in 2x2=4 samples per pixel (Default: 2) |
| integer depth |
Depth, up to which which stratified samples are guaranteed to be available. (Default: 3) |
ldsampler - Low discrepancy sampler
| Plugin name: | ldsampler |
| Class hierarchy: | LowDiscrepancySampler extends Sampler |
| Description: | Adapted version of the low discrepancy sampler in PBRT. Provides samples up to a specified depth, after which independent sampling takes over. |
| integer sampleCount |
Number of generated samples / samples per pixel (Default: 4) |
| integer depth |
Depth, up to which which low discrepancy samples are guaranteed to be available. (Default: 3) |
halton - Halton sequence sample generator
| Plugin name: | halton |
| Class hierarchy: | HaltonSequence extends Sampler |
| Description: | Deterministic 2D sample generator based on the Halton sequence. Internally uses a table of prime numbers to provide elements of the sequence up to a depth of 1000. Because of the high correlation amongst neighboring pixels, this sampler, by itself, is not meant to be used as a source of random numbers for sample-based integrators such as direct, volpath etc. |
| integer sampleCount |
Number of generated samples / samples per pixel (Default: 1) |
hammersley - Hammersley sequence sample generator
| Plugin name: | hammersley |
| Class hierarchy: | HammersleySequence extends Sampler |
| Description: | Deterministic 2D sample generator based on the Hammersley sequence. Internally uses a table of prime numbers to provide elements of the sequence up to a depth of 1000. Because of the high correlation amongst neighboring pixels, this sampler, by itself, is not meant to be used as a source of random numbers for sample-based integrators such as direct, volpath etc. |
| integer sampleCount |
Number of generated samples / samples per pixel (Default: 1) |