University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology 3D Engines and Scene Graphs Spring 2012What’s a 3d engine ! OGRE Core Class Structure University of Texas at Austin CS 378 – Game Technology Don Fussell 2What are the objects? ! Geometry - polygon (triangle, quad) meshes University of Texas at Austin CS 378 – Game Technology Don Fussell 3University 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 legsUniversity 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.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)University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 7 Connecting primitivesUniversity 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? h1!h2!h3!Base Upper arm Lower armUniversity 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?!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?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();! . . .!}!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.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 animatorUniversity 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
View Full Document