Parallel Poisson Disk Sampling

Slides:



Advertisements
Similar presentations
Inverse Texture Synthesis Li-Yi Wei 1 Jianwei Han 2 Kun Zhou 1,2 Hujun Bao 2 Baining Guo 1 Harry Shum 1 1 Microsoft 2 Zhejiang University.
Advertisements

Inverse Texture Synthesis
Semantics Consistent Parallelism Li-Yi Wei Microsoft Research.
Filling Algorithms Pixelwise MRFsChaos Mosaics Patch segments are pasted, overlapping, across the image. Then either: Ambiguities are removed by smoothing.
SHREYAS PARNERKAR. Motivation Texture analysis is important in many applications of computer image analysis for classification or segmentation of images.
Poisson Sphere Distributions Ares LagaePhilip Dutré Department of Computer Science Katholieke Universiteit Leuven 11th International Fall Workshop VISION,
Line Segment Sampling with Blue-Noise Properties Xin Sun 1 Kun Zhou 2 Jie Guo 3 Guofu Xie 4,5 Jingui Pan 3 Wencheng Wang 4 Baining Guo 1 1 Microsoft Research.
Sampling and Reconstruction
Technische Universität München Fakultät für Informatik Computer Graphics SS 2014 Sampling Rüdiger Westermann Lehrstuhl für Computer Graphik und Visualisierung.
Image classification Given the bag-of-features representations of images from different classes, how do we learn a model for distinguishing them?
Texture Synthesis on [Arbitrary Manifold] Surfaces Presented by: Sam Z. Glassenberg* * Several slides borrowed from Wei/Levoy presentation.
Contrast-Aware Halftoning Hua Li and David Mould April 22,
Ray Tracing CMSC 635. Basic idea How many intersections?  Pixels  ~10 3 to ~10 7  Rays per Pixel  1 to ~10  Primitives  ~10 to ~10 7  Every ray.
CS 551 / CS 645 Antialiasing. What is a pixel? A pixel is not… –A box –A disk –A teeny tiny little light A pixel is a point –It has no dimension –It occupies.
Lvdi Wang Tsinghua University Microsoft Research Asia Lvdi Wang Tsinghua University Microsoft Research Asia Kun Zhou Zhejiang University Kun Zhou Zhejiang.
Lecture 8 – Collective Pattern Collectives Pattern Parallel Computing CIS 410/510 Department of Computer and Information Science.
Discriminative and generative methods for bags of features
Texture Synthesis Tiantian Liu. Definition Texture – Texture refers to the properties held and sensations caused by the external surface of objects received.
Sampling Attila Gyulassy Image Synthesis. Overview Problem Statement Random Number Generators Quasi-Random Number Generation Uniform sampling of Disks,
Iso-charts: Stretch-driven Mesh Parameterization using Spectral Analysis Kun Zhou, John Snyder*, Baining Guo, Heung-Yeung Shum Microsoft Research Asia.
Multi-Class Blue Noise Sampling Li-Yi Wei 魏立一 Microsoft Research.
Parallel White Noise Generation on a GPU via Cryptographic Hash
Dimensionality Reduction
High-Quality Video View Interpolation
Optimal Bandwidth Selection for MLS Surfaces
Matrix Row-Column Sampling for the Many-Light Problem Miloš Hašan (Cornell University) Fabio Pellacini (Dartmouth College) Kavita Bala (Cornell University)
Computer vision: models, learning and inference Chapter 10 Graphical Models.
CIS 681 Distributed Ray Tracing. CIS 681 Anti-Aliasing Graphics as signal processing –Scene description: continuous signal –Sample –digital representation.
Dimensionality Reduction. Multimedia DBs Many multimedia applications require efficient indexing in high-dimensions (time-series, images and videos, etc)
FLANN Fast Library for Approximate Nearest Neighbors
Zoltan Szego †*, Yoshihiro Kanamori ‡, Tomoyuki Nishita † † The University of Tokyo, *Google Japan Inc., ‡ University of Tsukuba.
Space-Filling DOEs Design of experiments (DOE) for noisy data tend to place points on the boundary of the domain. When the error in the surrogate is due.
Antialiasing CptS 548 Advanced Computer Graphics John C. Hart.
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
1 Single Scattering in Refractive Media with Triangle Mesh Boundaries Bruce Walter Shuang Zhao Nicolas Holzschuch Kavita Bala Cornell Univ. Grenoble Univ.
Stochastic Algorithms Some of the fastest known algorithms for certain tasks rely on chance Stochastic/Randomized Algorithms Two common variations – Monte.
On a Few Ray Tracing like Algorithms and Structures. -Ravi Prakash Kammaje -Swansea University.
©Wen-mei W. Hwu and David Kirk/NVIDIA Urbana, Illinois, August 2-5, 2010 VSCSE Summer School Proven Algorithmic Techniques for Many-core Processors Lecture.
Accelerating Statistical Static Timing Analysis Using Graphics Processing Units Kanupriya Gulati and Sunil P. Khatri Department of ECE, Texas A&M University,
Introduction to Parallel Rendering Jian Huang, CS 594, Spring 2002.
Mixture Models, Monte Carlo, Bayesian Updating and Dynamic Models Mike West Computing Science and Statistics, Vol. 24, pp , 1993.
A Spatial Data Structure for Fast Poisson-Disk Sample Generation SIGGRAPH 2006 Daniel Dunbar, Greg Humphreys. University of Virginia.
Real-time Graphics for VR Chapter 23. What is it about? In this part of the course we will look at how to render images given the constrains of VR: –we.
CURE: An Efficient Clustering Algorithm for Large Databases Sudipto Guha, Rajeev Rastogi, Kyuseok Shim Stanford University Bell Laboratories Bell Laboratories.
Using Interactive Ray Tracing for Interactive Global Illumination Computer Graphics Lab Saarland University, Germany
Click to edit Master subtitle style 2/23/10 Time and Space Optimization of Document Content Classifiers Dawei Yin, Henry S. Baird, and Chang An Computer.
Duy & Piotr. How to reconstruct a high quality image with the least amount of samples per pixel the least amount of resources And preserving the image.
A Theory of Monte Carlo Visibility Sampling
Bounding Volume Hierarchy. The space within the scene is divided into a grid. When a ray travels through a scene, it only passes a few boxes within the.
Image Processing A Study in Pixel Averaging Building a Resolution Pyramid With Parallel Computing Denise Runnels and Farnaz Zand.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
Active Learning and the Importance of Feedback in Sampling Rui Castro Rebecca Willett and Robert Nowak.
Efficient Partitioning of Fragment Shaders for Multiple-Output Hardware Tim Foley Mike Houston Pat Hanrahan Computer Graphics Lab Stanford University.
Multi-Class Blue Noise Sampling Li-Yi Wei Microsoft Research.
01/26/05© 2005 University of Wisconsin Last Time Raytracing and PBRT Structure Radiometric quantities.
David Luebke 3/17/2016 Advanced Computer Graphics Antialiasing David Luebke
Martin Kruliš by Martin Kruliš (v1.0)1.
Fast Maximal Poisson-Disk Sampling by Randomized Tiling
Hybrid Ray Tracing and Path Tracing of Bezier Surfaces using a mixed hierarchy Rohit Nigam, P. J. Narayanan CVIT, IIIT Hyderabad, Hyderabad, India.
Distributed Ray Tracing
Real-Time Ray Tracing Stefan Popov.
Renjie Chen Craig Gotsman Technion – Israel Institute of Technology
Outline S. C. Zhu, X. Liu, and Y. Wu, “Exploring Texture Ensembles by Efficient Markov Chain Monte Carlo”, IEEE Transactions On Pattern Analysis And Machine.
Distributed Ray Tracing
Monte Carlo I Previous lecture Analytical illumination formula
Outline Texture modeling - continued Julesz ensemble.
Distributed Ray Tracing
Computational issues Issues Solutions Large time scale
GEARS: A General and Efficient Algorithm for Rendering Shadows
Robust Feature Matching and Fast GMS Solution
Presentation transcript:

