Parts of these slides are based on

Slides:



Advertisements
Similar presentations
2.5. B ASIC P RIMITIVE I NTERSECTION Details of common forms of primitive intersection test.
Advertisements

Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
Intersection Testing Chapter 13 Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology.
CSE 681 Bounding Volumes. CSE 681 Bounding Volumes Use simple volume enclose object(s) tradeoff for rays where there is extra intersection test for object.
2.3. B OUNDING V OLUMES Bounding volumes of use for collision detection.
Chapter 4.2 Collision Detection and Resolution. 2 Collision Detection Complicated for two reasons 1. Geometry is typically very complex, potentially requiring.
Collision Detection CSCE /60 What is Collision Detection?  Given two geometric objects, determine if they overlap.  Typically, at least one of.
Collision Detection and Resolution Zhi Yuan Course: Introduction to Game Development 11/28/
Computer graphics & visualization Collisions. computer graphics & visualization Simulation and Animation – SS07 Jens Krüger – Computer Graphics and Visualization.
Geometry Primer Lines and rays Planes Spheres Frustums Triangles Polygon Polyhedron.
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.
Extended Gaussian Images
Computational Geometry & Collision detection
Week 14 - Monday.  What did we talk about last time?  Bounding volume/bounding volume intersections.
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
Review Methods for convex polytopes See video demonstration
Collision Detection CSE 191A: Seminar on Video Game Programming Lecture 3: Collision Detection UCSD, Spring, 2003 Instructor: Steve Rotenberg.
Bounding Volume Hierarchy “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presented by Mathieu Brédif.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Continuous Collision Detection David Knott COMP 259 class presentation.
OBBTree: A Hierarchical Structure for Rapid Interference Detection Gottschalk, M. C. Lin and D. ManochaM. C. LinD. Manocha Department of Computer Science,
Bounding Volume Hierarchies and Spatial Partitioning Kenneth E. Hoff III COMP-236 lecture Spring 2000.
Apex Point Map for Constant-Time Bounding Plane Approximation Samuli Laine Tero Karras NVIDIA.
1 Advanced Scene Management System. 2 A tree-based or graph-based representation is good for 3D data management A tree-based or graph-based representation.
Collision Detection David Johnson Cs6360 – Virtual Reality.
Computer graphics & visualization Collision Detection – Narrow Phase.
Week 13 - Wednesday CS361.
12/4/2001CS 638, Fall 2001 Today Using separating planes/axes for collision testing Collision detection packages.
CIS 350 – I Game Programming Instructor: Rolf Lakaemper.
Spatial Data Structures Jason Goffeney, 4/26/2006 from Real Time Rendering.
CSE 381 – Advanced Game Programming Quickhull and GJK.
Collision handling: detection and response
Week 13 - Friday.  What did we talk about last time?  Ray/sphere intersection  Ray/box intersection  Slabs method  Line segment/box overlap test.
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Collisions & Contact.
Week 13 - Monday.  What did we talk about last time?  Exam 2!  Before that…  Polygonal techniques ▪ Tessellation and triangulation  Triangle strips,
Quaternions Paul Taylor Swizzle What is a swizzle?
PRESENTED BY – GAURANGI TILAK SHASHANK AGARWAL Collision Detection.
Collaborative Visual Computing Lab Department of Computer Science University of Cape Town Graphics Topics in VR By Shaun Nirenstein.
1 KIPA Game Engine Seminars Jonathan Blow Ajou University December 6, 2002 Day 10.
CIS 350 – I Game Programming Instructor: Rolf Lakaemper.
Computer Game Design and Development
Chapter 11 Collision Detection 가상현실 입문 그래픽스 연구실 민성환.
Advanced Computer Graphics Spring 2009
Presented by Paul Phipps
David Luebke 3/5/2016 Advanced Computer Graphics Lecture 4: Faster Ray Tracing David Luebke
1 Geometry for Game. Geometry Geometry –Position / vertex normals / vertex colors / texture coordinates Topology Topology –Primitive »Lines / triangles.
CS552: Computer Graphics Lecture 28: Solid Modeling.
Week 13 - Wednesday CS361.
Bounding Volume Hierarchies and Spatial Partitioning
Distance Computation “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presentation by Julie Letchner.
Collision Detection Spring 2004.
Bounding Volume Hierarchies and Spatial Partitioning
Deformable Collision Detection
Modeliranje kompleksnih modelov
3D Object Representations
Collision handling: detection and response
CMSC 635 Ray Tracing.
Implementation II Ed Angel Professor Emeritus of Computer Science
2.5. Basic Primitive Intersection
References Collision Detection between Geometric Models: A Survey, by M. Lin and S. Gottschalk, Proc. of IMA Conference on Mathematics of Surfaces 1998.
Motion in Real and Virtual Worlds
INTERACTION TECHNIQUES
Computer Animation Algorithms and Techniques
Introduction to Computer Graphics with WebGL
Collision Detection.
Deformable Collision Detection
BVH Student: Jack Chang.
David Johnson Cs6360 – Virtual Reality
Modeliranje kompleksnih modelov
Implementation II Ed Angel Professor Emeritus of Computer Science
GPAT – Chapter 7 Physics.
Presentation transcript:

