Wednesday, June 25, 2008

VRay rQMC Sampler


VRay rQMC Sampler

General

rQMC (randomized Quasi Monte Carlo) sampling is employed throughout VRay for every "blurry" value - antialiasing, depth of field, indirect illumination, area lights, glossy reflection/refraction, translucency, motion blur etc. rQMC sampling is used to determine what samples should be taken and, ultimately, which rays to trace.

Instead of having separate methods for sampling each of those blurry values, VRay has a single unified framework that determines how many and what exactly samples to be taken for a particular value, depending on the context in which that value is required. This framework is called the rQMC sampler.

Note that although similar in concept, the sampling method employed by VRay is different from strict QMC sampling in that the number sequences that are used have higher discrepancy than pure QMC methods (but still lower one compared to pure random Monte Carlo methods).

The actual number of samples for any blurry value is determined based on three factors:

  • The subdivs value supplied by the user for a particular blurry effect. This is multiplied by the Global subdivs multiplier (see below).
  • The importance of the value (for example, dark glossy reflections can do with fewer samples than bright ones, since the effect of the reflection on the final result is smaller; distant area lights require fewer samples than closer ones etc). Basing the number of samples allocated for a value on importance is called importance sampling.
  • The variance (think "noise") of the samples taken for a particular value - if the samples are not very different from each other, then the value can do with fewer samples; if the samples are very different, then a larger number of them will be necessary to get a good result. This basically works by looking at the samples as they are computed one by one and deciding, after each new sample, if more samples are required. This technique is called early termination or adaptive sampling.

For more information on the relationship and effects of these parameters, please refer to the tutorials section.

Parameters


Amount - controls the extent to which the number of samples depends on the importance of a blurry value. It also controls the minimum number of samples that will be taken. A value of 1.0 means full adaptation; a value of 0.0 means no adaptation.

Min samples - determines the minimum number of samples that must be made before the early termination algorithm is used. Higher values will slow things down but will make the early termination algorithm more reliable.

Noise threshold - controls VRay's judgment of when a blurry value is "good enough" to be used. This directly translates to noise in the result. Smaller values mean less noise, more samples and higher quality. A value of 0.0 means that no adaptation will be performed.

Global subdivs multiplier - this will multiply all subdivs values everywhere during rendering; you can use this to quickly increase/decrease sampling quality everywhere. This affects everything, except for the lightmap, photon map, caustics and aa subdivs. Everything else (dof, moblur, irradiance map, qmc GI, area lights, area shadows, glossy reflections/refractions) is affected by this parameter.

Time independent - when this option is On, the rQMC pattern will be the same from frame to frame in an animation. Since this may be undesirable in some cases, you can turn this option Off to make the rQMC pattern change with time. Note that re-rendering the same frame will produce the same result in both cases.

No comments: