CS 352: Computer Graphics - PowerPoint PPT Presentation

About This Presentation
Title:

CS 352: Computer Graphics

Description:

Animation. Data structures. for interactive. graphics. CSG ... the animation (kinematics) Interactive Computer Graphics. Chapter 9 - 33. Inverse Kinematics ... – PowerPoint PPT presentation

Number of Views:218
Avg rating:3.0/5.0
Slides: 74
Provided by: harrypl
Learn more at: http://web.cecs.pdx.edu
Category:

less

Transcript and Presenter's Notes

Title: CS 352: Computer Graphics


1
CS 352 Computer Graphics
Hierarchical Graphics, Modeling, And Animation
2
Overview
  • Modeling
  • Animation
  • Data structures for interactive graphics
  • CSG-tree
  • BSP-tree
  • Quadtrees and Octrees
  • Visibility precomputation
  • Many figures and examples in this set of lectures
    are from The Art of 3D Computer Animation and
    Imaging, by I. Kerlow

3
Modeling
  • The modeling problem
  • Modeling primitives
  • Polygon
  • Sphere, ellipsoid, torus, superquadric
  • NURBS, surfaces of revolutions, smoothed polygons
  • Particles
  • Skin bones
  • Approaches to modeling complex shapes
  • Tools such as extrude, revolve, loft, split,
    stitch, blend
  • Constructive solid geometry (CSG)
  • Hierarchy kinematic joints
  • Inverse kinematics
  • Keyframes

4
Representing objects
  • Objects represented as symbols
  • Defined in model coordinates transformed into
    world coordinates (M TRS)
  • glMatrixMode(GL_MODELVIEW)
  • glLoadIdentity() glTranslatef()
  • glRotatef() glScalef()
  • glutSolidCylinder()

5
Primitives
  • The basic sort of primitive is the polygon
  • Number of polygons tradeoff between render time
    and model accuracy

6
(No Transcript)
7
SplineCurves
  • Linear spline
  • Cardinal spline
  • B-spline
  • Bezier curve
  • NURBS (non-uniform rational b-spline)

8
Mesh
9
Mesh deformations
10
Sweep
  • Sweep a shape over a path to form a generalized
    cylinder

11
Revolution
  • Revolve a shape around an axis to create an
    object with rotational symmetry

12
Extrusion
  • Extrude grow a 2D shape in the third dimension
  • Shape is created with a (1D)b-spline curves
  • Hole was created by subtracting a cylinder

13
(No Transcript)
14
Joining Primitives
  • Stitching, blending

15
Modifying Primitives
16
Subdivision Surfaces
  • Can set level of polygon subdivision

17
(No Transcript)
18
(No Transcript)
19
(No Transcript)
20
Skin and Bones
  • Skeleton with joined bones
  • Can add skin on top of bones
  • Automatic or hand-tunedskinning

21
(No Transcript)
22
Particles
23
Algorithmic Primitives
Algorithms for trees, mountains, grass, fur,
lightning, fire,
24
(No Transcript)
25
Geometric model file formats
  • .obj Alias Wavefront
  • .dxf Autocad
  • .vrml Inventor
  • Dozens more
  • Can convert between formats
  • Converting to a common format may lose info

26
Hierarchical models
  • When animation is desired, objects may have parts
    that move with respect to each other
  • Object represented as hierarchy
  • Often there are joints with motion constraints
  • E.g. represent wheels of car as sub-objects with
    rotational motion (car moves 2 pi r per rotation)

27
(No Transcript)
28
DAG models
  • Could use tree torepresent object
  • Actually, a DAG (directed acyclicgraph) is
    better can re-use objects
  • Note that each arrow needs aseparate modeling
    transform
  • In object-oriented graphics, alsoneed motion
    constraints with eacharrow

29
Example Robot
  • Traverse DAG using DFS (or BFS)
  • Push and pop matrices along the way (e.g.
    left-child right-sibling) (joint position
    parameters?)

30
(No Transcript)
31
Modeling Programs
  • Moray
  • Shareware
  • Limited functionality
  • Easy
  • Lightwave, Maya
  • NOT shareware
  • Very full-featured
  • Difficult to learn and use
  • Moray, Maya demos Lightwave video

