Download presentation
Presentation is loading. Please wait.
Published byCharleen Jennings Modified over 9 years ago
1
Managing Your Objects Paul Taylor 2009 Assignment Due Fri 5/6/2009
2
What is an Object A Bunch of Polygons (or one), or a Sprite Each Object can have: – A Translation – A Rotation – A Scale – A Shear (not super common)
3
Our Test Objects A Sweet Car!
4
The Simplest Representation Car Body Translation, Rotation and Scale Wheel 1 Translation, Rotation and Scale Wheel 2 Translation, Rotation and Scale
5
Scale Rotate Translate Scale Rotate Translate Scale Rotate Translate
6
Using Hierarchical Objects
7
With our Matricies Scale Rotate Translate Scale Rotate Translate Scale Rotate Translate
8
Directed Acyclic Graphs (DAG) Technically this is a Specialised case of a Directed Graph The rule is there are no paths that start at a vertex and end at the same vertex (No Loops)
9
What is the benefit? We can Reuse Objects Cars have four wheels A flock of birds may all be the same A turret may have 4 Cannons
10
Sweet Car utilising a DAG
11
Connecting All your Objects We are creating a Scene Graph
12
In effect Object Storage Looks Like Root Child 1 Child 2Sibling 1Sibling 2 Sibling 2 Child 1 Sibling 2 Child 2 Sibling 2 Child 2 Sibling 1 Child 3
13
Creating Bounding Boxes BBs are typically used For Collision Detection With a Hierarchical Object generation can still be relatively simple. Outlier detection in X Y Z and –X-Y-Z directions A Bounding Sphere simply needs the most distant vertex from the Object Center More Complicated routines can be used, or you can use a Human!
14
Constructive Geometry Not generally used during real time renders Consist of using Logical Operators on Polygon Objects to combine them – Intersections, Unions and Difference A Typical Use of Constructive Geometry is in 3D Game Level creation and CAD Design
15
Constructive Solid Geometry CSG http://dic.academic.ru/pictures/enwiki/67/Csg_tree.png
16
http://brlcad.org/gallery/d/242-3/csg_example.png
17
We have our Objects Nicely packed Why? To Create Structures that define the 3D Worlds we are creating Intersecting the Bounding Boxes/Spheres in the game world is much faster. Once we know that 2 objects intersect (via BB collision) we can go deeper into the collision (If needed)
18
Space Subdivision We have already covered BSP Trees, now we will look at 1 1/2 more Space Partitioning methods Oct-Trees KD-Trees
19
Quad-Trees Quad Trees are the 2D baby brother of Oct Trees Computationally similar, conceptually easier Space is Divided into 4 areas If more than one object exists in a region it is again subdivided into 4 sub-regions, and so on….
20
http://acm.pku.edu.cn/JudgeOnline/images/1610_1.jpg
22
http://www.directionsmag.com/images/articl es/spatialDBMS/quadtree.gif http://www.directionsmag.com/images/articl es/spatialDBMS/quadtree.gif
23
Oct-Trees http://en.wikipedia.org/wiki/File:Octree2.png
24
http://www.cs.ucl.ac.uk/research/equator/papers/Documents2002 /Jean-Daniel_Nahmias/Massive_Model_Rendering.htm http://www.cs.ucl.ac.uk/research/equator/papers/Documents2002 /Jean-Daniel_Nahmias/Massive_Model_Rendering.htm
25
KD-Trees A specialisation of Binary Trees (Similar to BSP Trees) In a similar way to Oct Trees a KD Tree splits space in an Axis Aligned Fashion. Different to Oct-Trees a KD Tree does not always split the world into even parts
26
KD-Trees http://en.wikipedi a.org/wiki/Kd-tree
27
http://www- hpcc.astro.washington.edu/old_content/papers/marios/perform/n ode3.html http://www- hpcc.astro.washington.edu/old_content/papers/marios/perform/n ode3.html
28
What else can you do? Oct-Trees and KD-Trees can be used for: – View Frustum Culling – Occlusion Culling – Level of Detail Detection – Spatial Indexing (Similar to a BSP Tree) – Ray Casting
29
Bringing it all together You organise all of your objects – Binary Tree, Object Tree, Hash Table etc You have a method of generating Collisions – Firstly by Simplifying objects Bounding Boxes, Spheres – Secondly by finding Collisions between objects Oct-Trees, KD-Trees – Thirdly we can check the collision of the actual objects if required Finally we need to do something appropriate with the collision!
30
That’s a lot of work!
31
Open Scene Graph (OSG) http://www.openscenegraph.org/ Multipass Object Grouping and Ordering Middleware that does Object Handling Things you could do with it: Prototyping Offline Rendering A Sluggish Game
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.