DOC PREVIEW
UW-Madison CS 559 - Lecture Notes

This preview shows page 1-2-14-15-30-31 out of 31 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 31 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Last TimeTodaySo you need a mesh…Meshes from ScanningScanning in ActionLevel Of DetailLevel of DetailProblems with PolygonsMore Object RepresentationsHierarchical ModelingHierarchical Model ExampleHierarchical DetailsOpenGL SupportScene GraphsInstancingSlide 16More Display ListsDisplay Lists Good/BadParametric InstancingRendering InstancesConstructive Solid Geometry (CSG)CSG ExampleSweep ObjectsRendering SweepsA Circular Tube (A torus)General SweepsSpatial EnumerationOctrees (and Quadtrees)Quadtree ExampleRendering OctreesProject 311/23/04 © University of Wisconsin, CS559 Fall 2004Last Time•Modeling considerations•Polygonal modeling techniques•Homework 611/23/04 © University of Wisconsin, CS559 Fall 2004Today•Obtaining polygonal meshes•Hierarchical modeling•Instancing and Parametric Instancing•Constructive Solid Geometry•Sweep Objects•Octrees•Project 3 Intro11/23/04 © University of Wisconsin, CS559 Fall 2004So 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 shape11/23/04 © University of Wisconsin, CS559 Fall 2004Meshes 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 2004Scanning in Actionhttp://www-graphics.stanford.edu/projects/mich/11/23/04 © University of Wisconsin, CS559 Fall 2004Level 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 things11/23/04 © University of Wisconsin, CS559 Fall 2004Level of Detailhttp://www.cs.unc.edu/~geom/SUCC_MAP/11/23/04 © University of Wisconsin, CS559 Fall 2004Problems 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 curvature11/23/04 © University of Wisconsin, CS559 Fall 2004More Object Representations•Hierarchical modeling•Instancing and Parametric Instancing•Constructive Solid Geometry•Sweep Objects•Octrees•Blobs and Metaballs and other such things11/23/04 © University of Wisconsin, CS559 Fall 2004Hierarchical 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 2004Hierarchical Model ExampleMove bodyDraw bodyleft armlRotate about shoulderDraw upper armTranslate (l,0,0)Rotate about origin oflower armDraw lower armImportant 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?11/23/04 © University of Wisconsin, CS559 Fall 2004Hierarchical 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 2004OpenGL 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 transformationDraw node contentsRenderNode(children)glPopMatrix()11/23/04 © University of Wisconsin, CS559 Fall 2004Scene 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 example11/23/04 © University of Wisconsin, CS559 Fall 2004Instancing•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 2004OpenGL Support•OpenGL defines display lists for encapsulating commands that are executed frequentlylist_id = glGenLists(1);glNewList(list_id, GL_COMPILE);glBegin(GL_TRIANGLES);draw some stuffglEnd();glEndList();And laterglCallList(list_id);11/23/04 © University of Wisconsin, CS559 Fall 2004More Display Lists•Why use


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
Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
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 2 2 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?