32
Animation
  • Suppose you want the robot to pick up a can of
    oil to drink. How?
  • You could set the joint positions at each
    moment in the animation (kinematics)

33
Inverse Kinematics
  • You cant just invert the joint transformations
  • Joint settings arent even necessarily unique
    for a hand position!
  • Inverse kinematics figure out from the hand
    position where the joints should be set.

34
Using Inverse Kinematics
  • Specify joint constraintsand priorities
  • Move end effector(or object pose)
  • Let the system figureout joint positions
  • IK demo

35
Keyframe Animation
  • In traditional key frame animation the animator
    draws several important frames, and helpers do
    the inbetweening or tweening
  • Computer animation is also key-frame based
  • At key frames, animator positions objects and
    lights, sets parameters, etc.
  • The system interpolates parameter values linearly
    or along a curve
  • To get from one object pose to the next, inverse
    kinematics determine joint motions
  • Keyframe animation demo

36
Motion Capture
  • More realistic motion sequences can be
    generated by Motion Capture
  • Attach joint position indicatorsto real actors
  • Record live action

37
(No Transcript)
38
Morphing
  • Morphing smoothly shifting from one image to
    another
  • First popularized in a Michael Jackson video
  • Method a combination of
  • Warping both images, gradually moving control
    points from location in first image to location
    in the second
  • Cross-fading from first image sequence to second

39
3D Morphing
  • Define 3D before andafter shapes as e.g. NURBS
    surfaces with same number ofcontrol points
  • Gradually move control points fromfirst setting
    to second
  • Specify key poses e.g. smile, frown, 12 frames
    of walking motion

40
Combined approaches
41
Example virtual puppetry
  • Suppose you want to display virtual puppet shows
  • How could you animate puppet movements?
  • How could you control the animations externally?

42
Character Animation
  • To make computer graphics(or cartoon drawings)
    come alive

43
Personality through Pose, Expression, Motion,
Timing
44
(No Transcript)
45
Object-oriented Graphics
  • Higher in the programming hierarchy control
    models with object-oriented programs
  • robot robbie
  • robbie.smile()
  • robbie.walk(270, 5, 3)

46
Data Structures for Modeling
  • This part of chapter how some example
    applications be done efficiently (i.e. topics
    without a better home)
  • Tree-based subdivisions of space
  • Example 1 how to represent complex objects made
    up of union, intersection, difference of other
    objects

47
CSG Tree
48
Application 2 HSR
  • How to render in 3D with hidden surface removal
    when you dont have a hardware depth-buffer?
  • Can you think of any other ways of removing
    hidden surfaces quickly?
  • Principle a polygon cant be occluded by
    another polygon that is behind it.

49
BSP-tree
  • The painters algorithm for hidden surface
    removal works by drawing all faces, from back to
    front
  • How to get a listing of the faces in
    back-to-front order?
  • Put them into a binary tree and traverse the tree
    (but in what order?)

50
BSP Tree Figures
  • Right is front of polygon left is back
  • In and Out nodes show regions of space inside or
    outside the object
  • (Or, just store split pieces of polygons at
    leaves)

51
Traversing a BSP tree
  • Binary Space Partition tree a binary tree with a
    polygon at each node
  • Children in left subtree are behind polygon
  • Children in right subtree are in front of polygon
  • Traversing a BSP-tree
  • If null pointer, do nothing
  • Else, draw far subtree, then polygon at current
    node, then near subtree
  • Far and near are determined by location of viewer
  • Runtime of traversal?
  • Drawbacks?

52
Building a BSP tree
  • Inserting a polygon
  • If tree is empty make it the root
  • If polygon to be inserted intersects plane of
    polygon of current node, split and insert half on
    each side recursively.
  • Else insert on appropriate side recursively
  • Problem the number of faces could grow
    dramatically
  • Worst case (O(n2))but usually it doesnt grow
    too badly in practice

