# Halton QMC sampler (halton)

(a) Projection of the first 1024 points of the Faurescrambled Halton seq. onto the first two dimensions. | (b) Projection of the first 1024 points of the Faurescrambled Halton seq. onto the 32th and 33th dim. |

This plugin implements a Quasi-Monte Carlo (QMC) sample generator based on the Halton sequence.

QMC number sequences are designed to reduce sample clumping across integration dimensions,

which can lead to a higher order of convergence in renderings. Because of the deterministic

character of the samples, errors willmanifest as grid ormoiré patterns rather than randomnoise, but

these diminish as the number of samples is increased.

The Halton sequence in particular provides a very high quality point set that unfortunately becomes

increasingly correlated in higher dimensions. To ameliorate this problem, the Halton points

are usually combined with a scrambling permutation, and this is also the default. Because everything

that happens inside this sampler is completely deterministic and independent of operating system

scheduling behavior, subsequent runs ofMitsuba will always compute the same image, and this even

holds when rendering with multiple threads and/or machines.

(a) A projection of the first 1024 points of the originalHalton sequence onto the first two dimensions, obtained by setting scramble=0 | (b) A projection of the first 1024 points of the original Halton sequence onto the 32th and 33th dimensions. Note the strong correlation – a scrambled sequence is usually preferred to avoid this problem. |

(a) A projection of the first 1024 points of a randomly scrambled Halton sequence onto the first two dimensions (scramble=1). | (b) A projection of the first 1024 points of a randomly scrambled Halton sequence onto the 32th and 33th dimensions. |

By default, the implementation provides a scrambled variant of the Halton sequence based on

permutations by Faure [10] that has better equidistribution properties in high dimensions, but this

can be changed using the scramble parameter. Internally, the plugin uses a table of prime numbers

to provide elements of the Halton sequence up to a dimension of 1024. Because of this upper bound,

the maximum path depth of the integrator must be limited (e.g. to 100), or rendering might fail with

the following error message: Lookup dimension exceeds the prime number table size! You may have to

reduce the ’maxDepth’ parameter of your integrator.

To support bucket-based renderings, theHalton sequence is internally enumerated using a scheme

proposed by Grünschloß et al. [12]; the implementation in Mitsuba is based on a Python script by

the authors of this paper.

Remarks:

• This sampler is incompatible withMetropolis Light Transport (all variants). It interoperates poorly

with Bidirectional Path Tracing and Energy Redistribution Path Tracing, hence these should not be

used together.The sobol QMC sequence is an alternative for the latter two cases, and ldsampler

works as well.

Parameter Type Description

sampleCount integer Number of samples per pixel (Default: 4)

scramble integer This plugin can operate in one of three scrambling modes:

(i) When set to 0, the implementation will provide the

standard Halton sequence.

(ii) When set to -1, the implementation will compute a

scrambled variant of the Halton sequence based on

permutations by Faure [10], which has better equidistribution

properties in high dimensions.

(iii) When set to a value greater than one, a randompermutation

is chosen based on this number. This is useful

to break up temporally coherent noise when rendering

the frames of an animation — in this case, simply

set the parameter to the current frame index.

Default: -1, i.e. use the Faure permutations. Note that permutations

rely on a precomputed table that consumes approximately

7 MiB of additional memory at run time.

- 最終更新:2014-07-25 11:04:14