Last Time Modeling intro Polygonal modeling Ways of representing polygonal meshes Indexing schemes indirection Level of Detail 4 13 04 University of Wisconsin CS559 Spring 2004 Today Modeling techniques Homework 6 out yesterday due April 20 No lecture April 22 4 13 04 University of Wisconsin CS559 Spring 2004 Problems with Polygons Interaction is a problem Dragging points around is time consuming Maintaining things like smoothness is difficult They are inherently an approximation Things like silhouettes can never be prefect without very large numbers of polygons and corresponding expense Normal vectors are not specified everywhere Low level representation Eg Hard to increase or decrease the resolution Hard to extract information like curvature 4 13 04 University of Wisconsin CS559 Spring 2004 More Object Representations Hierarchical modeling Instancing and Parametric Instancing Constructive Solid Geometry Sweep Objects Octrees Blobs and Metaballs and other such things 4 13 04 University of Wisconsin CS559 Spring 2004 Hierarchical Modeling Hierarchical model Group of meshes related by a tree or graph structure Properties of children are derived from their parents Most useful for animating polygonal meshes Consider a walking humanoid classic robot How would you move the robot around Does the entire robot move in the same way Does the position of one part of the robot depend on other parts 4 13 04 University of Wisconsin CS559 Spring 2004 Hierarchical Model Example Move body Draw body l left arm Rotate about shoulder Draw upper arm Translate l 0 0 Rotate about origin of lower arm Draw lower arm 4 13 04 Important Point Every node has its own local coordinate system This makes specifying transformations much much easier What are we assuming about the upper arm coordinate system University of Wisconsin CS559 Spring 2004 Hierarchical Details Generally represented as a tree with transformations and instances at any node Can use a general graph but resolving inheritance conflicts is a problem Rendered by traversing the tree applying the transformations and rendering the instances Particularly useful for animation Human is a hierarchy of body head upper arm lower arm etc Animate by changing the transformations at the nodes Other things can be inherited colors surface properties 4 13 04 University of Wisconsin CS559 Spring 2004 OpenGL Support OpenGL defines glPushMatrix and glPopMatrix Takes the current matrix and pushes it onto a stack or pops the matrix off the top of the stack and makes it the current matrix Note Pushing does not change the current matrix Rendering a hierarchy recursive RenderNode tree glPushMatrix Apply node transformation Draw node contents RenderNode children glPopMatrix 4 13 04 University of Wisconsin CS559 Spring 2004 Instancing Sometimes you need many copies of the same object Like chairs in a room Define one chair the base or the prototype Create many instances copies of it and apply a different transformation to each Appears in scene description languages Renderman Inventor as defining a label for an object What does it save 4 13 04 University of Wisconsin CS559 Spring 2004 OpenGL Support OpenGL defines display lists for encapsulating commands that are executed frequently list id glGenLists 1 glNewList list id GL COMPILE glBegin GL TRIANGLES draw some stuff glEnd glEndList And later glCallList list id 4 13 04 University of Wisconsin CS559 Spring 2004 More Display Lists Why use display lists Almost any command can go in a display list Viewing transformation set up Lighting set up Surface property set up But some things can t Causes strange bugs always check that a command can go in a display list The list can be GL COMPILE things don t get drawn just stored GL COMPILE AND EXECUTE things are drawn and also stored 4 13 04 University of Wisconsin CS559 Spring 2004 Display Lists Pro Con You should use display lists when You do the same thing over and over again The commands are supported Nothing changes about the way you do it Advantages Can t be much slower than the original way Can be much much faster Disadvantages Can t use various commands that would offer other speedups For example can t use glVertexPointer 4 13 04 University of Wisconsin CS559 Spring 2004 Parametric Instancing Many things called primitives are conveniently described by a label and a few parameters Cylinder Radius length does it have end caps Bolts length diameter thread pitch Other examples This is a modeling format Provide software that knows how to draw the object given the parameters or knows how to produce a polygonal mesh How you manage the model depends on the rendering style Can be an exact representation 4 13 04 University of Wisconsin CS559 Spring 2004 Rendering Instances Generally provide a routine that takes the parameters and produces a polygonal representation Conveniently brings parametric instancing into the rendering pipeline May include texture maps normal vectors colors etc OpenGL utility library GLu defines routines for cubes cylinders disks and other common shapes Renderman does similar things so does POVray The procedure may be dynamic For example adjust the polygon resolution according to distance from the viewer 4 13 04 University of Wisconsin CS559 Spring 2004 Constructive Solid Geometry CSG Based on a tree structure like hierarchical modeling but now The internal nodes are set operations union intersection or difference sometimes complement The edges of the tree have transformations associated with them The leaves contain only geometry Allows complex shapes with only a few primitives Common primitives are cylinders cubes etc or quadric surfaces Motivated by computer aided design and manufacture Difference is like drilling or milling A common format in CAD products 4 13 04 University of Wisconsin CS559 Spring 2004 CSG Example Fill it in scale translate cube scale translate scale translate cylinder cylinder 4 13 04 University of Wisconsin CS559 Spring 2004 Sweep Objects Define a polygon by its edges Sweep it along a path The path taken by the edges form a surface the sweep surface Special cases Surface of revolution Rotate edges about an axis Extrusion Sweep along a straight line 4 13 04 University of Wisconsin CS559 Spring 2004 Rendering Sweeps Convert to polygons Break path into short segments Create a copy of the sweep polygon at each segment Join the corresponding vertices between the polygons May need things like end caps on surfaces of revolution and extrusions
View Full Document
Unlocking...