Computer Game Technology 3D Engines and Scene Graphs Spring 2012 Whats a 3d engine OGRE Core Class Structure University of Texas at Austin CS 378 Game Technology Don Fussell ID: 319357
Download Presentation The PPT/PDF document "CS 378:" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
CS 378: Computer Game Technology
3D Engines and Scene Graphs
Spring 2012Slide2
What’s a 3d engine
OGRE Core Class Structure
University of Texas at Austin CS 378 – Game Technology Don Fussell
2Slide3
What are the objects?
Geometry - polygon (triangle, quad) meshes
University of Texas at Austin CS 378 – Game Technology Don Fussell
3Slide4
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell
4
Hierarchical Modeling
How can you make articulated characters move in the world?
Move the whole character wrt the world
Move legs, arms, head wrt body
Move hands wrt arms
Move upper vs. lower arm
Same for legsSlide5
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 5
Symbols and instances
Most graphics APIs support a few geometric
primitives
:
spheres
cubes
triangles
These symbols are
instanced
using an
instance transformation
.Slide6
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 6
Use a series of transformations
Ultimately, a particular geometric instance is
transformed by one combined transformation matrix:
But it
’
s convenient to build this single matrix
from a series of simpler transformations:
We have to be careful about how we think
about composing these transformations.
(Mathematical reason: Transformation matrices
don
’
t commute under matrix multiplication)Slide7
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 7
Connecting primitivesSlide8
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 8
3D Example: A robot arm
Consider this robot arm with 3 degrees of freedom:
Base rotates about its vertical axis by
Upper arm rotates in its
xy
-plane by
Lower arm rotates in its
xy
-plane by
Q:
What matrix do we use to transform the base?
Q:
What matrix for the upper arm?
Q:
What matrix for the lower arm?
h
1
h
2
h
3
Base
Upper arm
Lower armSlide9
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 9
Hierarchical modeling
Hierarchical models can be composed of instances using trees or DAGs:
edges contain geometric transformations
nodes contain geometry (and possibly drawing attributes)
How might we draw the tree for the robot arm?Slide10
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 10
A complex example: human figure
Q:
What
’
s the most sensible way to traverse this tree?Slide11
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 11
Human figure implementation, OpenGL
figure()
{
torso();
glPushMatrix();
glTranslate( ... );
glRotate( ... );
head();
glPopMatrix();
glPushMatrix();
glTranslate( ... );
glRotate( ... );
left_upper_arm();
glPushMatrix();
glTranslate( ... );
glRotate( ... );
left_lower_arm();
glPopMatrix();
glPopMatrix();
. . .
}Slide12
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 12
Animation
The above examples are called
articulated models
:
rigid parts
connected by joints
They can be animated by specifying the joint angles (or other display parameters) as functions of time.Slide13
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 13
Key-frame animation
The most common method for character animation in production is
key-frame animation
.
Each joint specified at various
key frames
(not necessarily the same as other joints)
System does interpolation or
in-betweening
Doing this well requires:
A way of smoothly interpolating key frames:
splines
A good interactive system
A lot of skill on the part of the animatorSlide14
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 14
Scene graphs
The idea of hierarchical modeling can be extended to an entire scene, encompassing:
many different objects
lights
camera position
This is called a
scene tree
or
scene graph
.
Camera
Light1
Light2
Object2
Object3
Scene
Object1