Spatial Data Structures

Similar documents
Spatial Data Structures

Spatial Data Structures

Spatial Data Structures

Spatial Data Structures

Ray Tracing III. Wen-Chieh (Steve) Lin National Chiao-Tung University

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday

Lecture 25 of 41. Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees

Solid Modeling. Thomas Funkhouser Princeton University C0S 426, Fall Represent solid interiors of objects

Computer Graphics. Bing-Yu Chen National Taiwan University The University of Tokyo

Ray Tracing Acceleration Data Structures

Ray Tracing with Spatial Hierarchies. Jeff Mahovsky & Brian Wyvill CSC 305

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology

Intersection Acceleration

Anti-aliased and accelerated ray tracing. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell

Hidden Surface Elimination: BSP trees

More Hidden Surface Removal

Speeding up your game

Computer Graphics. Bing-Yu Chen National Taiwan University

Accelerated Raytracing

Accelerating Geometric Queries. Computer Graphics CMU /15-662, Fall 2016

CSG obj. oper3. obj1 obj2 obj3. obj5. obj4

Lecture 17: Solid Modeling.... a cubit on the one side, and a cubit on the other side Exodus 26:13

CPSC / Sonny Chan - University of Calgary. Collision Detection II

Advanced 3D-Data Structures

Acceleration Data Structures

Anti-aliased and accelerated ray tracing. University of Texas at Austin CS384G - Computer Graphics

CS535 Fall Department of Computer Science Purdue University

Polygon Meshes and Implicit Surfaces

Polygon Meshes and Implicit Surfaces

Last Time: Acceleration Data Structures for Ray Tracing. Schedule. Today. Shadows & Light Sources. Shadows

Lecture 11: Ray tracing (cont.)

Speeding Up Ray Tracing. Optimisations. Ray Tracing Acceleration

Ray Tracing: Intersection

Computer Graphics (CS 543) Lecture 13b Ray Tracing (Part 1) Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Curves and Surfaces Computer Graphics I Lecture 10

11/1/13. Polygon Meshes and Implicit Surfaces. Shape Representations. Polygon Models in OpenGL. Modeling Complex Shapes

Ray Tracing. Foley & Van Dam, Chapters 15 and 16

Ray Tracing Foley & Van Dam, Chapters 15 and 16

Acceleration Data Structures for Ray Tracing

Parallel Physically Based Path-tracing and Shading Part 3 of 2. CIS565 Fall 2012 University of Pennsylvania by Yining Karl Li

CS 352: Computer Graphics. Hierarchical Graphics, Modeling, And Animation

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

Computer Graphics. - Spatial Index Structures - Philipp Slusallek

Computer Graphics Ray Casting. Matthias Teschner

CPSC GLOBAL ILLUMINATION

Ray Genealogy. Raytracing: Performance. Bounding Volumes. Bounding Volume. Acceleration Classification. Acceleration Classification

9. Visible-Surface Detection Methods

Ray Tracing. Cornell CS4620/5620 Fall 2012 Lecture Kavita Bala 1 (with previous instructors James/Marschner)

Spatial Data Structures and Acceleration Algorithms

MODELING AND HIERARCHY

Ray-tracing Acceleration. Acceleration Data Structures for Ray Tracing. Shadows. Shadows & Light Sources. Antialiasing Supersampling.

Implicit Surfaces & Solid Representations COS 426

Solid Modeling. Ron Goldman Department of Computer Science Rice University

Accelerating Ray Tracing

CS 563 Advanced Topics in Computer Graphics Culling and Acceleration Techniques Part 1 by Mark Vessella

Geometric Representations. Stelian Coros

Graphics 2009/2010, period 1. Lecture 8: ray tracing

VIII. Visibility algorithms (II)

Advanced Ray Tracing

Point Cloud Filtering using Ray Casting by Eric Jensen 2012 The Basic Methodology

Spatial Data Structures and Speed-Up Techniques. Ulf Assarsson Department of Computer Science and Engineering Chalmers University of Technology

Homework 1: Implicit Surfaces, Collision Detection, & Volumetric Data Structures. Loop Subdivision. Loop Subdivision. Questions/Comments?

Topics. Ray Tracing II. Intersecting transformed objects. Transforming objects

Accelerating Ray-Tracing

Collision Detection. These slides are mainly from Ming Lin s course notes at UNC Chapel Hill

COMP 175: Computer Graphics April 11, 2018

Chapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.

Computer Graphics. Lecture 9 Hidden Surface Removal. Taku Komura

Acceleration Data Structures. Michael Doggett Department of Computer Science Lund university

