CS 352: Computer Graphics - PowerPoint PPT Presentation

1 / 77
About This Presentation
Title:

CS 352: Computer Graphics

Description:

CS 352: Computer Graphics – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 78
Provided by: HarryPl6
Category:
Tags: computer | graphics | por | you

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
  • Blender
  • Open Source
  • Modeling, surfacing, animation, rendering,
    compositing, game engine
  • UI not so intuitive?
  • Missing advanced features
  • Lightwave
  • NOT shareware
  • Very full-featured
  • Easier to use than othersbut still a huge
    learning curve
  • Autodesk Maya
  • Probably most often used by pros costs thousands

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
(No Transcript)
39
Morphing
  • Image/video morphing smoothly shifting from one
    image to another
  • First popularized in a Michael Jackson video
  • Method for video a combination of
  • Identifying corresponding points in images over
    time
  • 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

40
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

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

43
(No Transcript)
44
(No Transcript)
45
(No Transcript)
46
Character Animation
  • To make computer graphics(or cartoon drawings)
    come alive

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

50
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

51
CSG Tree
52
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.

53
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?)

54
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)

55
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?

56
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
    dramaticallybut usually it doesnt grow too
    badly

57
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

58
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

59
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!

60
Quadtree Structure
61
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

62
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?

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

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

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

66
Occlusion in view space
  • Occlusion in view space is subtraction

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

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

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

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

72
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

73
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

74
Conservative Visibility Preprocessing on a Grid
  • Divide viewing space into a grid
  • Compute a conservative display list for each cell
  • Optionally store data in quadtree

75
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. (Runtime
    performance improves with more preprocessing
    time!)

76
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

77
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