Geometry proxies (in 2D): a Convex Polygon
|
|
- Cori Warren
- 5 years ago
- Views:
Transcription
1 Geometry proxies (in 2D): a Convex Polygon Intersection of half-planes each delimited by a line Stored as: Test: a collection of (oriented) lines a point is inside iff it is in each half-plane A very good expressiveness, with only moderate complexity Geometry proxies (in 3D): a Convex Polyhedron Intersection of half-space Similar as previous, but in 3D stored as a collection of planes each plane = a vec4 (normal, distance from origin) test: inside proxy iff inside each half-space Physics: Collisions - 2 1
2 Geometry proxies (in 3D): a (general) Polyhedron potentially concave Luxury Hit-Boxes :) The most accurate approximations The most expensive tests / storage Specific algorithms to test for collisions requiring some preprocessing and data structures (BSP-trees, see later) Creation (as meshes): sometimes, with automatic simplification often, handmade (using low-poly modelling) (note: proxies are assets!) Similar to a 3D mesh? e.g. adaptive resolution but (they would be wasted, as Bounding Volumes!) 3D Meshes as hit-boxes Differences with «common» meshes : much lower res (~ O(10 2 ) faces max) no attributes (no uv-mapping, no col, etc) generic polygons, not tris: ok (as long as they are flat) closed, water-tight (inside!= outside) sometimes: convex only the ones used for rendering Physics: Collisions - 2 2
3 3D Meshes as hit-boxes mesh for rendering (~600 tri faces) (in wireframe) Collision object: 10 (polygonal) faces 3D Meshes as hit-boxes mesh for rendering (~300 tri faces) (in wireframe) Collision object: 12 (polygonal) faces Physics: Collisions - 2 3
4 Composite Geometry proxies Union of Proxies inside iff inside of any sub-proxy useful! for example: union of convex polyhedra = concave polyhedron union of a sphere, two capsules, one box = a good, but cheap, approximation of a given shape creation: it s manual work (remember: hit-boxes are usually assets) potentially: a good problem for AI? Bounding Volume + Collision Object if (!collide( boundingvol, X ) ) { return NO_COLLISION; // early reject } else { CollisionData d; if (collide( hitbox, X, &d )) { return d; // for the response! } else return NO_COLLISION; } note: the two collide aren t the same function (overloading) a simple Bounding Volume around a more complex Collision Object approximating the object Physics: Collisions - 2 4
5 Which geometric proxy to support? an implementation choice of the Physics Engine note: # of intersection tests to be implemented quadratic with # of types supported note: supported proxy types can be used as either Bounding Volumes or Hit-Boxes VS Type A Type B Type C a Point a Ray Type A algorithm algorithm algorithm algorithm algorithm Type B Type C algorithm algorithm algorithm algorithm algorithm algorithm algorithm Rays are useful, e.g. for visibility Collision detection: strategies Static Collision detection ( a posteriori, discrete ) approximated simple + quick t t + dt NO COLL COLLISION Dynamic Collision detection ( a priori, continuous ) accurate demanding t COLLISION t + dt Physics: Collisions - 2 5
6 Collision detection: Discrete Collisions-check after every step of dynamics Aka: «static» (because objects are tested as if they are still) «a posteriori» (because coll are detected after they happen) «discrete» (bacause it is checked at discrete time intervals) Problem: lack of self-intersection is violated and then just fixed as part of the collision response Problem: tunnel effect t t + dt happens more when: - dt is large, - or vels are large, - or objects are thin NO COLLISION NO COLLISION Collision detection: Continuous Check intersection on the volume swept by the collision object during the current frame Italian: spazzata Extra bonus: «dynamic» (because moving objects are tested) «a priori» (because coll are detected before they happen) «cotinuous» (bacause it is checked over a time interval) intersection can be prevented, not fixed: clean, elegant, accurate just find max dt s.t. no collision occurs: move object by that much Problem: computation is demanding Aka: easy for: points (they become lines) easy for: spheres (they become capsules) (how?) rarely used for anything else: other colliders are not as simple. used at all only when really needed (designer choice!): i.e. colliders are small, vel large, and dt cannot be decreased Physics: Collisions - 2 6
7 Collision detection: in 2D (easier problem) Same problems, same solutions e.g. quad-trees e.g.: 2D spatial indexing, 2D bounding volumes (2D geom. proxies) e.g. 2D AABB, circles But we have : collision detection for 2D sprites (in screen space) accurate: «pixel perfect» efficient: HW supported! (hard wired, e.g part of blit operations) (no need for collision object approximation) NO COLLISION NO COLLISION COLLISION Collision detection Challenges for efficiency: a) test between two objects: How to make it efficient? b) avoid quadratic explosion on the number of tests N objects N 2 tests? Physics: Collisions - 2 7
8 Avoiding a quadratic number of tests For this purpose, we need some auxiliary data structure use it to bypass most obj-to-obj test (the earliest reject is to not even do the test!) build it only once, for static parts update it every frame, for dynamic parts Classes of solutions: 1) Spatial Indexing Structures 2) BVH Bounding Volume Hierarchies Spatial indexing structures Data structures to accelerate queries of the kind: «I m here. Which objects are in my proximity?» Challenges: (1) fast construction / update (2) fast access / usage Commonest structures (in games): Regular Grid kd-tree Oct-Tree in a 2D game: the Quad-Tree BSP Tree Physics: Collisions - 2 8
9 Regular Grid (or: lattice) a b c d e f g h i j k l m n o p q r s the scene a b c d e f g h i j k l m n o p q r s Regular Grid (or: lattice) Array 3D of cells (same size) each cell: a list of pointers to collision-objects Indexing function: Point3D cell index, (constant time!) Construction: ( scatter approach) for each object B[ i ] find the cells C[ j ] which it touches add a pointer in C[ j ] to B[ i ] Queries: given a point to test p, find cell C[ j ], test all objects linked to it Problem: cell size too small: memory occupancy too large quadratic with inverse of cell size! too big: too many objects in one cell sometimes, no cell size is good enough Physics: Collisions - 2 9
10 kd-tree A B C D E F G D H H I B E A F C N G LO J M I K N L J O M K the scene kd-trees Hierarchical structure: a tree each node: a subpart of the 3D scene (a AABB) root: the entire scene child nodes: partitions of the parent node objects linked to leafs kd-tree: binary tree each node: split over one dimension (in 3D: X,Y,Z) variant: each node optimizes (and stores) which dimension, or always apply same order: e.g. X, then Y, then Z, then X, variant: each node optimizes the split point, or always in the middle Physics: Collisions
11 Quad-Tree (in 2D) the (2D) world often used for terrains Oct Tree (same, for 3D) Physics: Collisions
12 Quad trees (in 2D) Oct trees (in 3D) Similar to kd-trees, but: tree: branching factor: 4 (2D) or 8 (3D) each node: splits into all dimensions at once, (in the middle) Construction (just as kd-trees): continue splitting until a end nodes has few enough objects (or limit level reached) BSP-tree Binary Spatial Partitioning tree the world Physics: Collisions
13 BSP-trees for the Concave Polyhedron proxy BSP-trees for the Concave Polyhedron proxy E A B F OUT B C C E D A OUT D OUT F OUT IN OUT IN Physics: Collisions
14 BSP-tree Binary Spatial Partitioning tree Another hierarchical spatial structure it s a binary tree (like the kd-tree) root = all scene (like the kd-tree) but, each node is split by an arbitrary plane (in 2D: by a line) plane can be stored succinctly, as: (nx, ny, nz, k) construction: planes can be optimized for the given scene e.g. go for a 50%-50% object split at each node e.g. try to leave exactly one object at leaves (assuming it is always possible to split any two apart reasonable assumption) Also used to: General Polyhedron proxies collision each leaf: fully inside or fully outside just one bool! tree precomputed, for a given input Polyhedron, nodes = faces of the polyhedron optimizing for balance Reminder: Plane VS Point test Input: a point q a plane given by: its normal: n a point on it: p Q: on which side of the plane is q? A: it s the sign of n q p = n q n p = n q + K = (n, n, n, K) (q, q, q, 1) the vec4 representing the plane K = n p (minus dist. of plane from orig.) p q n Physics: Collisions
15 BVH Bounding Volume Hierarchy BVH Bounding Volume Hierarchy B C A D E F A B C D F E Physics: Collisions
16 BVH Bounding Volume Hierarchy G B J M H C J M K A D G H E F A B C D E F K BVH Bounding Volume Hierarchy Idea: use the scene hierarchy given by the scene graph (instead of a spatial derived one) associate a Bounding Volumes to each node rule: a BV of a node bounds all objects in the subtree construction / update: quick! bottom-up: recursive (how?) using it at query time: top-down: depth-first visit (how?) note: it s not a single root-to-leaf visit may need to follow all children of a node which intersect (in a BSP-tree: only one) Physics: Collisions
17 Spatial indexing structures Recap Regular Grid the most parallelizable (to update / construct / use) constant time access (best!) quadratic / cubic space (2D, 3D) kd-tree, Oct-tree, Quad-tree compact simple BSP-tree optimized splits! best performance when accessed optimized splits! more complex construction / update suited for the static parts of the scene (also, used for Generic Polyhedron Collision Objects) BVH simplest construction non necessarily very efficient to access may need to traverse multiple children if uses same hierarchy of the scene-graph: not always the best suited for the dynamic parts of the scene Physics Engine: parallel implementation? Task: Dynamics: (forces, speed and position updates ) simple structures, fixed workflow highly parallelizable: so GPU Task: Constraints Enforcement: (all the various kinds of them ) still moderately simple structures, fixed workflow still highly parallelizable: hopefully, GPU Task: Collisions Detection: non-trivial data structures: hierarchies, recursive algorithms hugely variable workflow (quick on no-collision, more complex on the few near miss and hits) difficult to parallelize: so CPU but the outcome affects other two tasks (e.g. creates constraints): ==> CPU-GPU communication, ==> GPU structures updates (problematic, on many architectures) Physics: Collisions
18 To learn more about game physics Erwin Coumans SIGGRAPH 2015 course Müller-Fischer et al. Real-time physics (Siggraph course notes, 2008) In Attaching to a GameObject a RigidBody component means: «use Unity built-in phys. dynamics on this object» unless its iskinematic flag is activated (if so: no dynamics) a Collider component means: «use Unity built-in collision detection for this object» both the components means: «use Unity built-in collision response for this object» unless istrigger flag is activated (if so: no response) also, collider is used to precompute distribution of mass constants of RigidBody (barycenter, moment of inertia) Note: collision detection can happen without response: ad-hoc collision effects are purely scripted instead write method ontriggerenter( Collider other ) e.g.: avatar touches object: collects object arrowhead touches soldier: dies; tank touches landmine: explodes etc. Physics: Collisions
19 In : colliders collider : a geometric proxy, (used as a collision object) several types available (sphere, box -- see next slide) istrigger flag: «just collision detection please, disable built-in collision response» parameters for the built-in response: Bounciness : 1.0: purely elastic impacts 0.0: purely static impacts or any intermediate values Friction : (separate values for dynamic / static) flags to choose how to combine Friction / Bounciness of two colliding objects (max, min ) the physical material asset associated to the collider In : available collider types Simple geometric shapes: Sphere Capsule interactive WYSIWYG shape editor Box (general, not Axis Aligned: can be rotated) integrated Cylinder in IDE Plane (finite, i.e., a rectangle) Polyhedron: (meshcollider) convex: convex flag is set user responsibility to specify this! generic: convex flag not set (no built-in collision response) must be associated to a (low poly!) a mesh asset Specialized proxies, for particular objects: terrains, i.e., height-fields (TerrainCollider) car wheels (WheelCollider) (ad-hoc wheel-like collision response) And composite proxies just add multiple collider components to one game-object Physics: Collisions
20 In : other physics parameters/flags Static flag if set: cannot move. If not: object is dynamic user responsibility: as we know, crucial for optimization! Mass total, irrespective of distribution Drag (1-DAMP)/sec -- separate values for vel / angular vel Collision detection mode discrete (always discrete) continuous dynamic (always continuous) continuous static (continuous VS static objects, discrete VS dynamic objects) Use-gravity flag: note: gravity acceleration is a global Project Setting Simple positional / rotational constraints separate freeze flags for X,Y,Z (position) and for X,Y,Z Euler angle (rotation) in GameObject in associated RigidBody component Physics: Collisions
11 - Spatial Data Structures
11 - Spatial Data Structures cknowledgement: Marco Tarini Types of Queries Graphic applications often require spatial queries Find the k points closer to a specific point p (k-nearest Neighbours, knn)
More informationCollision detection: strategies
ollision detection: strategies Static ollision detection ( a posteriori, discrete ) approximated simple + quick t = 0 t = 1 NO OLL OLLISION ynamic ollision detection ( a priori, continuous ) accurate demanding
More informationCPSC / Sonny Chan - University of Calgary. Collision Detection II
CPSC 599.86 / 601.86 Sonny Chan - University of Calgary Collision Detection II Outline Broad phase collision detection: - Problem definition and motivation - Bounding volume hierarchies - Spatial partitioning
More informationSpatial Data Structures
CSCI 420 Computer Graphics Lecture 17 Spatial Data Structures Jernej Barbic University of Southern California Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees [Angel Ch. 8] 1 Ray Tracing Acceleration
More informationSpatial Data Structures
15-462 Computer Graphics I Lecture 17 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) April 1, 2003 [Angel 9.10] Frank Pfenning Carnegie
More informationSpatial Data Structures
CSCI 480 Computer Graphics Lecture 7 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids BSP Trees [Ch. 0.] March 8, 0 Jernej Barbic University of Southern California http://www-bcf.usc.edu/~jbarbic/cs480-s/
More informationSpatial Data Structures
15-462 Computer Graphics I Lecture 17 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) March 28, 2002 [Angel 8.9] Frank Pfenning Carnegie
More informationSpatial Data Structures
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
More informationimproving raytracing speed
ray tracing II computer graphics ray tracing II 2006 fabio pellacini 1 improving raytracing speed computer graphics ray tracing II 2006 fabio pellacini 2 raytracing computational complexity ray-scene intersection
More informationScene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development
Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development Chap. 5 Scene Management Overview Scene Management vs Rendering This chapter is about rendering
More informationSpatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology
Spatial Data Structures and Speed-Up Techniques Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology Spatial data structures What is it? Data structure that organizes
More informationIntersection Acceleration
Advanced Computer Graphics Intersection Acceleration Matthias Teschner Computer Science Department University of Freiburg Outline introduction bounding volume hierarchies uniform grids kd-trees octrees
More informationCollision and Proximity Queries
Collision and Proximity Queries Dinesh Manocha (based on slides from Ming Lin) COMP790-058 Fall 2013 Geometric Proximity Queries l Given two object, how would you check: If they intersect with each other
More informationUsing Bounding Volume Hierarchies Efficient Collision Detection for Several Hundreds of Objects
Part 7: Collision Detection Virtuelle Realität Wintersemester 2007/08 Prof. Bernhard Jung Overview Bounding Volumes Separating Axis Theorem Using Bounding Volume Hierarchies Efficient Collision Detection
More informationRay Tracing Acceleration Data Structures
Ray Tracing Acceleration Data Structures Sumair Ahmed October 29, 2009 Ray Tracing is very time-consuming because of the ray-object intersection calculations. With the brute force method, each ray has
More informationHomework 1: Implicit Surfaces, Collision Detection, & Volumetric Data Structures. Loop Subdivision. Loop Subdivision. Questions/Comments?
Homework 1: Questions/Comments? Implicit Surfaces,, & Volumetric Data Structures Loop Subdivision Shirley, Fundamentals of Computer Graphics Loop Subdivision SIGGRAPH 2000 course notes Subdivision for
More informationAcceleration Data Structures
CT4510: Computer Graphics Acceleration Data Structures BOCHANG MOON Ray Tracing Procedure for Ray Tracing: For each pixel Generate a primary ray (with depth 0) While (depth < d) { Find the closest intersection
More informationCollision Detection. These slides are mainly from Ming Lin s course notes at UNC Chapel Hill
Collision Detection These slides are mainly from Ming Lin s course notes at UNC Chapel Hill http://www.cs.unc.edu/~lin/comp259-s06/ Computer Animation ILE5030 Computer Animation and Special Effects 2 Haptic
More informationRay Tracing Acceleration. CS 4620 Lecture 20
Ray Tracing Acceleration CS 4620 Lecture 20 2013 Steve Marschner 1 Will this be on the exam? or, Prelim 2 syllabus You can expect emphasis on topics related to the assignment (Shaders 1&2) and homework
More informationCollision Detection. Pu Jiantao.
Collision Detection Pu Jiantao. 12-09 Content Introduction CD with rays Dynamic CD using BSP Trees Hierarchical Method OBBTree Method Some Other Topics 12-1717 2 Introduction Collision Collision is a fundamental
More informationAccelerating Geometric Queries. Computer Graphics CMU /15-662, Fall 2016
Accelerating Geometric Queries Computer Graphics CMU 15-462/15-662, Fall 2016 Geometric modeling and geometric queries p What point on the mesh is closest to p? What point on the mesh is closest to p?
More informationRay Tracing III. Wen-Chieh (Steve) Lin National Chiao-Tung University
Ray Tracing III Wen-Chieh (Steve) Lin National Chiao-Tung University Shirley, Fundamentals of Computer Graphics, Chap 10 Doug James CG slides, I-Chen Lin s CG slides Ray-tracing Review For each pixel,
More informationAccelerated Raytracing
Accelerated Raytracing Why is Acceleration Important? Vanilla ray tracing is really slow! mxm pixels, kxk supersampling, n primitives, average ray path length of d, l lights, 2 recursive ray casts per
More informationTopics. Ray Tracing II. Intersecting transformed objects. Transforming objects
Topics Ray Tracing II CS 4620 Lecture 16 Transformations in ray tracing Transforming objects Transformation hierarchies Ray tracing acceleration structures Bounding volumes Bounding volume hierarchies
More informationAnnouncements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday
Announcements Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday 1 Spatial Data Structures Hierarchical Bounding Volumes Grids Octrees BSP Trees 11/7/02 Speeding Up Computations
More informationAnti-aliased and accelerated ray tracing. University of Texas at Austin CS384G - Computer Graphics
Anti-aliased and accelerated ray tracing University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell eading! equired:! Watt, sections 12.5.3 12.5.4, 14.7! Further reading:! A. Glassner.
More informationRay Tracing. Cornell CS4620/5620 Fall 2012 Lecture Kavita Bala 1 (with previous instructors James/Marschner)
CS4620/5620: Lecture 37 Ray Tracing 1 Announcements Review session Tuesday 7-9, Phillips 101 Posted notes on slerp and perspective-correct texturing Prelim on Thu in B17 at 7:30pm 2 Basic ray tracing Basic
More informationCS535 Fall Department of Computer Science Purdue University
Spatial Data Structures and Hierarchies CS535 Fall 2010 Daniel G Aliaga Daniel G. Aliaga Department of Computer Science Purdue University Spatial Data Structures Store geometric information Organize geometric
More informationCollision Detection II. These slides are mainly from Ming Lin s course notes at UNC Chapel Hill
Collision Detection II These slides are mainly from Ming Lin s course notes at UNC Chapel Hill http://www.cs.unc.edu/~lin/comp259-s06/ Some Possible Approaches Geometric methods Algebraic techniques Hierarchical
More informationTopics. Ray Tracing II. Transforming objects. Intersecting transformed objects
Topics Ray Tracing II CS 4620 ations in ray tracing ing objects ation hierarchies Ray tracing acceleration structures Bounding volumes Bounding volume hierarchies Uniform spatial subdivision Adaptive spatial
More informationAnti-aliased and accelerated ray tracing. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell
Anti-aliased and accelerated ray tracing University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell Reading Required: Watt, sections 12.5.3 12.5.4, 14.7 Further reading: A. Glassner.
More informationLesson 05. Mid Phase. Collision Detection
Lesson 05 Mid Phase Collision Detection Lecture 05 Outline Problem definition and motivations Generic Bounding Volume Hierarchy (BVH) BVH construction, fitting, overlapping Metrics and Tandem traversal
More informationCollision Detection. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering
RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON S RBE 550 Collision Detection Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering http://users.wpi.edu/~zli11 Euler Angle RBE
More informationLecture 25 of 41. Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees
Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://bit.ly/hgvxlh / http://bit.ly/evizre Public
More informationLecture 11: Ray tracing (cont.)
Interactive Computer Graphics Ray tracing - Summary Lecture 11: Ray tracing (cont.) Graphics Lecture 10: Slide 1 Some slides adopted from H. Pfister, Harvard Graphics Lecture 10: Slide 2 Ray tracing -
More informationA Different Approach for Continuous Physics. Vincent ROBERT Physics Programmer at Ubisoft
A Different Approach for Continuous Physics Vincent ROBERT vincent.robert@ubisoft.com Physics Programmer at Ubisoft A Different Approach for Continuous Physics Existing approaches Our method Limitations
More informationCollision Detection based on Spatial Partitioning
Simulation in Computer Graphics Collision Detection based on Spatial Partitioning Matthias Teschner Computer Science Department University of Freiburg Outline introduction uniform grid Octree and k-d tree
More informationSpatial Data Structures and Speed-Up Techniques. Ulf Assarsson Department of Computer Science and Engineering Chalmers University of Technology
Spatial Data Structures and Speed-Up Techniques Ulf Assarsson Department of Computer Science and Engineering Chalmers University of Technology Exercises l Create a function (by writing code on paper) that
More informationComputer Graphics. - Spatial Index Structures - Philipp Slusallek
Computer Graphics - Spatial Index Structures - Philipp Slusallek Overview Last lecture Overview of ray tracing Ray-primitive intersections Today Acceleration structures Bounding Volume Hierarchies (BVH)
More informationINFOGR Computer Graphics. J. Bikker - April-July Lecture 11: Acceleration. Welcome!
INFOGR Computer Graphics J. Bikker - April-July 2015 - Lecture 11: Acceleration Welcome! Today s Agenda: High-speed Ray Tracing Acceleration Structures The Bounding Volume Hierarchy BVH Construction BVH
More informationSimulation in Computer Graphics Space Subdivision. Matthias Teschner
Simulation in Computer Graphics Space Subdivision Matthias Teschner Outline Introduction Uniform grid Octree and k-d tree BSP tree University of Freiburg Computer Science Department 2 Model Partitioning
More informationSpatial Data Structures and Acceleration Algorithms
Spatial Data Structures and Acceleration Algorithms Real-time Renderg Performance Goals Spatial Structures Boundg Volume Hierarchies (BVH) Bary Space Partiong(BSP) Trees, Octrees Scene Graphs Cullg Techniques
More informationAccelerating Ray-Tracing
Lecture 9: Accelerating Ray-Tracing Computer Graphics and Imaging UC Berkeley CS184/284A, Spring 2016 Course Roadmap Rasterization Pipeline Core Concepts Sampling Antialiasing Transforms Geometric Modeling
More informationComputer Graphics. - Ray-Tracing II - Hendrik Lensch. Computer Graphics WS07/08 Ray Tracing II
Computer Graphics - Ray-Tracing II - Hendrik Lensch Overview Last lecture Ray tracing I Basic ray tracing What is possible? Recursive ray tracing algorithm Intersection computations Today Advanced acceleration
More informationRay Tracing Acceleration. CS 4620 Lecture 22
Ray Tracing Acceleration CS 4620 Lecture 22 2014 Steve Marschner 1 Topics Transformations in ray tracing Transforming objects Transformation hierarchies Ray tracing acceleration structures Bounding volumes
More informationBounding Volume Hierarchies. CS 6965 Fall 2011
Bounding Volume Hierarchies 2 Heightfield 3 C++ Operator? #include int main() { int x = 10; while( x --> 0 ) // x goes to 0 { printf("%d ", x); } } stackoverflow.com/questions/1642028/what-is-the-name-of-this-operator
More informationRay Intersection Acceleration
Ray Intersection Acceleration CMPT 461/761 Image Synthesis Torsten Möller Reading Chapter 2, 3, 4 of Physically Based Rendering by Pharr&Humphreys An Introduction to Ray tracing by Glassner Topics today
More informationComputer Graphics (CS 543) Lecture 13b Ray Tracing (Part 1) Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)
Computer Graphics (CS 543) Lecture 13b Ray Tracing (Part 1) Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) Raytracing Global illumination-based rendering method Simulates
More informationUniversiteit Leiden Computer Science
Universiteit Leiden Computer Science Optimizing octree updates for visibility determination on dynamic scenes Name: Hans Wortel Student-no: 0607940 Date: 28/07/2011 1st supervisor: Dr. Michael Lew 2nd
More informationAdvanced Ray Tracing
Advanced Ray Tracing Thanks to Fredo Durand and Barb Cutler The Ray Tree Ni surface normal Ri reflected ray Li shadow ray Ti transmitted (refracted) ray 51 MIT EECS 6.837, Cutler and Durand 1 Ray Tree
More informationRecall: Inside Triangle Test
1/45 Recall: Inside Triangle Test 2D Bounding Boxes rasterize( vert v[3] ) { bbox b; bound3(v, b); line l0, l1, l2; makeline(v[0],v[1],l2); makeline(v[1],v[2],l0); makeline(v[2],v[0],l1); for( y=b.ymin;
More informationl Without collision detection (CD), it is practically impossible to construct e.g., games, movie production tools (e.g., Avatar)
Collision Detection Originally created by Tomas Akenine-Möller Updated by Ulf Assarsson Department of Computer Engineering Chalmers University of Technology Introduction l Without collision detection (CD),
More informationSecond degree equations - quadratics. nonparametric: x 2 + y 2 + z 2 = r 2
walters@buffalo.edu CSE 480/580 Lecture 20 Slide 1 Three Dimensional Representations Quadric Surfaces Superquadrics Sweep Representations Constructive Solid Geometry Octrees Quadric Surfaces Second degree
More informationKinetic BV Hierarchies and Collision Detection
Kinetic BV Hierarchies and Collision Detection Gabriel Zachmann Clausthal University, Germany zach@tu-clausthal.de Bonn, 25. January 2008 Bounding Volume Hierarchies BVHs are standard DS for collision
More informationCPSC GLOBAL ILLUMINATION
CPSC 314 21 GLOBAL ILLUMINATION Textbook: 20 UGRAD.CS.UBC.CA/~CS314 Mikhail Bessmeltsev ILLUMINATION MODELS/ALGORITHMS Local illumination - Fast Ignore real physics, approximate the look Interaction of
More informationSolid Modeling. Thomas Funkhouser Princeton University C0S 426, Fall Represent solid interiors of objects
Solid Modeling Thomas Funkhouser Princeton University C0S 426, Fall 2000 Solid Modeling Represent solid interiors of objects Surface may not be described explicitly Visible Human (National Library of Medicine)
More informationToday. Acceleration Data Structures for Ray Tracing. Cool results from Assignment 2. Last Week: Questions? Schedule
Today Acceleration Data Structures for Ray Tracing Cool results from Assignment 2 Last Week: koi seantek Ray Tracing Shadows Reflection Refraction Local Illumination Bidirectional Reflectance Distribution
More informationSpatial Data Structures. Steve Rotenberg CSE168: Rendering Algorithms UCSD, Spring 2017
Spatial Data Structures Steve Rotenberg CSE168: Rendering Algorithms UCSD, Spring 2017 Ray Intersections We can roughly estimate the time to render an image as being proportional to the number of ray-triangle
More informationLast Time: Acceleration Data Structures for Ray Tracing. Schedule. Today. Shadows & Light Sources. Shadows
Last Time: Acceleration Data Structures for Ray Tracing Modeling Transformations Illumination (Shading) Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion
More informationCollision Detection with Bounding Volume Hierarchies
Simulation in Computer Graphics Collision Detection with Bounding Volume Hierarchies Matthias Teschner Computer Science Department University of Freiburg Outline introduction bounding volumes BV hierarchies
More informationCS 563 Advanced Topics in Computer Graphics Culling and Acceleration Techniques Part 1 by Mark Vessella
CS 563 Advanced Topics in Computer Graphics Culling and Acceleration Techniques Part 1 by Mark Vessella Introduction Acceleration Techniques Spatial Data Structures Culling Outline for the Night Bounding
More informationRay-tracing Acceleration. Acceleration Data Structures for Ray Tracing. Shadows. Shadows & Light Sources. Antialiasing Supersampling.
Ray-tracing Acceleration Acceleration Data Structures for Ray Tracing Thanks to Fredo Durand and Barb Cutler Soft shadows Antialiasing (getting rid of jaggies) Glossy reflection Motion blur Depth of field
More informationLogistics. CS 586/480 Computer Graphics II. Questions from Last Week? Slide Credits
CS 586/480 Computer Graphics II Dr. David Breen Matheson 408 Thursday 6PM Æ 8:50PM Presentation 4 10/28/04 Logistics Read research paper and prepare summary and question P. Hanrahan, "Ray Tracing Algebraic
More informationRay Casting. 3D Rendering. Ray Casting. Ray Casting. Ray Casting. Ray Casting
Rendering Ray asting The color of each pixel on the view plane depends on the radiance emanating from visible surfaces dam inkelstein rinceton University OS 6, Spring 00 Simplest method is ray casting
More informationCollision detection. Piotr Fulma«ski. 1 grudnia
Collision detection Piotr Fulma«ski piotr@fulmanski.pl 1 grudnia 2016 Table of contents Collision in games Algorithms to detect collision in games depend on the type of shapes that can collide (e.g. rectangle
More informationAdvanced 3D-Data Structures
Advanced 3D-Data Structures Eduard Gröller, Martin Haidacher Institute of Computer Graphics and Algorithms Vienna University of Technology Motivation For different data sources and applications different
More informationRay Tracing. Computer Graphics CMU /15-662, Fall 2016
Ray Tracing Computer Graphics CMU 15-462/15-662, Fall 2016 Primitive-partitioning vs. space-partitioning acceleration structures Primitive partitioning (bounding volume hierarchy): partitions node s primitives
More informationBounding Volume Hierarchies
Tutorial: Real-Time Collision Detection for Dynamic Virtual Environments Bounding Volume Hierarchies Stefan Kimmerle WSI/GRIS University of Tübingen Outline Introduction Bounding Volume Types Hierarchy
More informationSpeeding Up Ray Tracing. Optimisations. Ray Tracing Acceleration
Speeding Up Ray Tracing nthony Steed 1999, eline Loscos 2005, Jan Kautz 2007-2009 Optimisations Limit the number of rays Make the ray test faster for shadow rays the main drain on resources if there are
More informationMSBVH: An Efficient Acceleration Data Structure for Ray Traced Motion Blur
MSBVH: An Efficient Acceleration Data Structure for Ray Traced Motion Blur Leonhard Grünschloß Martin Stich Sehera Nawaz Alexander Keller August 6, 2011 Principles of Accelerated Ray Tracing Hierarchical
More informationAcceleration Structures. CS 6965 Fall 2011
Acceleration Structures Run Program 1 in simhwrt Lab time? Program 2 Also run Program 2 and include that output Inheritance probably doesn t work 2 Boxes Axis aligned boxes Parallelepiped 12 triangles?
More informationChapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.
Chapter 11 Global Illumination Part 1 Ray Tracing Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.3 CG(U), Chap.11 Part 1:Ray Tracing 1 Can pipeline graphics renders images
More informationCollision detection. Piotr Fulma«ski. 19 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska
Collision detection Piotr Fulma«ski Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska 19 pa¹dziernika 2015 Table of contents Collision in games Algorithms to detect collision in games depend
More information9. Visible-Surface Detection Methods
9. Visible-Surface Detection Methods More information about Modelling and Perspective Viewing: Before going to visible surface detection, we first review and discuss the followings: 1. Modelling Transformation:
More informationRay Intersection Acceleration
Ray Intersection Acceleration Image Synthesis Torsten Möller Reading Physically Based Rendering by Pharr&Humphreys Chapter 2 - rays and transformations Chapter 3 - shapes Chapter 4 - intersections and
More informationPoint Cloud Filtering using Ray Casting by Eric Jensen 2012 The Basic Methodology
Point Cloud Filtering using Ray Casting by Eric Jensen 01 The Basic Methodology Ray tracing in standard graphics study is a method of following the path of a photon from the light source to the camera,
More informationDynamic Collision Detection
Distance Computation Between Non-Convex Polyhedra June 17, 2002 Applications Dynamic Collision Detection Applications Dynamic Collision Detection Evaluating Safety Tolerances Applications Dynamic Collision
More informationQuestions from Last Week? Extra rays needed for these effects. Shadows Motivation
CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM 8:50PM Presentation 4 4/22/08 Questions from Last Week? Color models Light models Phong shading model Assignment
More informationCS 431/636 Advanced Rendering Techniques
CS 431/636 Advanced Rendering Techniques Dr. David Breen University Crossings 149 Tuesday 6PM 8:50PM Presentation 4 4/22/08 Questions from Last Week? Color models Light models Phong shading model Assignment
More informationMODELING AND HIERARCHY
MODELING AND HIERARCHY Introduction Models are abstractions of the world both of the real world in which we live and of virtual worlds that we create with computers. We are all familiar with mathematical
More informationCS 465 Program 4: Modeller
CS 465 Program 4: Modeller out: 30 October 2004 due: 16 November 2004 1 Introduction In this assignment you will work on a simple 3D modelling system that uses simple primitives and curved surfaces organized
More informationRay Tracing with Spatial Hierarchies. Jeff Mahovsky & Brian Wyvill CSC 305
Ray Tracing with Spatial Hierarchies Jeff Mahovsky & Brian Wyvill CSC 305 Ray Tracing Flexible, accurate, high-quality rendering Slow Simplest ray tracer: Test every ray against every object in the scene
More informationSpeeding up your game
Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers (adapted by Marc Levoy from a lecture by Tomas Möller, using material
More informationComputer Graphics Ray Casting. Matthias Teschner
Computer Graphics Ray Casting Matthias Teschner Outline Context Implicit surfaces Parametric surfaces Combined objects Triangles Axis-aligned boxes Iso-surfaces in grids Summary University of Freiburg
More informationDetermination (Penentuan Permukaan Tampak)
Visible Surface Determination (Penentuan Permukaan Tampak) Visible Surface Determination 1/26 Outline Definisi VSD Tiga Kelas Algoritma VSD Kelas : Conservative Spatial Subdivison Bounding Volume Back
More informationCSG obj. oper3. obj1 obj2 obj3. obj5. obj4
Solid Modeling Solid: Boundary + Interior Volume occupied by geometry Solid representation schemes Constructive Solid Geometry (CSG) Boundary representations (B-reps) Space-partition representations Operations
More informationSimulation (last lecture and this one)
Simulation (last lecture and this one) How used in games? Dynamics Collisions simple ------------------------------- Collisions harder detection bounding boxes response Controllers Mocap + simulation User
More information6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, :05-12pm Two hand-written sheet of notes (4 pages) allowed 1 SSD [ /17]
6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, 2011 9:05-12pm Two hand-written sheet of notes (4 pages) allowed NAME: 1 / 17 2 / 12 3 / 35 4 / 8 5 / 18 Total / 90 1 SSD [ /17]
More informationRigid Body Simulation. Jeremy Ulrich Advised by David Mount Fall 2013
Rigid Body Simulation Jeremy Ulrich Advised by David Mount Fall 2013 Overview The project presented here is a real-time 3D rigid body physics engine, and is the result of an Independent Study on collision
More informationPrinciples of Computer Game Design and Implementation. Revision Lecture
Principles of Computer Game Design and Implementation Revision Lecture Introduction Brief history; game genres Game structure A series of interesting choices Series of convexities Variable difficulty increase
More informationCulling. Computer Graphics CSE 167 Lecture 12
Culling Computer Graphics CSE 167 Lecture 12 CSE 167: Computer graphics Culling Definition: selecting from a large quantity In computer graphics: selecting primitives (or batches of primitives) that are
More informationAccelerating Ray-Scene Intersection Calculations
ccelerating Ray-Scene Intersection alculations onnelly arnes S 80: Graphics cknowledgment: slides by Jason Lawrence, Misha Kazhdan, llison Klein, Tom unkhouser, dam inkelstein and avid obkin Overview cceleration
More informationDynamic Bounding Volume Hierarchies. Erin Catto, Blizzard Entertainment
Dynamic Bounding Volume Hierarchies Erin Catto, Blizzard Entertainment 1 This is one of my favorite Overwatch maps: BlizzardWorld. This is the spawn area inside the Hearthstone Tavern. 2 All the objects
More informationDrawing the Visible Objects
Drawing the Visible Objects We want to generate the image that the eye would see, given the objects in our space How do we draw the correct object at each pixel, given that some objects may obscure others
More informationMore Hidden Surface Removal
Lecture 8 More Hidden Surface Removal Efficient Painter - binary space partition (BSP) tree Efficient Ray Casting - spatial partitioning (uniform, octrees) - bounding volumes Recall last lecture... front
More informationLecture 2 - Acceleration Structures
INFOMAGR Advanced Graphics Jacco Bikker - November 2017 - February 2018 Lecture 2 - Acceleration Structures Welcome! I x, x = g(x, x ) ε x, x + න S ρ x, x, x I x, x dx Today s Agenda: Problem Analysis
More information2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into
2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into the viewport of the current application window. A pixel
More informationCláudia Ribeiro PHYSICS
Cláudia Ribeiro PHYSICS Cláudia Ribeiro Goals: - Colliders - Rigidbodies - AddForce and AddTorque Cláudia Ribeiro AVT 2012 Colliders Colliders components define the shape of an object for the purpose of
More informationFlowmap Generator Reference
Flowmap Generator Reference Table of Contents Flowmap Overview... 3 What is a flowmap?... 3 Using a flowmap in a shader... 4 Performance... 4 Creating flowmaps by hand... 4 Creating flowmaps using Flowmap
More informationVIII. Visibility algorithms (II)
VIII. Visibility algorithms (II) Hybrid algorithsms: priority list algorithms Find the object visibility Combine the operations in object space (examples: comparisons and object partitioning) with operations
More information