Ray Tracing Acceleration. CS 4620 Lecture 20

Collision Detection based on Spatial Partitioning

Computing Visibility. Backface Culling for General Visibility. One More Trick with Planes. BSP Trees Ray Casting Depth Buffering Quiz

Today. Acceleration Data Structures for Ray Tracing. Cool results from Assignment 2. Last Week: Questions? Schedule

Logistics. CS 586/480 Computer Graphics II. Questions from Last Week? Slide Credits

Topics. Ray Tracing II. Transforming objects. Intersecting transformed objects

improving raytracing speed

INFOGR Computer Graphics. J. Bikker - April-July Lecture 11: Acceleration. Welcome!

Lecture 2 - Acceleration Structures

Simulation in Computer Graphics Space Subdivision. Matthias Teschner

Collision and Proximity Queries

CSE528 Computer Graphics: Theory, Algorithms, and Applications

Bounding Volume Hierarchies. CS 6965 Fall 2011

Questions from Last Week? Extra rays needed for these effects. Shadows Motivation

CS 431/636 Advanced Rendering Techniques

CEng 477 Introduction to Computer Graphics Fall 2007

Spatial Data Structures. Steve Rotenberg CSE168: Rendering Algorithms UCSD, Spring 2017

Computer Graphics. - Ray-Tracing II - Hendrik Lensch. Computer Graphics WS07/08 Ray Tracing II

Acceleration Structures. CS 6965 Fall 2011

Identifying those parts of a scene that are visible from a chosen viewing position, and only process (scan convert) those parts