Parts of these slides are based on Introduction To Collision Detection Parts of these slides are based on www2.informatik.uni-wuerzburg.de/ mitarbeiter/holger/lehre/osss02/schmidt/vortrag.pdf by Jakob Schmidt

The search for intersecting planes of different 3D models in a scene. What ? The problem: The search for intersecting planes of different 3D models in a scene. Collision Detection is an important problem in fields like computer animation, virtual reality and game programming.

The problem can be defined as Intro The problem can be defined as if, where and when two objects intersect.

This introduction will deal with the basic problem: IF two (stationary) objects intersect.

Pairwise collision check of all polygons the objects are made of. Intro The simple solution: Pairwise collision check of all polygons the objects are made of.

Problem: complexity O(n²) Intro Problem: complexity O(n²) not acceptable for reasonable number n of polygons not applicable for realtime application

Solution: Bounding Volumes Reduce complexity of collision computation by substitution of the (complex) original object with a simpler object containing the original one.

Bounding Volumes The original objects can only intersect if the simpler ones do. Or better: if the simpler objects do NOT intersect, the original objects won’t either.

How to choose BVs ? Object approximation behavior (‘Fill efficiency’) Bounding Volumes How to choose BVs ? Object approximation behavior (‘Fill efficiency’) Computational simplicity Behavior on (non linear !) transformation (incl. deformation) Memory efficiency

Different BVs used in game programming: Bounding Volumes Different BVs used in game programming: Axes Aligned Bounding Boxes (AABB) Oriented Bounding Boxes (OBB) Spheres k-Discrete Oriented Polytopes (k DOP) Sphere OBB k-DOP AABB

Axes Aligned Bounding Box (AABB) Bounding Volumes Axes Aligned Bounding Box (AABB) Align axes to the coordinate system Simple to create Computationally efficient Unsatisfying fill efficiency Not invariant to basic transformations, e.g. rotation

Oriented Bounding Box (OBB) Bounding Volumes Oriented Bounding Box (OBB) Align box to object such that it fits optimally in terms of fill efficiency Computationally expensive Invariant to rotation Complex intersection check

The overlap test is based on the Separating Axes Theorem Bounding Volumes The overlap test is based on the Separating Axes Theorem (S. Gottschalk. Separating axis theorem. Technical Report TR96-024,Department of Computer Science, UNC Chapel Hill, 1996) Two convex polytopes are disjoint iff there exists a separating axis orthogonal to a face of either polytope or orthogonal to an edge from each polytope.

Separating Axes Theorem Bounding Volumes Separating Axes Theorem Axes

Check for overlap on every single Axis (project polygon to axis). Bounding Volumes Check for overlap on every single Axis (project polygon to axis). Two polygons intersect, if their projections overlap on EVERY axis.

On the y-axis, all boxes overlap Bounding Volumes Overlap check on single axis: Sort and Sweep (Example for xy-axis aligned boxes) sort 1 2 3 On the y-axis, all boxes overlap

On the x-axis, boxes 2-3 and 3-1 overlap Bounding Volumes Overlap check on single axis: Sort and Sweep 1 2 3 sort On the x-axis, boxes 2-3 and 3-1 overlap

Combine overlap check of single axes: Bounding Volumes Combine overlap check of single axes: x 1 2 3 y 1 2 3 = 1 2 3

Sphere Relatively complex to compute Bad fill efficiency Bounding Volumes Sphere Relatively complex to compute Bad fill efficiency Simple overlap test invariant to rotation

Not invariant to rotation Bounding Volumes K-DOP Easy to compute Good fill efficiency Simple overlap test Not invariant to rotation

k-DOP is considered to be a trade off between AABBs and OBBs. Bounding Volumes k-DOP is considered to be a trade off between AABBs and OBBs. Its collision check is a general version of the AABB collision check, having k directions

k-DOPs are used e.g. in the game (XBOX, Pseudo Interactive, 2002) Bounding Volumes k-DOPs are used e.g. in the game ‘Cell Damage’ (XBOX, Pseudo Interactive, 2002)

k-directions How to Compute and Store k-DOPs: Bounding Volumes How to Compute and Store k-DOPs: k-directions k-directions Bi define planes (Bi is the normal to plane i) , the intersection of these planes defines the k-DOP bounding volume. Plane Pi = {x | Bi x – di <= 0} (-> Hesse Normal Form)

3D Example: UNREAL-Engine Bounding Volumes 3D Example: UNREAL-Engine

2D Example for planes defining a k-DOP Bounding Volumes 2D Example for planes defining a k-DOP Normal vector Bi

Collision on different scales: Bounding Volumes Collision on different scales: Hierarchies

Hierarchies Idea: To achieve higher exactness in collision detection, build a multiscale BV representation of the object

Hierarchies

Hierarchies Use the hierarchy from coarse to fine resolution to exclude non intersecting objects

The hierarchy is stored in a tree, named by the underlying BV scheme: Hierarchies The hierarchy is stored in a tree, named by the underlying BV scheme: AABB – tree OBB – tree Sphere – tree kDOP – tree

Sphere Trees are used for example in Hierarchies Sphere Trees are used for example in “Gran Tourismo”

Each node contains all primitives of its subtree Hierarchies Simple example: Binary tree Each node contains all primitives of its subtree Leaves contain single primitive

Hierarchies

Hierarchies

Hierarchies Comparison AABB / OBB