Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 352: Computer Graphics Hierarchical Graphics, Modeling,

Similar presentations


Presentation on theme: "CS 352: Computer Graphics Hierarchical Graphics, Modeling,"— Presentation transcript:

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

2 Overview Modeling Animation Data structures for interactive graphics
Interactive Computer Graphics 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 Modeling is getting good enough that whole movies can be made with virtual actors

3 Modeling The modeling problem Modeling primitives
Interactive Computer Graphics 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
Interactive Computer Graphics 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
Interactive Computer Graphics Primitives The basic sort of primitive is the polygon Number of polygons: tradeoff between render time and model accuracy

6 Interactive Computer Graphics
For real-time graphics, you may have to limit model size

7 Spline Curves Linear spline Cardinal spline B-spline Bezier curve
Interactive Computer Graphics Spline Curves Linear spline Cardinal spline B-spline Bezier curve NURBS (non-uniform rational b-spline)

8 Interactive Computer Graphics
Mesh

9 Mesh deformations Interactive Computer Graphics
Used for fractal landscapes, mountains, etc.

10 Sweep Sweep a shape over a path to form a generalized cylinder
Interactive Computer Graphics Sweep Sweep a shape over a path to form a generalized cylinder

11 Interactive Computer Graphics
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
Interactive Computer Graphics 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 Interactive Computer Graphics
This model was created by duplicating, scaling, and extruding an arc. Then texture mapping was applied.

14 Interactive Computer Graphics
Joining Primitives Stitching, blending

15 Interactive Computer Graphics
Modifying Primitives

16 Subdivision Surfaces Can set level of polygon subdivision
Interactive Computer Graphics Subdivision Surfaces Can set level of polygon subdivision Relatively new type of primitive, subdivision surface, gives you the advantages of working with polygons and the smoothness of parameterized surfaces. Set subdivision level

17 Interactive Computer Graphics

18 Interactive Computer Graphics
This short video – Geri’s Game – a testbed for subdivision surfaces and clothing dynamics in Pixar’s Renderman software

19 Interactive Computer Graphics

20 Skin and Bones Skeleton with joined “bones”
Interactive Computer Graphics Skin and Bones Skeleton with joined “bones” Can add “skin” on top of bones Automatic or hand-tuned skinning

21 Interactive Computer Graphics
Automatic vs. manual skinning

22 Particles Interactive Computer Graphics
Particle systems emit particles at certain rates, can apply gravity or other forces, can have collectors, etc. Used for smoke, waterfalls, fire, tornadoes, etc.

23 Algorithmic Primitives
Interactive Computer Graphics Algorithmic Primitives Algorithms for trees, mountains, grass, fur, lightning, fire, …

24 Interactive Computer Graphics

25 Geometric model file formats
Interactive Computer Graphics 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… In this DXF export, first the holes are connected to the border. Then the concave shape is decomposed into several concave parts, which are cut into squares and then triangles.

26 Interactive Computer Graphics
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 Interactive Computer Graphics
One object with several mirrored, rotated instances

28 DAG models Could use tree to represent object
Interactive Computer Graphics 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

29 Example: Robot Traverse DAG using DFS (or BFS)
Interactive Computer Graphics Example: Robot Traverse DAG using DFS (or BFS) Push and pop matrices along the way (e.g. left-child right-sibling) (joint position parameters?) How would traversal work? What would a node visit do?

30 Interactive Computer Graphics

31 Modeling Programs Moray Lightwave, Maya
Interactive Computer Graphics 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 Interactive Computer Graphics
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 can’t just invert the joint transformations
Interactive Computer Graphics 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.

34 Using Inverse Kinematics
Interactive Computer Graphics Using Inverse Kinematics Specify joint constraints and priorities Move end effector (or object pose) Let the system figure out joint positions [IK demo]

35 Interactive Computer Graphics
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 Interactive Computer Graphics
Motion Capture More realistic motion sequences can be generated by Motion Capture Attach joint position indicators to real actors Record live action

37 Interactive Computer Graphics

38 Morphing Morphing: smoothly shifting from one image to another
Interactive Computer Graphics 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 Interactive Computer Graphics
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

40 Combined approaches Interactive Computer Graphics
The expressions on the face of this virtual actress were created with a combination of facial motion capture and biomedical simulations of muscle and tissue

41 Example: virtual puppetry
Interactive Computer Graphics Example: virtual puppetry Suppose you want to display virtual puppet shows How could you animate puppet movements? How could you control the animations externally? Animate movements with IK or pose setting and 3D morphing Control animations: manual settings inputs and keyframe animation – or puppet input device

42 Interactive Computer Graphics
Character Animation To make computer graphics (or cartoon drawings) come alive…

43 Personality through Pose, Expression, Motion, Timing
Interactive Computer Graphics Personality through Pose, Expression, Motion, Timing Drunken pig: boring, little structure, blank stare, monotonous body poses, erratic timing Perky girl: well-defined, many shapes, long limbs, lots of mobility, ample motions, varied and distinct facial expressions, wide-ranging, sculptural body oses; alive, rhythmic, gracious timing Paranoid guy: outer shape simple but varied; outer shape cartoony; internal structure rubbery; facial expression limited to eyes; body poses expressive but small repertoire; timing quick, ahead of the beat

44 Interactive Computer Graphics

45 Object-oriented Graphics
Interactive Computer Graphics 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
Interactive Computer Graphics 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 Interactive Computer Graphics
CSG Tree

48 Interactive Computer Graphics
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.

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

50 BSP Tree Figures Right is “front” of polygon; left is “back”
Interactive Computer Graphics 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 Interactive Computer Graphics
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:
Interactive Computer Graphics 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…

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

54 Application 3: Handling Large Spatial Data Sets
Interactive Computer Graphics 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 Interactive Computer Graphics
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 Interactive Computer Graphics
Quadtree Structure

57 Interactive Computer Graphics
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

58 Quadtree Algorithms How would you render a quadtree shape?
Interactive Computer Graphics 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
Interactive Computer Graphics Applications of Octrees Contour finding in MRI data 3D scanning and rendering Efficient ray tracing Intersection, collision testing

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

61 Viewer-centered representation
Interactive Computer Graphics Viewer-centered representation Viewer-centered object representations: representation not of volume of space filled but appearance from all viewpoints

62 Occlusion in view space
Interactive Computer Graphics Occlusion in view space Occlusion in view space is subtraction

63 Interactive Computer Graphics
Events Events: boundaries in viewpoint space where faces appear or disappear

64 Interactive Computer Graphics
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
Interactive Computer Graphics 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
Interactive Computer Graphics 1D Aspect Graph for Rotation

67 Interactive Computer Graphics
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
Interactive Computer Graphics 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

69 Weak Visibility Subdivision
Interactive Computer Graphics 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
Interactive Computer Graphics 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
Interactive Computer Graphics 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!)

72 Perspective What good did this visibility research do for the world?
Interactive Computer Graphics 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

73 Interactive Computer Graphics
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


Download ppt "CS 352: Computer Graphics Hierarchical Graphics, Modeling,"

Similar presentations


Ads by Google