DOC PREVIEW
UW-Madison CS 559 - Modeling techniques

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

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 30 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 30 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 30 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 30 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 30 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 30 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 30 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Last TimeTodayProblems with PolygonsMore Object RepresentationsHierarchical ModelingHierarchical Model ExampleHierarchical DetailsOpenGL SupportInstancingSlide 10More Display ListsDisplay Lists Pro-ConParametric InstancingRendering InstancesConstructive Solid Geometry (CSG)CSG ExampleSweep ObjectsRendering SweepsA Circular Tube (A torus)General SweepsSpatial EnumerationOctrees (and Quadtrees)Quadtree ExampleRendering OctreesSpatial Data StructuresImplicit FunctionsBlobs and MetaballsExample with BlobsBlob MathRendering Implicit Surfaces4/13/04 © University of Wisconsin, CS559 Spring 2004Last Time•Modeling intro•Polygonal modeling–Ways of representing polygonal meshes–Indexing schemes (indirection)–Level-of-Detail4/13/04 © University of Wisconsin, CS559 Spring 2004Today•Modeling techniques•Homework 6 out yesterday, due April 20•No lecture April 224/13/04 © University of Wisconsin, CS559 Spring 2004Problems 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 curvature4/13/04 © University of Wisconsin, CS559 Spring 2004More Object Representations•Hierarchical modeling•Instancing and Parametric Instancing•Constructive Solid Geometry•Sweep Objects•Octrees•Blobs and Metaballs and other such things4/13/04 © University of Wisconsin, CS559 Spring 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?4/13/04 © University of Wisconsin, CS559 Spring 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?4/13/04 © University of Wisconsin, CS559 Spring 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)4/13/04 © University of Wisconsin, CS559 Spring 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()4/13/04 © University of Wisconsin, CS559 Spring 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?4/13/04 © University of Wisconsin, CS559 Spring 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);4/13/04 © University of Wisconsin, CS559 Spring 2004More 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 stored4/13/04 © University of Wisconsin, CS559 Spring 2004Display 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 2004Parametric 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 representation4/13/04 © University of Wisconsin, CS559 Spring 2004Rendering 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 viewer4/13/04 © University of Wisconsin, CS559 Spring 2004Constructive 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


View Full Document

UW-Madison CS 559 - Modeling techniques

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 Modeling techniques
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 Modeling techniques 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 Modeling techniques 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?