Zoltan Szego †*, Yoshihiro Kanamori ‡, Tomoyuki Nishita † † The University of Tokyo, *Google Japan Inc., ‡ University of Tsukuba
Background Related Work Our Method Results Conclusions and Future Work
Background Related Work Our Method Results Conclusions and Future Work
Sampling is essential in CG rendering, image processing, object placement etc. HalftoningLight sampling on HDR environment maps
Desired sampling patterns Equally distant samples … e.g. Poisson disk Low energy in low frequency of the Fourier spectrum … Blue noise cf. Totally randomEqually distant → Blue noise → White noise
Blue noise property Observed in natural objects Considered optimal for human eyes Layout of human eye photoreceptors [Yellott, 1983]
Quality measures for blue noise spectra Radial average power spectrum ▪ The larger the central ring, the better Anisotropy ▪ The lower and flatter, the better Spectrum Radial average power spectrum Anisotropy ring
Efficient, high-quality blue noise sampling Adaptive sampling should be supported UniformAdaptive
Support for sampling in various domains 2D 3D (volumetric sampling) On curved surfaces (spheres, polygonal meshes) 2D3DOn curved surfaces
Background Related Work Our Method Results Conclusions and Future Work
Two major approaches Dart throwing ▪ Random sampling of equidistant samples Tiling ▪ Tiling of precomputed samples
Dart throwing [Cook, 1986] Used for distributed ray tracing High computational cost Quality improvement: Lloyd’s relaxation … more costly Parallel Poisson disk [Wei, 2008] GPU-based acceleration # of samples cannot be determined Only supports 2D and 3D Our method # of samples can be specified Supports 2D, 3D, and curved surfaces
Wang tiles [Kopf et al., 2006] Requires precomputation Low quality Polyominoes [Ostromoukhov, 2007] Requires complicated precomputation Our method High quality No precomputation
Background Related Work Our Method Results Conclusions and Future Work
Input: seed points Given by the user Output: blue noise samples Features: Deterministic (reproducible with the same seeds) No precomputation Supports various sampling domains
Sequentially sample at the most sparse region The largest empty circle problem [Okabe et al., 2000] Can be solved using Delaunay triangulation ▪ Correspond to finding the largest circumcircle in Delaunay triangles 2D example
Loop: 1. Find the largest empty circle 2. Add a sample at the center 2D example
Loop: 1. Find the largest empty circle 2. Add a sample at the center 3. Update Delaunay triangles 2D example
Acceleration for search: Use of heap To find the largest circumcircle in O(1) Costs for insert / delete: O(log N) Support for adaptive sampling Scale the radii stored in the heap using density functions The greater the density, the higher the priority Heap of circumcircles’ radii Density function
Regular patterns peaks in the spectrum
Reason of the artifacts Iterative subdivisions of equilateral triangles Our solution: 1. Detect an equilateral triangle 2. Displace the new sample from the center of its circumcircle (see our paper for details)
Artifact-free 100,000 samples
Sparse samples at boundaries Reason Very thin triangles around boundaries Our solution: Use of periodic boundaries Tiled samples (tiled just for illustration)
Periodic boundaries Toroidal (torus-like) domain
Pros: Sparse regions disappear Edge lengths of triangles become balanced ▪ Overall centers of circumcircles lie within their triangles ▪ Allows us to specify the position of the new sample in O(1) Cons: A little additional cost for modifying coordinates
Exploit multi-core CPUs Uniform subdivision of 2D domain Further subdivision Costs: O(N log N) 4 M log M < N log N (if M = N/4) 4x4 subdivision is the fastest for a 4-core CPU ▪ 1.69 times faster for 100K samples
3D domain: [0, 1) 3 2D → 3D Triangles → Tetrahedra (Delaunay Tetrahedralization) Circumcircles → Circumspheres Similar to 2D algorithm Delaunay tetrahedralization
Sampling domain: Spherical surfaces Polygonal mesh surfaces Initial seeds: Vertices of simplified mesh Similar to 2D New samples are projected onto the surface Samples on a sphere Simplified Given mesh Initial seeds
Background Related Work Our Method Results Conclusions and Future Work
Uniform sampling # of samples : 20K Time : 92 ms Experimental environment: Intel Core 2 Quad Q GHz, 2GB RAM
Our method: 378 msecWang tiles [2006]: 1.35 msec Radial average Anisotropy
Radial average Anisotropy Our method: 378 msecDart throwing [2007]: 420 msec ours
20K samples in 3D
Spectra for 10K samples in 3D Low energy spheres in the center → blue noise property
Sampling on a sphere Initial mesh: an equilateral octahedron Density function DenseSparse
Sampling on HDR environment maps Blighter region → denser samples
Sampling on HDR environment maps Blighter region → denser samples
Background Related Work Our Method Results Conclusions and Future Work
High-quality blue noise sampling using Delaunay triangulation Find centers of largest circumcircles of Delaunay triangles Adaptive sampling by scaling circumcircles’ radii Support for sampling on various domains: 2D, 3D, and curved surfaces
GPU acceleration using CUDA Fast Lloyd’s relaxation using the connectivity of Delaunay triangles
Thank you
Adaptive sampling for halftoning Density function = grayscale image Halftone image with 100K samples
A polygonal mesh (two tori)
A simplified mesh
Delaunay triangles
Generated samples (vertices)