![Page 1: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/1.jpg)
IMGD 4000 Technical Game Development II
Acceleration Structures
Robert W. Lindeman Associate Professor
Interactive Media & Game Development Human Interaction in Virtual Environments (HIVE) Lab
Department of Computer Science Worcester Polytechnic Institute
![Page 2: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/2.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
2
I Want More, More, More! Users want ever-increasing
Realism Graphical Behavioral Lighting
Interactivity with environments Numbers of characters
Hardware is always getting better But never fast enough!!!
![Page 3: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/3.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
3
I Want More, More, More! (cont.) Hardware will always lag behind needs Stated otherwise:
Needs always expand to fill a performance vacuum!
Need to better manage things Visibility calculation Texture (and other) mapping Can fake shadows Can pre-compute some reflections Lots of other tricks!!!!
![Page 4: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/4.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
4
Bottom Line Graphics cards can render a lot, very fast
But never as much, or as fast as we'd like!
Intelligent scene management allows us to squeeze more out of our limited resources Scene graphs Scene partitioning Visibility calculations Level of detail control
![Page 5: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/5.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
5
Scene Graphs A specification of object and attribute
relationships Spatial Hierarchical Material properties
Transformations Geometry Easy to attach objects together
Riding a vehicle
![Page 6: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/6.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
6
Scene Graphs (cont.) Can use instances to save resources
Geometry handles instead of geometry Texture handles
To take advantage of GPUs, reducing the amount of shader (cg) and texture switching is preferred
![Page 7: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/7.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
7
Geometry Sorting and Culling Keys to scene management
Render only what can be seen Render at a satisfactory, perceivable fidelity Pre-process what you can Use GPU as efficiently as you can
First-level View-frustum culling Back-face culling Bounding volumes
One or more acceleration structures can be used
![Page 8: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/8.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
8
Acceleration Structures Many structures exist
Appropriateness depends on the scene, and the game (e.g., dynamic objects)
Geometry partitioning Bounding boxes/spheres/capsules
Space partitioning Uniform Grid Quad/Oct Tree Binary-Space Partitioning (BSP) trees k-d trees
Speed up of 10x, 100x, or more!
![Page 9: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/9.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
9
Acceleration Structures (cont.) Hierarchical bounding structures
Test if parent is visible If not, then none of its children are If so, then recursively check the children
Could use information about your application to optimize approach Many interior levels have cells and portals No need to solve the general problem, just the
specific one
![Page 10: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/10.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
10
Acceleration Structures - Geometry Partitioning Bounding boxes/spheres/capsules Axis-aligned Bounding Boxes (ABB) Oriented Bounding Boxes (OBB) Discrete Oriented Polytope (DOP)
Polytope: 2D = polygon, 3D = polyhedron k-DOP: k planes in a DOP Common: 6-DOP (AABB), 10-DOP, 18-DOP,
24-DOP
Bounding-Volume Hierarchies (BVHs)
![Page 11: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/11.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
11
Acceleration Structures - Space Partitioning Uniform Grids
Split space up into equal sized (or an equal number of) cells
Quad (Oct) Trees Recursively split space into 4 (8) equal-sized
regions
Binary-Space Partitioning (BSP) trees Recursively divide space along a single,
arbitrary plane
k-dimensional trees (k-d trees) Recursively split along axes
![Page 12: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/12.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
12
Bounding Volumes Objects could have fairly complex shapes Wrap complex objects in simple ones
Boxes (axis-aligned, or oriented) Spheres Capsules Finite intersections or unions of above
Do bounding volumes collide? No = do nothing Yes = Calculate intersection points, forces,
etc.
![Page 13: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/13.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
13
Selection of Bounding Volumes Effectiveness depends on
Probability that bounding volume is contacted, but not enclosed object (tight fit is better)
Expense to calculate intersections with bounding volumes and enclosed objects
Good
Bad
![Page 14: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/14.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
14
Hierarchical Bounding Volumes Simple bounding volume testing for a
single object can require O(n) intersection tests
Use a tree structure instead Larger bounding volumes contain smaller ones Sometimes naturally available (e.g., human
figure) Sometimes difficult to compute
Often reduces complexity to O(log(n))
![Page 15: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/15.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
15
Object Collision Algorithm Recursively descend tree If no intersection with bounding volume,
no collision If intersection with bounding volume,
recurse with enclosed volumes and objects Maintain near and far bounds to prune
further Overall effectiveness depends on model
and constructed hierarchy
![Page 16: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/16.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
16
Spatial Subdivision Bounding volumes enclose objects
recursively Why not divide the space instead? For each segment of space, keep list of
intersecting surfaces or objects Basic technique
Regular grids Octrees (axis-aligned, non-uniform partition) BSP trees (recursive Binary Space Partitions)
![Page 17: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/17.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
17
Regular Grids 3D array of voxels, list of surfaces
intersecting cell
![Page 18: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/18.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
18
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
Non-uniform spatial subdivision more flexible Can adjust to objects that are present
![Page 19: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/19.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
19
Quadtrees Generalization of binary trees in 2D
Node (cell) is a square Recursively split into 4 equal sub-squares Stop subdivision based on number of objects
More difficult to step to next cell
![Page 20: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/20.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
20
Octrees Generalization of quadtree in 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 non-homogeneous scenes
![Page 21: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/21.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
21
Assessment for Collision Detection Grids
Easy to implement Require a lot of memory Poor results for non-homogeneous scenes
Octrees Better on most scenes (more adaptive)
Alternative: nested grids Spatial subdivision expensive for animations Hierarchical bounding volumes
Natural for hierarchical objects Better for dynamic scenes
![Page 22: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/22.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
22
Other Spatial-Subdivision Techniques Relax rules for quadtrees and octrees K-Dimensional tree (K-D Tree)
Split at arbitrary interior point Split one dimension at a time (Horiz./Vert.)
Binary space partitioning tree (BSP Tree) In two dimensions, split with any line In K dimensions, split with K-1-dimensional hyperplane Particularly useful for painter’s algorithm Can also be used for ray tracing
![Page 23: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/23.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
23
BSP Trees Inherent spatial ordering given viewpoint
Left subtree: in front, right subtree: behind
Problem: finding good space partitions Proper ordering for balanced tree
http://symbolcraft.com/graphics/bsp/
![Page 24: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/24.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
24
Cell-Portal Visibility Keep track of which cell the object is in Somehow enumerate all reachable regions Cell-based
Preprocess to identify the potentially visible set for each cell
![Page 25: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/25.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
25
Putting it all Together The "best" solution will be a combination
Static things Oct-tree for terrain Cells and portals for interior structures
Dynamic things Quick reject using bounding spheres BVHs for objects
Balance between pre-computation and run-time computation
![Page 26: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/26.jpg)
Reduce, Reuse, Recycle! These approaches can be used all over the
place in graphics and animation Ray tracing (e.g., intersections) Collision detection Visibility calculation Behavioral animation
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
26
![Page 27: IMGD 4000 Technical Game Development II Acceleration ...web.cs.wpi.edu/~gogo/courses/imgd4000_2014d/slides/imgd4000_0… · Interactive Media & Game Development! 8! Acceleration Structures](https://reader035.vdocuments.net/reader035/viewer/2022063002/5f27da6edb41485c1d185928/html5/thumbnails/27.jpg)
R.W. Lindeman - WPI Dept. of Computer Science Interactive Media & Game Development
27
References http://www.cs.wisc.edu/graphics/Courses/679-f2003/