Antithetic sampling for modulated light¶
These tutorials look more closely at antithetic sampling for the modulated-light render passes. With a high-frequency modulation, the light that reaches a pixel along many paths largely cancels out, and independent samples of it, with random signs, cancel only slowly. Antithetic sampling pairs every sampled path with a nearby path whose modulation has the opposite sign, so each pair cancels the way the true signal does.
Each tutorial compares antithetic and naive sampling at equal rendering time, on the indirect light of the Cornell box (the scene of the ToF rendering tutorials), with references rendered by naive sampling with 262,144 samples per pixel. The error is the relative mean squared error, \(\mathrm{relMSE} = \overline{(I - I_\mathrm{ref})^2} / \overline{I_\mathrm{ref}^2}\). The numbers were measured on an NVIDIA GeForce RTX 3090 with Vulkan; frame counts and errors depend on the GPU. The scripts need matplotlib.
Find the antithetic vertex by Newton’s method on barycentric coordinates, and see how the gain changes with the wavelength.
Mirror the projector coordinate within the period of a cos pattern, at three pattern wavelengths.
Aperiodic codes: XOR codes and random balanced blocks, and arbitrary codes with optimal-transport and scale-based maps.