hierarchical graphics, modeling, and...

73
CS 352: Computer Graphics Hierarchical Graphics, Modeling, And Animation

Upload: vuongdang

Post on 14-May-2018

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

CS 352: Computer Graphics

Hierarchical

Graphics,

Modeling,

And Animation

Page 2: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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

Page 3: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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

Page 4: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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(…);

Page 5: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 5

Primitives � The basic sort of primitive is the

polygon

� Number of

polygons:

tradeoff between render time and

model accuracy

Page 6: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 6

Page 7: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 7

Spline Curves � Linear spline

� Cardinal spline

� B-spline

� Bezier curve

� NURBS (non-

uniform rational b-spline)

Page 8: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 8

Mesh

Page 9: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 9

Mesh deformations

Page 10: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 10

Sweep � Sweep a shape over a path to form a generalized cylinder

Page 11: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 11

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

Page 12: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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

Page 13: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 13

Page 14: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 14

Joining Primitives � Stitching, blending

Page 15: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 15

Modifying Primitives

Page 16: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 16

Subdivision Surfaces � Can set level of polygon subdivision

Page 17: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 17

Page 18: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 18

Page 19: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 19

Page 20: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 20

Skin and Bones � Skeleton with joined “bones”

� Can add “skin” on top of bones

� Automatic or

hand-tuned

skinning

Page 21: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 21

Page 22: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 22

Particles

Page 23: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 23

Algorithmic Primitives

Algorithms for trees, mountains, grass, fur, lightning, fire, …

Page 24: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 24

Page 25: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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…

Page 26: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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)

Page 27: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 27

Page 28: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 28

DAG models � Could use tree to represent object

� Actually, a DAG (directed acyclic graph) is better: can re-use objects

� Note that each arrow needs a separate modeling transform

� In object-oriented graphics, also need motion constraints with each arrow

Page 29: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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?)

Page 30: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 30

Page 31: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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

Page 32: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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)

Page 33: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 33

Inverse Kinematics � You can’t just invert the joint transformations

� Joint settings aren’t even necessarily unique for a

hand position!

� Inverse kinematics:

figure out from the hand position where the joints

should be set.

Page 34: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 34

Using Inverse Kinematics � Specify joint constraints

and priorities

� Move end effector

(or object pose)

� Let the system figure

out joint positions

� [IK demo]

Page 35: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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]

Page 36: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 36

Motion Capture � More realistic motion sequences

can be generated

by Motion Capture

� Attach joint

position indicators to real actors

� Record live action

Page 37: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 37

Page 38: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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

Page 39: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 39

3D Morphing � Define 3D before and after shapes as e.g.

NURBS surfaces with

same number of control points

� Gradually move control points from

first setting to second

� Specify key poses: e.g. smile, frown, 12 frames of walking motion

Page 40: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 40

Combined approaches

Page 41: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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?

Page 42: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 42

Character Animation � To make computer graphics (or cartoon drawings)

come alive…

Page 43: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 43

Personality through Pose, Expression, Motion, Timing

Page 44: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 44

Page 45: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 45

Object-oriented Graphics � Higher in the programming hierarchy: control models with object-oriented programs

robot robbie;

robbie.smile();

robbie.walk(270, 5, 3);

Page 46: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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

Page 47: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 47

CSG Tree

Page 48: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 48

Application 2: HSR � How to render in 3D with hidden surface removal when you don’t have a hardware

depth-buffer?

� Can you think of any other ways of removing

hidden surfaces quickly?

� Principle: a polygon can’t be occluded by another polygon that is behind it.

Page 49: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 49

BSP-tree � The painter’s 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?)

Page 50: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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)

Page 51: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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?

Page 52: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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 doesn’t grow too badly in

practice…

Page 53: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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 doesn’t grow too much through splitting]

Page 54: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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

Page 55: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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!

Page 56: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 56

Quadtree Structure

Page 57: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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 efficient

than a 3D array of

cells for 3D volumetric data

Page 58: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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?

Page 59: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 59

Applications of Octrees � Contour finding in MRI data

� 3D scanning and rendering

� Efficient ray tracing

� Intersection, collision testing

Page 60: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 60

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

Page 61: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 61

Viewer-centered representation

� Viewer-centered object representations: representation not of volume of space filled

but appearance from all viewpoints

Page 62: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 62

Occlusion in view space

� Occlusion in view space is subtraction

Page 63: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 63

Events � Events: boundaries in viewpoint space where faces appear or disappear

Page 64: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 64

Aspect Graph � Aspect graph: a graph with a node for every topologically distinct view of an object, with

edges connecting adjacent views

Page 65: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 65

Aspect graph varieties � Aspect graphs can be constructed for

� 3D: space

� 2D: multiple axis rotations or planar motions

� 1D: single-axis rotations

Page 66: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 66

1D Aspect Graph for Rotation

Page 67: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 67

1D Aspect Graph Results � Useful for rotations without Z-buffer hardware!

� Not so useful for more viewer freedom, modern graphics hardware

Page 68: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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 it’s faster since fewer polygons are drawn

Page 69: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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

Page 70: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 70

Conservative Visibility Preprocessing on a Grid � Divide viewing space into a 3D

(or 2D) grid

� Compute a

conservative

display list for each cell

Page 71: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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 cell’s 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!)

Page 72: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 72

Perspective � What good did this visibility research do for the world?

� It wasn’t enough for me

� I left graphics research and went into digital libraries

� Left University of Pittsburgh and went to Wheaton College

Page 73: Hierarchical Graphics, Modeling, And Animationlibvolume1.xyz/animation/bsc/1styear/computerbased2danimation/... · Inverse kinematics Keyframes . ... Often there are joints with motion

Interactive Computer Graphics Chapter 9 - 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