Binary Space Partition Trees. Overview. Binary Space Partitioning Trees (Fuchs, Kedem and Naylor `80)

Page 1. Area-Subdivision Algorithms z-buffer Algorithm List Priority Algorithms BSP (Binary Space Partitioning Tree) Scan-line Algorithms

Constructive Solid Geometry Using BSP Tree

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project

3D Modeling I. CG08b Lior Shapira Lecture 8. Based on: Thomas Funkhouser,Princeton University. Thomas Funkhouser 2000

Hidden surface removal. Computer Graphics

Universiteit Leiden Computer Science

CSE328 Fundamentals of Computer Graphics: Concepts, Theory, Algorithms, and Applications

Solid Modelling. Graphics Systems / Computer Graphics and Interfaces COLLEGE OF ENGINEERING UNIVERSITY OF PORTO

Second degree equations - quadratics. nonparametric: x 2 + y 2 + z 2 = r 2

Accelerating Ray-Scene Intersection Calculations

Transcription:

Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) [Angel 9.10] Outline Ray tracing review what rays matter? Ray tracing speedup faster intersection tests: simple enclosing geometry bounding volumes fewer intersection tests: avoid testing many objects hierarchical bounding volumes regular grid octree BSP tree CSG and ray tracing 1

Spatial Data Structures Data structures to store geometric information Sample applications Height field representation Collision detection (hierarchical bounding volumes) Surgical simulations (finite element method) Rendering Spatial data structures for ray tracing Object-centric data structures (bounding volumes) Space subdivision (grids, octrees, BSP trees) Speed-up of 10x, 100x, or more Bounding Volumes Suppose you are ray tracing teapots... need to intersect ray with a collection of Bezier patches......or a large number of triangles 2

Bounding Volumes Wrap complex objects in simple ones Does ray intersect bounding box? No: does not intersect enclosed objects Yes: calculate intersection with enclosed objects Common types Boxes, axis-aligned Boxes, oriented Spheres Finite intersections or unions of above Selection of Bounding Volumes Effectiveness depends on: Probability that ray hits bounding volume, but not enclosed objects (tight fit is better) Expense to calculate intersections with bounding volume and enclosed objects Use heuristics / your best judgment good bad 3

Hierarchical Bounding Volumes With simple bounding volumes, ray casting still requires O(n) intersection tests... Hierarchical Bounding Volumes With simple bounding volumes, ray casting still has requires O(n) intersection tests Idea: use tree data structure Larger bounding volumes contain smaller ones etc. Sometimes naturally available (e.g. human figure) Sometimes difficult to compute Often reduces complexity to O(log(n)) 4

Ray Intersection Algorithm Recursively descend tree If ray misses bounding volume, no intersection If ray intersects bounding volume, recurse with enclosed volumes and objects Maintain near and far bounds to prune further Overall effectiveness depends on model and constructed hierarchy Focus on Objects Bounding volumes are object centric place simple bounding volume around each object group these simple bounding volumes into a hierarchy 5

Focus on Objects Bounding volumes are object centric place simple bounding volume around each object group these simple bounding volumes into a hierarchy Problems: finding a good grouping can be difficult if objects are moving, a group that is compact now may not be compact later.. (logical groupings such as an object or animated character, however, are easy to group and maintain) Focus on Objects Æ Focus on the Space Bounding volumes are object centric place simple bounding volume around each object group these simple bounding volumes into a hierarchy Problems: finding a good grouping is difficult if objects are moving, a group that is compact now may not be compact later.. If there are many distinct objects, dividing up space and registering objects in that space may be a better option 6

Spatial Subdivision Regular grids Octrees BSP trees Grids 3D array of cells (voxels) that tile space Each cell points to all intersecting surfaces Intersection algorithm steps from cell to cell 7

Caching Intersection points Objects can span multiple cells For A need to test intersection only once For B need to cache intersection and check next cell for closer one If not, C could be missed (yellow ray) A B C Assessment of Grids Poor choice when world is non-homogeneous Size of grid Too small: too many surfaces per cell Too large: too many empty cells to traverse Can use alg like Bresenham s for efficient traversal Non-uniform spatial subdivision more flexible Can adjust to objects that are present 8

Quadtrees Goal: a hierarchical subdivision of an entire (bounded) 2D space Quadtrees Generalization of binary trees to 2D Node (cell) is a square Recursively split into 4 equal sub-squares Stop subdivision based on number of objects Ray intersection has to traverse quadtree More difficult to step to next cell 9

Octrees Generalization of quadtree to 3D Each cell may be split into 8 equal sub-cells Internal nodes store pointers to children Leaf nodes store list of surfaces Adapts well to inhomogeneous scenes Assessment for Ray Tracing Grids Easy to implement Require a lot of memory Poor results for inhomogeneous scenes Octrees Better on most scenes (more adaptive) Spatial subdivision expensive for dynamic scenes (animations) Hierarchical bounding volumes Natural for hierarchical objects Better for dynamic scenes 10

BSP Trees Binary space partitioning Goal: divide space in a more efficient way, with results depending on the particular scene BSP Trees Split space with any line (2D) or plane (3D) Applications Painters algorithm for hidden surface removal Ray casting Inherent spatial ordering given viewpoint Left subtree: in front, right subtree: behind Problem: finding good space partitions Proper ordering for any viewpoint Balance tree 11

Building a BSP Tree Use hidden surface removal as intuition Using line 1 or line 2 as root is easy Line 1 3 2 1 1 A D C Line 3 Line 2 B A C D a BSP tree using 2 as root 3 B the subdivision of space it implies 2 Viewpoint Splitting of surfaces Using line 3 as root requires splitting Line 1 3 Line 2a 2b 2a Line 3 Line 2b 1 Viewpoint 12

Painter s Algorithm with BSP Trees Building the tree May need to split some polygons Slow, but done only once Traverse back-to-front or front-to-back Order is viewer-direction dependent What is front and what is back of each line changes Determine order on the fly 2D example of traversal Details of Painter s Algorithm Each face has form Ax + By + Cz + D Plug in coordinates and determine Positive: front side Zero: on plane Negative: back side Back-to-front: inorder traversal, farther child first Front-to-back: inorder traversal, near child first Clip against visible portion of space (portals) 13

Clipping With Spatial Data Structures Accelerate clipping Goal: accept or rejects whole sets of objects Can use a spatial data structure Scene should be mostly fixed Terrain fly-through Gaming Hierarchical bounding volumes Octrees Data Structure Demo BSP Tree construction http://symbolcraft.com/graphics/bsp/ 14

Constructive Solid Geometry (CSG) Generate complex shapes with simple building blocks (boxes, spheres, cylinders, cones,...) Particularly applicable for machined objects Efficient with ray tracing Example: A CSG Train Brian Wyvill et al., U. of Calgary 15

Boolean Operations Intersection and union Subtraction Example: drilling a hole Subtract From To get CSG Trees Set operations yield tree-based representation Use these trees for ray/objects intersections Think about how! 16

Implicit Functions for Booleans Solid as implicit function, F(x,y,z) F(x, y, z) < 0 interior F(x, y, z) = 0 surface F(x, y, z) > 0 exterior For CSG, use F(x, y, z) {-1, 0, 1} F A B (p) = max (F A (p), F B (p)) F A > B (p) = min (F A (p), F B (p)) F A B (p) = max (F A (p), - F B (p)) Summary Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) 17

Announcements Ray tracing project there have been some changes to the grammar and starter code check newsgroup periodically get new assignment handout Ray tracing project there will be a help session later in the week watch the newsgroup for an announcement 18