490 likes | 611 Views
A Spatial Data Structure for Fast Poisson-Disk Sample Generation. SIGGRAPH 2006 Daniel Dunbar, Greg Humphreys. University of Virginia. Abstract. Sampling distributions with blue noise characteristics Widely used in computer graphics Poisson-disk distributions
E N D
A Spatial Data Structure for Fast Poisson-Disk Sample Generation SIGGRAPH 2006 Daniel Dunbar, Greg Humphreys. University of Virginia
Abstract • Sampling distributions with blue noise characteristics • Widely used in computer graphics • Poisson-disk distributions • Excellent blue noise characteristics • But computationally expensive • We present O(N logN) time dart-throwing method • And Novel and efficient variation of O(N) time and space method
Introduction and Background • Almost all problems in computer graphics involve sampling • Sampling distribution can greatly affect the quality of the final result • Blue-noise patterns perform especially well in this setting • High quality sampling patterns are especially important • Sampling the image plane in a raytracer • For capture the continuous function • Errors will be apparent to a viewer
Poisson-disk distributions • It have excellent blue noise spectra • It mimic the distribution of photoreceptors • In a primate eye [Yellot 1983] • But difficult to generate directly • Our O(N logN) algorithm • Generating maximal Poisson-disk distributions • Variation of this algorithm which runs in linear time and space • Very quick : 200,000 points per second
Previous Work* • Sampling theory is a well researched area • Deeper roots in the signal processing and information theory literature
Previous Work** • [Dippé and Wold 1985] • Stochastic sampling in first • [Cook 1986] • Analyzed the spectral properties • Extols the virtues of Poisson-disk distributions • Since then, many algorithms have been proposed • [Ulichney 1988; Shirley 1991; Hiller et al. 2001; Kollig and Keller 2002; Kollig and Keller 2003]
Previous Work*** • [Mitchell 1991] • O(N 2) “best-candidate” algorithm • Mimic dart-throwing • Termination guaranteed • Not guarantee the Poisson-disk property • [McCool and Fiume 1992] • Generated high-quality tile sets • Introduced the use of Lloyd’s relaxation • The tiling process gives easily recognizable one • Several schemes have been proposed
Previous Work**** • [Cohen et al. 2003] • Using Wang tiles to solve this problem • Populated a set of Wang tiles with small point distributions • [Lagae and Dutré 2005] • For boundary tiles Poisson-disk tiles is presented • [Kopf et al. 2006] • Satisfying an arbitrary density function
Previous Work***** • [Ostromoukhov et al. 2004] • Generates point sets with local blue noise characteristics • Clever modification of Penrose tiles • Exploiting the tilings’ aperiodic nature • When generate many points, the resulting point sets have larger angular anisotropy
Previous Work****** • [Jones 2006] • O(N logN) time algorithm for generating 2D Poisson-disk • Like our technique • Builds a point set incrementally • Store neighboring regions in a balanced tree • Insert points into these regions one by one • But implementation more complicated than our algorithm • Furthermore, we show a linear time variation of our algorithm
Dart-Throwing in O(N logN) • Dart-throwing method • Computing Poisson-disk distributions • Generating a series of random candidate points • Keeping only the first point • Minimum distance 2r • Invalidates a disk of radius 2r centered around that point
Algorithm strong point • Simple to implement • Extends naturally to any domain
Algorithm side effect • The algorithm may not terminate • The algorithm is stopped after fixed number failed • Point set is usually not maximal • Some regions of the domain may be undersampled • This problem is usually ignored • The algorithm is too slow to use directly • A large number of sample points is required • Precomputing or tiling them have been proposed
Available subdomain • D(x, r) • Disk of radius r around a point x • x is point number index • Available subdomain • Domain X and existing point set P
Efficient dart-throwing key point“Available neighborhood” • Do not need to sample the entire available subdomain • Just the annulus between radii 2r and 4r • In any maximal distribution • Every point in this annulus must be unavailable • At least one point that lies inside the annulus • Such annuli must contain at least one point • This region is called available neighborhood • By carefully choosing the representation for this region, implemented in O(N logN) time
Representing the Available Neighborhood • The problem can be divided into two parts: • Developing a spatial structure for the available region of the annulus • Partitioning the available neighborhood • For efficient update of new point insertion • Possible to quick generation random point inside the region
Scalloped region • New data structure for these problem • Efficient representing of boolean operation 2D disk • Scalloped sectors • Disjoint subset of scalloped region • Between angles α1 and α2 • Bounded by near and far circular arcs • Circular arcs are nonintersecting
Circular arc representation • Center C, radius r, sign k ∈{−1, 1} • Distance to circular arc • Angle α • (d,γ) are the polar coordinates of C
Scalloped sector area • g(α): inner bounding arc • h(α): outer bounding arc • Up to an angle α • Full sector is A(α2)
Choosing sector and point • Probability of a random point • In a scalloped region falling within a particular sector • Sector area / region area • Generation random point within the region • Using the sectors’ areas as a probability distribution, randomly choose • Transform uniformly distributed random point to polar coordinate : • (ξ1,ξ2) in [0,1]2 (d,θ)
A−1 evaluation • Do not have a closed equation of A−1 • Function A’s property • Integral of a function • Non-negative • Zero only at the angular endpoints • Monotonically increasing • Therefore invertible • Binary search is sufficient to evaluate A−1 efficiently
Boolean union or difference operation • Subdivide into a small number of new scalloped sectors • A scalloped region maintains a list of its constituent scalloped sectors • Replace with individual sectors’ result
Boolean operation for difference • Maximum number of new angles are eight • 4: intersection with bounding arc • 2: tangent line • 2: angular endpoints
Disjoint set • Efficient sampling requires that all of neighborhoods be disjoint • Ordering relation defined set S can derive new set S ’ • S ’ is disjoint set in which intersection are subtracted
Disjoint set generation • Available neighborhood of a point p∈P • Total available neighborhood
Algorithm Details and Complexity Analysis • Our algorithm A1 • Efficient dart-throwing • Begins with randomly chosen single point • Associative map • Use during sample generation • Candidate points to their associated neighborhoods
Processing • A candidate point is randomly chosen • Using neighborhood areas as a probability distribution • A random point is added to the point set • The available neighborhood of new point • Annulus from radii 2r to 4r with disjoint • Search for neighbors are required only in radius 8r • This process continues until no candidate points remain
Performance • Finite number of scalloped sectors • Neighbors within a fixed radius • Using uniform grid for neighbor search and update available neighborhoods: O(1) time • Picking an individual scalloped sector and generating a point : O(1) time • Choosing an available neighborhood in balanced tree : O(logN) time • Total complexity : O(N logN) • N is number of generated points • The space complexity is O(N)
Algorithm A2 • Drop the requirement that area-weighted probability function • New algorithm A2 runs in linear time • But in practice other factors are dominate the running time • Cost of maintaining the sectors • Intersecting them with disks • Updating data structures
Boundary Sampling • Poisson-disk point sets generation in linear time • Avoid the complexity of sector operations • Available neighborhoods’ radius modification does not change the structure or performance • We can take radius r ’ with 2r <r’≤4r
Available boundary • Take r ’ with 2r • Available neighborhood collapses to circular arcs • We no longer need to represent scalloped regions • Available boundary is represented as a set of per-point angular ranges
Speed up of algorithm • Select the new candidate point with random instead of length of boundary • No longer necessary to explicitly store the neighborhoods • After choose a candidate, compute the intersecting ranges and terminate it • If there is no empty boundary choose next candidate • Only single angular range subtraction needs
Algorithm A3, “boundary sampling” • Simple to implement • Runs in O(N) time • Our implementation • Approximately 200 lines of C++ code • can generate over 200,000 points per second on a 3 GHz Pentium 4 • Figure 1 shows an example
Results • We will say about results from the boundary sampling algorithm • Compare them to other methods for computing Poisson-disk distributions
VS best tiling schemes • Best tiling schemes • Generate point sets very efficiently • Although energy and anisotropy spikes associated with any tiling • Our algorithm • Comparable to that ones in runtime performance • Results is artifact-free • Require noprecomputation
Analyzing two-dimensional noise distributions • Style of McCool and Fiume • Compute the radial power and anisotropy using the periodogram of a point set • The quality of a distribution depends on distance to low energy annulus • Radial power spectrum is an accurate representation of the pattern along all orientations
Blue noise properties preserving • Neither linearized sampling nor boundary sampling significantly change the blue noise properties of the resulting distributions
Periodograms • Average of 100 point sets • Radius of 0.02 • About 2000 points each • (d) : higher point density • Greater magnitude difference • Between the low energy annulus • Between the peak transition energy
VS Ostromoukhov et al. • Our method is significantly more uniform than theirs • Their solution : precomputing • Improve only small local regions • When the number of points grows it is useless • Lookup tables would become quite large
Timing results • A2 is more efficient than A1 for large numbers of points • Sector subtraction overhead is very big when watch A3 • For small numbers of points, A2 is bad A1, making it less efficient than its O(N logN)
Conclusion and Future Work • Efficient dart-throwing algorithm • Based on the manipulation of disjoint unions of scalloped sectors • O(N logN) time • Motivates O(N) time & space algorithm • Next is three big future research
Sampling on Arbitrary Manifolds • Extended to sample over any manifold with an associated distance metric • Efficient method needs • Finding the local neighbors • Determining the intersection • Surface of a sphere • Distance function is of arcs length • Boundary of point is plane intersection circle • Sampling can still be done in linear time by dividing the domain into a grid
Generating Infinite Point Sets • The number of required points prediction is difficult • Generating points near an arbitrary position is good • This permit Poisson-disk texture basis functions • Lagae and Dutr´e’s method [2005] • Existing methods use precomputed tiles to solve this problem
Solution with scalloped sectors • By judicious seeding of a pseudorandom number generator • Generation points in arbitrary subsets is possible • Generated point beside neighboring point sets does not violate property • This can make infinite point sets
Importance Sampling • Giving an importance function • It is possible to derive a non-Euclidean distance metric • Our approach would produce locally proportional point set • These point sets should have local blue noise properties • Like Ostromoukhov et al. [2004] or Kopf et al [2006]
This metric application • Does not have a closed analytic form • Therefore the boundary cannot be directly determined • Nonetheless, possible to solve for a piecewise linear approximation • Distance metric in the vicinity • Use this represent the local boundary • We hope extend ours to support efficient importance sampling • By applying this technique and 5.1 method
Intended plan • By applying these results, vary radii of objects • Expect generating complex terrain and environments