Presentation is loading. Please wait.

Presentation is loading. Please wait.

Managing Your Objects Paul Taylor 2009 Assignment Due Fri 5/6/2009.

Similar presentations


Presentation on theme: "Managing Your Objects Paul Taylor 2009 Assignment Due Fri 5/6/2009."— Presentation transcript:

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

21

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


Download ppt "Managing Your Objects Paul Taylor 2009 Assignment Due Fri 5/6/2009."

Similar presentations


Ads by Google