Download presentation

Presentation is loading. Please wait.

Published byMadison Combs Modified over 3 years ago

1

2
Parallel Poisson Disk Sampling Li-Yi Wei Microsoft

3
Parallelism Processors are becoming parallel Intel Larrabee, NVIDIA, AMD/ATI, IBM/Sony Cell, etc. So are programming interfaces BSGP, CUDA, CAL, Ct, DX, OpenGL, etc. As well as applications To take advantage of parallel environment

4
Parallelization Traditional parallelization methods Sequential consistency [Lampert] - sorting, FFT, matrix, etc. Not all algorithms need to be seq-consistent Graphics, computer vision, image/video, statistics Approximate solutions might suffice Opportunities for new parallelization methods

5
First pick: Poisson disk sampling A set of samples that are as random as possible remain a minimum distance r away from each other Why pick this problem? important algorithm seemly non-parallelizable

6
Importance of Poisson disk sampling Best quality for N samples [Cook 1986] Natural object distribution (retina cells, ecology) Blue noise spectrum void in low freq noise in high freq Applications in Rendering, imaging, geometry processing, etc.

7
Optimal spectrum (given # samples) Blue noise: aliasing noise samples spectrum regular gridjittered gridPoisson disk All with 1600 samples

8
Spatial sampling regular gridjittered gridPoisson disk (zone plate) aliasing noisy

9
Methods

10
Dart throwing [Cook 1986] Loop: Random sample from the entire domain Accept sample if not in conflict with existing ones O High quality Ground truth X Slow speed Inherently sequential

11
Speed improvement Computation on the fly (sequential) Scalloped regions [Dunbar & Humphreys 2006] Onion layers [Bridson 2007] Hierarchical dart throwing [White et al. 2007] Pre-computed data set (parallel access) Penrose tiling [Ostromoukhov et al 2004] Wang tiles [Cohen et al. 2003; Lagae & Dutre 2005; Kopf et al. 2006] Polyominoes [Ostromoukhov 2007] X Potential large data set + quality issue

12
Features of our approach Parallel computation Entirely on the fly (no pre-computed data) Good spectrum quality Like dart throwing + Adaptive sampling + Any dimension Parallel GPU run time (in slow motion) Multi-resolution synthesis

13
Our basic idea Samples from a grid 1 sample per grid cell Sample grid cells far apart in parallel Watch out for bias! Tricks to avoid bias

14
Algorithm in gradual steps Uniform sampling, sequential Uniform sampling, parallel Adaptive sampling

15
Sequential sampling Basic data structure Choose grid cell size d so that each cell has at most one sample r = minimum spacing n = dimension Inspired by [Bridson 2007] Texture synthesis

16
Sequential sampling scan-line order + single resolution Bias! Scanline order Grid sampling

17
Sequential sampling random order + single resolution Removes scanline bias But still grid-cell biased scanline random

18
Sequential sampling random order + multi-resolution Removes both biases scanline, grid 1 level3 level5 level scanline random

19
Sequential sampling Summary for bias removal Two sources of biasGrid sampling fixed by multi-resolution Traversal order fixed by random order scanline random 1 level3 level5 level

20
Sequential sampling Summary for each level low to high visit cells in a random order if cell contains no sample draw one sample randomly from the cell domain add the sample if not conflicting existing ones

21
Parallel sampling Key insight for each level low to high visit cells in a random order if cell contains no sample draw one sample randomly from the cell domain add the sample if not conflicting existing ones visit cells in parallel!

22
Parallel sampling Key insight Sample cells sufficiently far away in parallel 2D example: Cells apart cannot conflict with each other split cells phase groups

23
Phase group partition grid partition scanline order random partition grid partition random order O easy to compute X bias! (scanline) O good quality X hard to compute (sequential) O easy to compute O good quality

24
Parallel sampling Summary for each level low to high for each phase group p parallel: for each cell in p if cell contains no sample draw one sample randomly from the cell domain add the sample if not conflicting existing ones

25
Adaptive sampling Slightly more involved than uniform sampling Parallelizable as well

26
Adaptive sampling Multi-resolution as in uniform sampling But uses adaptive tree instead of uniform grid Subdivide only if possible to add more samples

27
Results

28
Spectrum comparison - 2D dart throwing our method power spectrum (10 run) radial mean radial variance

29
Sampling in higher dimensions Algorithm applicable to 2+ dimension 3D samples power spectrum radial mean radial variance

30
Performance # samples per second 2D3D4D5D6D O Our method (NVIDIA 8800 GTX) 4.06 M555 K42.9 K2.43 K179 O Boundary sampling [Dunbar & Humphreys 2006] 0.20 MXXXX O Hierarchical dart throwing [White et al. 2007] 0.21 MXXXX P Wang tiling [Kopf et al. 2006] 1 ~ 3 MXXXX P Polyominoes [Ostromoukhov 2007] >1 MXXXX O: on the fly P: pre-computed dataset

31
Wang tiling [Kopf et al. 2006] Corner tiling [Lagae & Dutre 2006] P-pentominoes [Ostromoukhov 2007] Our method

32
Limitations Only empirical, but no theoretical proof yet Slow in high dimensions, adaptive sampling Hard to control exact # of samples No fine-grain sample ranking e.g. progressive zoom-in [Kopf et al. 2006] Euclidean space only (no manifold surface)

33
Future work for parallel algorithm Sequential consistency [Lampert] too strict for some applications A looser sense of consistency? parallel texture synthesis [Lefebvre & Hoppe 2005] random number generation [Tzeng & Wei 2008]

34
Acknowledgements Ares Lagae Johannes Kopf Victor Ostromoukhov Eric Andres Zhouchen Lin Ting Zhang Kun Zhou Xin Tong Jian Sun Stanley Tzeng Eric Stollnitz Brandon Lloyd Dwight Daniels Jianwei Han Baining Guo Harry Shum Reviewers

35

36
Jittered grid One sample per grid cell Uniform sample O Very fast X Quality not so good

37
Jittered grid vs. Poisson disk (Recap) samples spectrum regular gridjittered gridPoisson disk

38
Combining strengths Quality of dart throwing Speed of jittered grid

39
Relaxation vs Dart throwing G-hexominoes [Ostromoukhov 2007] spatial uniform Our method spectrum radial meanradial variancesample layout

40
Future work Parallelizing important algorithms Sequential consistency [Lampert] Dwarfs [Landscape of Parallel Computing 2006] - linear algebra, spectral, N-body, grids, Monte-Carlo New dwarfs that do not need to be seq-con?

41

42
How to start a bar flight

43
How to stop the bar flight Parallel GPU run time (slow motion) 4M Poisson disk samples / sec in parallel!

44

45
Poisson Disk Sampling Popular pattern [Cook 1986] Prior methods sequential e.g. dart throwing

46
Dart Throwing in Parallel Fast – 4 million samples/sec on GPU Entirely on the fly, no pre-compute Good quality – like (sequential) dart throwing Texture synthesis …

47
Parallel sampling Summary for each level low to high for each phase group p parallel: for each cell in p if cell contains no sample draw one sample randomly from the cell domain add the sample if not conflicting existing ones

48
Parallel sampling Summary for each level low to high for each phase group p parallel: for each cell in p if cell contains no sample draw one sample randomly from the cell domain add the sample if not conflicting existing ones

49

50
Limitations

51

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google