Boolean Operations on Surfel-Bounded Solids Using Programmable Graphics Hardware Bart AdamsPhilip Dutré Katholieke Universiteit Leuven.

Slides:



Advertisements
Similar presentations
Point-based Graphics for Estimated Surfaces
Advertisements

Photon Mapping on Programmable Graphics Hardware Timothy J. Purcell Mike Cammarano Pat Hanrahan Stanford University Craig Donner Henrik Wann Jensen University.
VIS Group, University of Stuttgart Tutorial T4: Programmable Graphics Hardware for Interactive Visualization Pre-Integrated Splatting (Stefan Roettger)
Object Space EWA Surface Splatting: A Hardware Accelerated Approach to High Quality Point Rendering Liu Ren Hanspeter Pfister Matthias Zwicker CMU.
Direct Volume Rendering. What is volume rendering? Accumulate information along 1 dimension line through volume.
Topology-Caching for Dynamic Particle Volume Raycasting Jens Orthmann, Maik Keller and Andreas Kolb, University of Siegen.
CECS461 Computer Graphics II University of Missouri at Columbia Hidden Surface Removal.
Interactive Boolean Operations on Surfel-Bounded Solids Bart AdamsPhilip Dutré Katholieke Universiteit Leuven.
Rapid Visualization of Large Point-Based Surfaces Tamy Boubekeur Florent Duguet Christophe Schlick Presented by Xavier Granier.
I3D Fast Non-Linear Projections using Graphics Hardware Jean-Dominique Gascuel, Nicolas Holzschuch, Gabriel Fournier, Bernard Péroche I3D 2008.
Hardware-Accelerated Adaptive EWA Volume Splatting Wei Chen ZJU Liu Ren CMU Matthias Zwicker MIT Hanspeter Pfister MERL.
Implicit Surfaces Tom Ouyang January 29, Outline Properties of Implicit Surfaces Polygonization Ways of generating implicit surfaces Applications.
Status – Week 231 Victor Moya. Summary Primitive Assembly Primitive Assembly Clipping triangle rejection. Clipping triangle rejection. Rasterization.
Adaptively Sampled Distance Fields (ADFs) A General Representation of Shape for Computer Graphics S. Frisken, R. Perry, A. Rockwood, T. Jones Richard Keiser.
Implicit Representations of Surfaces and Polygonalization Algorithms Dr. Scott Schaefer.
The Radiosity Method Donald Fong February 10, 2004.
Mapping Computational Concepts to GPU’s Jesper Mosegaard Based primarily on SIGGRAPH 2004 GPGPU COURSE and Visualization 2004 Course.
1 A Hierarchical Shadow Volume Algorithm Timo Aila 1,2 Tomas Akenine-Möller 3 1 Helsinki University of Technology 2 Hybrid Graphics 3 Lund University.
CSE 681 Ray Tracing Implicit Surfaces. CSE 681 Overview Similar to CSG –Combine primitive objects to form complex object Primitives are “density fields”
Hidden Surface Removal
Deep Screen Space Oliver Nalbach, Tobias Ritschel, Hans-Peter Seidel.
Erdem Alpay Ala Nawaiseh. Why Shadows? Real world has shadows More control of the game’s feel  dramatic effects  spooky effects Without shadows the.
Filtering Approaches for Real-Time Anti-Aliasing /
Voxelized Shadow Volumes Chris Wyman Department of Computer Science University of Iowa High Performance Graphics 2011.
Computer Graphics 2 Lecture x: Acceleration Techniques for Ray-Tracing Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Ray Tracing and Photon Mapping on GPUs Tim PurcellStanford / NVIDIA.
Finish Adaptive Space Carving Anselmo A. Montenegro †, Marcelo Gattass ‡, Paulo Carvalho † and Luiz Velho † †
Mapping Computational Concepts to GPUs Mark Harris NVIDIA Developer Technology.
Visibility Queries Using Graphics Hardware Presented by Jinzhu Gao.
Kansas State University Department of Computing and Information Sciences CIS 736: Computer Graphics Wednesday, February 23, 2000 William H. Hsu Department.
1 Speeding Up Ray Tracing Images from Virtual Light Field Project ©Slides Anthony Steed 1999 & Mel Slater 2004.
REAL-TIME VOLUME GRAPHICS Markus Hadwiger VRVis Research Center, Vienna Eurographics 2006 Real-Time Volume Graphics [04] GPU-Based Ray-Casting.
The Visibility Problem In many environments, most of the primitives (triangles) are not visible most of the time –Architectural walkthroughs, Urban environments.
Lecture 3 : Direct Volume Rendering Bong-Soo Sohn School of Computer Science and Engineering Chung-Ang University Acknowledgement : Han-Wei Shen Lecture.
Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures Vision, Modeling, Visualization Erlangen, Germany November 16-18,
Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia.
University of Coimbra Reconstruction of Voxels from Sensor Data Ricardo Martins Coimbra, 19 th January 2010 Doctoral Programme in Electrical Engineering.
Cg Programming Mapping Computational Concepts to GPUs.
Graphics Graphics Korea University cgvr.korea.ac.kr Solid Modeling 고려대학교 컴퓨터 그래픽스 연구실.
2D/3D Shape Manipulation, 3D Printing Shape Representations Slides from Olga Sorkine February 20, 2013 CS 6501.
Computer Graphics 2 Lecture 8: Visibility Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
On a Few Ray Tracing like Algorithms and Structures. -Ravi Prakash Kammaje -Swansea University.
A Computationally Efficient Framework for Modeling Soft Body Impact Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
3D Object Representations
1 Visiblity: Culling and Clipping Computer Graphics COMP 770 (236) Spring 2009 January 21 & 26: 2009.
David Luebke11/26/2015 CS 551 / 645: Introductory Computer Graphics David Luebke
Hardware-accelerated Point-based Rendering of Surfaces and Volumes Eduardo Tejada, Tobias Schafhitzel, Thomas Ertl Universität Stuttgart, Germany.
M. Jędrzejewski, K.Marasek, Warsaw ICCVG, Multimedia Chair Computation of room acoustics using programable video hardware Marcin Jędrzejewski.
Coherent Hierarchical Culling: Hardware Occlusion Queries Made Useful Jiri Bittner 1, Michael Wimmer 1, Harald Piringer 2, Werner Purgathofer 1 1 Vienna.
Graphics Interface 2009 The-Kiet Lu Kok-Lim Low Jianmin Zheng 1.
3D Object Representations 2011, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
Compact, Fast and Robust Grids for Ray Tracing
Geometry Synthesis Ares Lagae Olivier Dumont Philip Dutré Department of Computer Science Katholieke Universiteit Leuven 10 August, 2004.
David Luebke 3/5/2016 Advanced Computer Graphics Lecture 4: Faster Ray Tracing David Luebke
Caustics Triangles on the GPU Umenhoffer Tamás Gustavo Patow Szirmay-Kalos László.
Radiance Cache Splatting: A GPU-Friendly Global Illumination Algorithm P. Gautron J. Křivánek K. Bouatouch S. Pattanaik.
Solid Modeling Dr. Scott Schaefer.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
Ray Tracing Acceleration (3)
Constructive Solid Geometry CSG (Geometri Padat Konstruktif)
Hybrid Ray Tracing and Path Tracing of Bezier Surfaces using a mixed hierarchy Rohit Nigam, P. J. Narayanan CVIT, IIIT Hyderabad, Hyderabad, India.
Graphics Processing Unit
3D Object Representations
View-Dependent Textured Splatting for Rendering Live Scenes
GPGPU: Distance Fields
Sorting and Searching Tim Purcell NVIDIA.
Visibility (hidden surface removal)
A Hierarchical Shadow Volume Algorithm
Boolean Operations for Free-form Models Represented in Geometry Images
University of Virginia
Presentation transcript:

Boolean Operations on Surfel-Bounded Solids Using Programmable Graphics Hardware Bart AdamsPhilip Dutré Katholieke Universiteit Leuven

Goal: CSG on the GPU not rendering, but construction  GPGPU

Related Work Adams and Dutré [2003]  points, 3-color octree Pauly et al. [2003]  points and MLS, kd-tree Purcell et al. [2002]  ray tracing on the GPU Zwicker et al. [2004]  splatting clipped surfels

Adams and Dutré [2003] Space partitioned using 3-color octree Boundary cells partitioned using // planes

Adams and Dutré [2003] Classification of a surfel: test against 3-color octree test against boundary planes test against nearest surfel: NN query! α

CPU  GPU: Problems Hierarchical algorithm –solution: use 3-color grid instead of octree only test surfels individually NN query for surfels close to the boundary –solution: avoid NN query use local distance fields

Part 1: Inside-Outside Partitioning

Partitioning: Idea Partition space around solids Construct 3-color grid –interior cells –exterior cells –boundary cells Partition boundary cells –signed distance field

Partitioning Boundary Cells Lay out cell corners in texture memory p6p6 p7p7 p4p4 p5p5 p2p2 p3p3 p0p0 p1p1 p0p0 p1p1 p2p2 p7p7 p3p3 p6p6 p5p5 p4p4

Partitioning Boundary Cells Lay out cell corners in texture memory p4p4 p5p5 p6p6 p 11 p7p7 p 10 p9p9 p8p8 p6p6 p7p7 p4p4 p5p5 p 11 p8p8 p9p9 p2p2 p3p3 p0p0 p1p1 p0p0 p1p1 p2p2 p7p7 p3p3 p6p6 p5p5 p4p4