Parallel Poisson Disk Sampling Li-Yi Wei Microsoft

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

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

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

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.

Optimal spectrum (given # samples) Blue noise: aliasing → noise regular grid jittered grid Poisson disk All with 1600 samples samples spectrum

Spatial sampling aliasing noisy regular grid jittered grid (zone plate) aliasing noisy regular grid jittered grid Poisson disk

Methods

Dart throwing [Cook 1986] Loop: O High quality X Slow speed 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

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

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

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

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

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

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

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

Sequential sampling random order + multi-resolution Removes both biases scanline, grid 1 level 3 level 5 level scanline random

Sequential sampling Summary for bias removal Two sources of bias Grid sampling fixed by multi-resolution Traversal order fixed by random order scanline random 1 level 3 level 5 level

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

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!

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

Phase group partition grid partition scanline order random partition random order 6 7 8 9 3 4 8 1 7 2 6 5 1 3 2 3 4 5 8 4 6 1 2 5 7 O easy to compute X bias! (scanline) O good quality X hard to compute (sequential) O easy to compute O good quality

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

Adaptive sampling Slightly more involved than uniform sampling Parallelizable as well

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

Results

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

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

Performance O: on the fly P: pre-computed dataset # samples per second O Our method (NVIDIA 8800 GTX) 4.06 M 555 K 42.9 K 2.43 K 179 O Boundary sampling [Dunbar & Humphreys 2006] 0.20 M X O Hierarchical dart throwing [White et al. 2007] 0.21 M P Wang tiling [Kopf et al. 2006] 1 ~ 3 M P Polyominoes [Ostromoukhov 2007] >1 M

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

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)

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]

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

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

Jittered grid vs. Poisson disk (Recap) samples spectrum regular grid jittered grid Poisson disk

Combining strengths Quality of dart throwing Speed of jittered grid

Relaxation vs Dart throwing G-hexominoes [Ostromoukhov 2007] ☺ spatial uniform Our method ☺ spectrum radial mean radial variance sample layout

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?

How to start a bar flight I saw people fighting in a bar for the dart board. I asked them why. They told me when they play together, their darts landed too close to each other.

How to stop the bar flight Parallel GPU run time (slow motion) 4M Poisson disk samples / sec in parallel! I told them if they play by my rule, I can ensure their darts to land at least a certain distance away from each other. The run also runs on a GPU, producing more than 4 million darts per second in parallel.

Poisson Disk Sampling Popular pattern Prior methods sequential [Cook 1986] Prior methods sequential e.g. dart throwing A Poisson disk set contains samples that are randomly distributed, but remain a minimum distance away from each other. It is a popular sampling pattern, used in many graphics applications. However, it is also hard to generate. Existing methods are sequential, such as dart throwing, where samples are drawn randomly, but rejected if too close to existing samples, and accepted otherwise.

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 … To address this, I have figure out a method to throw darts in parallel. It is faster than existing methods, and produce more than 4 million samples per second. The quality is also good, just like traditional dart throwing. The algorithm is actually derived from texture synthesis (old dog with new tricks).

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

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

Limitations