53
BSP-tree Summary
  • Returns polygons not necessarily in sorted order,
    but in an order that is correct for back-to-front
    rendering
  • Widely used when Z-buffer hardware may not be
    available (e.g. game engines)
  • Guarantees back-to-front rendering for alpha
    blending
  • Works well (linear-time traversals) in the number
    of split polygons
  • And we hope the number of polygons doesnt grow
    too much through splitting

54
Application 3 Handling Large Spatial Data Sets
  • Example application image-based rendering
  • Suppose you have many digital images of a scene,
    with depth information for pixels
  • How to find efficiently the points that are in
    front?
  • Other applications
  • Speeding up ray-tracing with many objects
  • Rendering contours of 3D volumetric data such as
    MRI scans

55
Quadtree
  • Quadtree divide space into four quadrants. Mark
    as Empty, Full, or Partially full.
  • Recursively subdivide partially full regions
  • Saves much time, space over 2D pixel data!

56
Quadtree Structure
57
Octrees
  • Generalize to cutting up a cube into 8 sub-cubes,
    each of which may be E, F, or P (and subdivided)
  • Much more efficientthan a 3D array ofcells for
    3Dvolumetric data

58
Quadtree Algorithms
  • How would you
  • render a quadtree shape?
  • find the intersection of a ray with a quadtree
    shape?
  • Take the union of two quadtrees?
  • Intersection?
  • Find the neighbors of a cell?

59
Applications of Octrees
  • Contour finding in MRI data
  • 3D scanning and rendering
  • Efficient ray tracing
  • Intersection, collision testing

60
Research in Visibility
  • Can we figure out in advance what will be visible
    from each viewpoint?

61
Viewer-centered representation
  • Viewer-centered object representations
    representation not of volume of space filled but
    appearance from all viewpoints

62
Occlusion in view space
  • Occlusion in view space is subtraction

63
Events
  • Events boundaries in viewpoint space where
    faces appear or disappear

64
Aspect Graph
  • Aspect graph a graph with a node for every
    topologically distinct view of an object, with
    edges connecting adjacent views

65
Aspect graph varieties
  • Aspect graphs can be constructed for
  • 3D space
  • 2D multiple axis rotations or planar motions
  • 1D single-axis rotations

66
1D Aspect Graph for Rotation
67
1D Aspect Graph Results
  • Useful for rotations without Z-buffer hardware!
  • Not so useful for more viewer freedom, modern
    graphics hardware

68
Conservative Visibility Preprocessing
  • Q. can we take advantage of z-buffer?
  • Definition weak visibility. A polygon is weakly
    visible from a region if any part of the polygon
    is visible from any viewpoint in the region
  • Conservative visibility preprocessing computing
    in advance a (super-)set of the polygons that are
    weakly visible from some region
  • Rendering with Z-buffer yields correct image, but
    its faster since fewer polygons are drawn

69
Weak Visibility Subdivision
  • Given an object and a wall, find the region of
    space from which the wall occludes the object
  • Divide space into regions, where each edge
    represents some object appearing or
    disappearing

70
Conservative Visibility Preprocessing on a Grid
  • Divide viewing space into a 3D (or 2D) grid
  • Compute a conservative display list for each cell

71
Conservative visibility algorithm
  • Initialize a display list for each grid cell
  • Algorithm for each object, wall, and cell
  • If the object is not weakly visible from the
    cell, remove from cells display list
  • You can churn away at this computation as long as
    you like, increasing runtimes, but you can stop
    at any time with usable results. (Results improve
    over time!)

72
Perspective
  • What good did this visibility research do for the
    world?
  • It wasnt enough for me
  • I left graphics research and went into digital
    libraries
  • Left University of Pittsburgh and went to Wheaton
    College

73
Summary
  • 3D modeling uses advanced primitives and ways of
    cutting, joining them
  • Inverse kinematics determines joint position from
    end effector motions
  • Keyframe animation involves important poses and
    inbetweening
  • 3D morphing animates surface control points
  • 3D spatial subdivision trees include CSG-trees,
    BSP-trees, Quadtrees, and Octrees
  • Visibility preprocessing speeds walkthrough
Write a Comment
User Comments (0)
About PowerShow.com