Halton QMC sampler (halton)

halton_a.png halton_b.png
(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.


halton_c.png halton_d.png
(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.

halton_e.png halton_f.png
(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

このWIKIを編集するにはパスワード入力が必要です

認証パスワード