Partitioning Boundary Cells Render each surfel as 3x3 glPoint with center corresponding to cell center p4p4 p5p5 p6p6 p 11 p7p7 p 10 p9p9 p8p8 p6p6 p7p7 p4p4 p5p5 p 11 p8p8 p9p9 p2p2 p3p3 p0p0 p1p1 p0p0 p1p1 p2p2 p7p7 p3p3 p6p6 p5p5 p4p4

Partitioning Boundary Cells Render each surfel as 3x3 glPoint with center corresponding to cell center p4p4 p5p5 p6p6 p 11 p7p7 p 10 p9p9 p8p8 p6p6 p7p7 p4p4 p5p5 p 11 p8p8 p9p9 p2p2 p3p3 p0p0 p1p1 p0p0 p1p1 p2p2 p7p7 p3p3 p6p6 p5p5 p4p4

Partitioning Boundary Cells Render each surfel as 3x3 glPoint with center corresponding to cell center p4p4 p5p5 p6p6 p 11 p7p7 p 10 p9p9 p8p8 p6p6 p7p7 p4p4 p5p5 p 11 p8p8 p9p9 p2p2 p3p3 p0p0 p1p1 p0p0 p1p1 p2p2 p7p7 p3p3 p6p6 p5p5 p4p4 known as scatter easy in VP

Partitioning Boundary Cells Fragment program computes signed distance between surfel and cell corner p4p4 p5p5 p6p6 p 11 p7p7 p 10 p9p9 p8p8 p6p6 p7p7 p4p4 p5p5 p 11 p8p8 p9p9 p2p2 p3p3 p0p0 p1p1 p0p0 p1p1 p2p2 p7p7 p3p3 p6p6 p5p5 p4p4 psps dist = || p 4 – p s || sign = (p 4 – p s )·n s >0?+1:-1 color = dist * sign depth = dist/diag Set glDepthFunc to GL_LEQUAL

Construct 3-color grid using distance values from boundary cell corners –render textured quad –each pixel corresponds to a cell Classifying Empty Cells

First pass: cells on the left from boundary cell are classified –inside if  d i < 0 –outside if  d i > 0 Easy in FP: –4 texture fetches Classifying Empty Cells

Next passes: cells on the left from a classified empty cell are classified Easy in FP: –1 texture fetch Classifying Empty Cells

Next passes: cells on the left from a classified empty cell are classified Easy in FP: –1 texture fetch Iterate further Classifying Empty Cells

Next passes: cells on the left from a classified empty cell are classified Easy in FP: –1 texture fetch Iterate further Classifying Empty Cells

Next passes: cells on the left from a classified empty cell are classified Easy in FP: –1 texture fetch Iterate further Classifying Empty Cells

Next passes: cells on the left from a classified empty cell are classified Easy in FP: –1 texture fetch Iterate further Classifying Empty Cells

All non-classified cells are outside (assumption: closed solid) Classifying Empty Cells

Part 2: Inside-Outside Classification

Classification: Idea Test surfels against partitioning of other solid: test against 3-color grid test against distance field (+ compute clipping plane)

Implementation: First Pass Enable depth write Render quad textured with surfel positions Test each surfel against 3-color grid –if surfel in empty cell: surfel takes classification of empty cell write depth value z 1 –if surfel in boundary cell: write depth value z 2 with z 1 < z 2

Implementation: Second Pass Disable depth write Set glDepthFunc to GL_LEQUAL Render quad textured with surfel positions –at depth z with z 1 < z < z 2 Classify surfel using distance field –8 texture fetches, tri-linear reconstruction Only unclassified surfels pass –fragments with z == z 2 Early z culling!

Clipping Plane Surfels close to other surface: –clipped –resampled Clipping plane defined by: –distance field value –distance field gradient

Timings: partitioning Distance field creation step (~ #surfels) # surfels60k170k250k370k time37ms98ms142ms220ms 3-color grid creation step (~ grid size) grid size time3ms22ms104ms214ms

Timings CPU  GPU PartitioningClassification [AD03]GPU[AD03]GPU 30k60k720ms245ms330ms19ms 90k170k1980ms351ms490ms49ms 200k250k3500ms492ms720ms80ms ÷5 ÷10

Dragon - dragon Each dragon: #surfels: 650k grid size: 36 3 partitioning: 700ms classification: 122ms

Discussion Limitations –space wasted in distance field texture –not adaptive (  ADFs) –no hierarchy: each surfel classified individually –accuracy dependent on grid resolution Advantages –5 to 10 times faster