Unformatted text preview:

Last Time Modeling considerations Polygonal modeling techniques Homework 6 11 23 04 University of Wisconsin CS559 Fall 2004 Today Obtaining polygonal meshes Hierarchical modeling Instancing and Parametric Instancing Constructive Solid Geometry Sweep Objects Octrees Project 3 Intro 11 23 04 University of Wisconsin CS559 Fall 2004 So you need a mesh Buy it or find a free one Free meshes typically are not very good quality User defined A user builds the mesh Tools help with specifying many vertices and faces quickly Take any user friendly modeling technique and extract a mesh representation from it Scan a real object 3D probe based systems Range finders Image based reconstruction Take a bunch of pictures and infer the object s shape 11 23 04 University of Wisconsin CS559 Fall 2004 Meshes from Scanning Laser scanners sample 3D positions One method uses triangulation Another method uses time of flight Some take images also for use as textures Famous example Scanning the David Software then takes thousands of points and builds a polygon mesh out of them Research topics Reduce the number of points in the mesh Reconstruction and re sampling 11 23 04 University of Wisconsin CS559 Fall 2004 Scanning in Action http www graphics stanford edu projects mich 11 23 04 University of Wisconsin CS559 Fall 2004 Level Of Detail There is no point in having more than 1 polygon per pixel Or a few if anti aliasing Level of detail strategies attempt to balance the resolution of the mesh against the viewing conditions Must have a way to reduce the complexity of meshes Must have a way to switch from one mesh to another An ongoing research topic made even more important as laser scanning becomes popular Also called mesh decimation multi resolution modeling and other things 11 23 04 University of Wisconsin CS559 Fall 2004 Level of Detail http www cs unc edu geom SUCC MAP 11 23 04 University of Wisconsin CS559 Fall 2004 Problems with Polygons They are inherently an approximation Things like silhouettes can never be perfect without very large numbers of polygons and corresponding expense Normal vectors are not specified everywhere Interaction is a problem Dragging points around is time consuming Maintaining things like smoothness is difficult Low level representation Eg Hard to increase or decrease the resolution Hard to extract information like curvature 11 23 04 University of Wisconsin CS559 Fall 2004 More Object Representations Hierarchical modeling Instancing and Parametric Instancing Constructive Solid Geometry Sweep Objects Octrees Blobs and Metaballs and other such things 11 23 04 University of Wisconsin CS559 Fall 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 11 23 04 University of Wisconsin CS559 Fall 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 11 23 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 Fall 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 11 23 04 University of Wisconsin CS559 Fall 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 11 23 04 University of Wisconsin CS559 Fall 2004 Scene Graphs All parts of the scene are represented in one graph Each node in the graph is one scene element including cameras objects lights transformations A generalization of hierarchical modeling To draw the scene the graph is walked Each time a node is traversed the state is changed or something is drawn with the current state E g traversing a light node turns on the light for all its children Toolkits exist that implement a scene graph architecture Inventor is the best example 11 23 04 University of Wisconsin CS559 Fall 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 11 23 04 University of Wisconsin CS559 Fall 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 11 23 04 University of Wisconsin CS559 Fall 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 11 23 04 University of Wisconsin CS559 Fall 2004 Display Lists Good Bad 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 faster Disadvantages Can t use various commands that would offer other speedups For example can t use glVertexPointer 11 23 04 University of Wisconsin CS559 Fall 2004 Parametric Instancing Many things called primitives are conveniently described by a label and a few parameters


View Full Document

UW-Madison CS 559 - Lecture Notes

Documents in this Course
Filters

Filters

14 pages

Lecture 2

Lecture 2

24 pages

Clipping

Clipping

22 pages

Modeling

Modeling

33 pages

Filters

Filters

26 pages

Dithering

Dithering

33 pages

Lecture 4

Lecture 4

20 pages

Load more
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?