Midterm Review CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004

download Midterm Review CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004

of 57

  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    216
  • download

    3

Embed Size (px)

Transcript of Midterm Review CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004

  • Slide 1
  • Midterm Review CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004
  • Slide 2
  • Project 3 Load an.anim file and play back a keyframed animation on a skinned character Extra Credit: Display the channel curve (1 point) Simple channel editor (2 points)
  • Slide 3
  • Anim File animation { range [time_start] [time_end] numchannels [num] channel { extrapolate [extrap_in] [extrap_out] keys [numkeys] { [time] [value] [tangent_in] [tangent_out] } channel }
  • Slide 4
  • Project 3 The first 3 channels will be the root translation (x,y,z) After that, there will be 3 rotational channels for every joint (x,y,z) in the same order that the joints are listed in the.skel file
  • Slide 5
  • Project 3 Suggested classes: Keyframe: stores time, value, tangents, cubics Channel: stores an array (or list) of Keyframes Animation: stores an array of Channels Player: stores pointer to an animation & pointer to skeleton. Keeps track of time, accesses animation data & poses the skeleton. Optional: Rig: simple container for a skeleton, skin, and morphs Pose: array of floats (or just use stl vector) ChannelEditor: its always nice to separate editor classes from the data that they edit
  • Slide 6
  • Linear Algebra Review
  • Slide 7
  • Key Math Concepts Vectors (dot & cross products) Matrices (& systems of equations) Homogeneous vectors & matrices Transformations, inverse transformations Viewing, cameras Euler angles Quaternions Summation (weighted sum, average, convex) Cubic equations Interpolation, splines, radial basis functions
  • Slide 8
  • Vector Arithmetic
  • Slide 9
  • Vector Magnitude The magnitude (length) of a vector is: Unit vector (magnitude=1.0)
  • Slide 10
  • Dot Product
  • Slide 11
  • Example: Angle Between Vectors How do you find the angle between vectors A and B? a b
  • Slide 12
  • Example: Angle Between Vectors a b
  • Slide 13
  • Dot Products with Unit Vectors b a ab = 0 0 < ab < 1 ab = -1 ab = 1 -1 < ab < 0 ab
  • Slide 14
  • Dot Products with Non-Unit Vectors If a and b are arbitrary (non-unit) vectors, then the following are still true: If 0 If = 90 then a b = 0 If > 90 then a b < 0
  • Slide 15
  • Dot Products with One Unit Vector a u au If |u|=1.0 then au is the length of the projection of a onto u
  • Slide 16
  • Example: Distance to Plane A plane is described by a point p on the plane and a unit normal n. Find the distance from point x to the plane p n x
  • Slide 17
  • Example: Distance to Plane The distance is the length of the projection of x-p onto n: p n x x-p
  • Slide 18
  • Cross Product
  • Slide 19
  • Properties of the Cross Product area of parallelogram ab is perpendicular to both a and b, in the direction defined by the right hand rule if a and b are parallel
  • Slide 20
  • Example: Area of a Triangle Find the area of the triangle defined by 3D points a, b, and c a b c
  • Slide 21
  • Example: Area of a Triangle b-a c-a a b c
  • Slide 22
  • Matrices
  • Slide 23
  • Example: Alignment to Target A spaceship with a matrix M must target another ship with matrix N. Find a unit rotation axis u and an angle that will rotate M to be facing N a b c d M a b c d N
  • Slide 24
  • Example: Alignment to Target As objects are defined looking down the -z axis in their local space, the -c axis of their world matrix will represent the objects heading a b c d M a b c d N heading
  • Slide 25
  • Example: Alignment to Target Therefore, we want to rotate matrix M so that its c axis lines up with the vector going from N to M, or (M.d - N.d) (M.d-N.d) a b c d M a b c d N
  • Slide 26
  • Example: Alignment to Target We will rotate around the axis perpendicular to both M.c and (M.d - N.d) a b c d M a b c d N (M.d-N.d) u
  • Slide 27
  • Example: Alignment to Target The rotation angle is just the angle between M.c and (M.d - N.d) a b c d M a b c d N (M.d-N.d) u
  • Slide 28
  • Orthonormality If all row vectors and all column vectors of a matrix are unit length, that matrix is said to be orthonormal This also implies that all vectors are perpendicular to each other Orthonormal matrices have some useful mathematical properties, such as: M -1 = M T
  • Slide 29
  • Orthonormality If a 4x4 matrix represents a rigid transformation, then the upper 3x3 portion will be orthonormal
  • Slide 30
  • Matrix Dot Matrix
  • Slide 31
  • Camera Matrix Think of the camera just like any other object. Just as a chair model has a matrix W that transforms it into world space, the camera matrix C would transform a camera model into world space. We dont want to transform the camera into world space. Instead, we want to transform the world into the cameras space, so we use the inverse of C.
  • Slide 32
  • Example: Camera Look At Our eye is located at position e and we want to look at a target at position t. Generate an appropriate camera matrix M.
  • Slide 33
  • Example: Camera Look At Our eye is located at position e and we want to look at a target at position t. Generate an appropriate camera matrix M. Two possible approaches include: Measure angles and rotate matrix into place Construct a,b,c, & d vectors of M directly
  • Slide 34
  • Example: Camera Look At Matrix The d vector is just the position of the camera, which is e: The c vector is a unit length vector that points directly behind the viewer:
  • Slide 35
  • Example: Camera Look At Matrix The a vector is a unit length vector that points to the right of the viewer. It is perpendicular to the c axis. To keep the camera from rolling, we also want the a vector to lay flat in the xz-plane, perpendicular to the y-axis. Note that a cross product with the y-axis can be optimized as follows:
  • Slide 36
  • Example: Camera Look At Matrix The b vector is a unit length vector that points up relative to the viewer. It is perpendicular to the both the c and a axes Note that b does not need to be normalized because it is already unit length. This is because a and c are unit length vectors 90 degrees apart.
  • Slide 37
  • Example: Camera Look At Matrix Summary:
  • Slide 38
  • Inversion If M transforms v into world space, then M -1 transforms v back into local space
  • Slide 39
  • Homogeneous Vectors Technically, homogeneous vectors are 4D vectors that get projected into the 3D w=1 space
  • Slide 40
  • Homogeneous Vectors Vectors representing a position in 3D space can just be written as: Vectors representing direction are written: The only time the w coordinate will be something other than 0 or 1 is in the projection phase of rendering, which is not our problem
  • Slide 41
  • Position Vector Dot Matrix
  • Slide 42
  • v=(.5,.5,0,1) x y Local Space (0,0,0)
  • Slide 43
  • Position Vector Dot Matrix v=(.5,.5,0,1) x y Local Space (0,0,0) x y World Space (0,0,0) a b d Matrix M
  • Slide 44
  • Position Vector Dot Matrix v=(.5,.5,0,1) x y Local Space (0,0,0) x y World Space (0,0,0) a b d vv
  • Slide 45
  • Direction Vector Dot Matrix
  • Slide 46
  • Matrix Dot Matrix (4x4) The row vectors of M are the row vectors of M transformed by matrix N Notice that a, b, and c transform as direction vectors and d transforms as a position
  • Slide 47
  • Quaternions In computer animation, quaternions are used as an alternative way to store orientations (other than matrices & Euler angles) One of their biggest advantages is their ability to interpolate between arbitrary orientations nicely They are also a compact, fast way to store & manipulate orientations As we generally require matrices at some point, the ability to convert a quaternion to/from a matrix is very important Once in quaternion format, we can interpolate smoothly using slerp (spherical linear interpolation), or construct quaternion curves through several orientations
  • Slide 48
  • Weighted Blending & Averaging Weighted sum: Weighted average: Convex average: Additive blend:
  • Slide 49
  • Rigging & Animation Review
  • Slide 50
  • Rigging & Animation Concepts Rigging DOF Joint Skeleton Skin Morphing, PSD FFD, SOFFD Rig Animation Pose Keyframe Channel Animation Clip Player Blender State Machine
  • Slide 51
  • Rigging and Animation Animation System Pose Rigging System Triangles Renderer
  • Slide 52
  • Rig Data Flow Rigging System
  • Slide 53
  • Rigging Equations Skeleton Morphing Skinning
  • Slide 54
  • Skeleton, Morph, & Skin Data Flow
  • Slide 55
  • Skeleton Forward Kinematics Every joint computes a local matrix bas