Last Time Texturing in OpenGL Texturing Options Project 2 is now available Start as soon as you can Homework 5 is delayed 04 09 02 c University of Wisconsin CS559 Today Modeling So far in class We ve looked at images and image manipulation We ve looked at rendering from polygons Next major section Modeling 04 09 02 c University of Wisconsin CS559 Modeling Overview Modeling is the process of describing an object Sometimes the description is an end in itself eg Computer aided design CAD Computer Aided Manufacturing CAM The model is an exact description More typically in graphics the model is then used for rendering we will work on this assumption The model only exists to produce a picture It can be an approximation as long as the visual result is good The computer graphics motto If it looks right it is right Doesn t work for CAD 04 09 02 c University of Wisconsin CS559 Issues in Modeling There are many ways to represent the shape of an object What are some things to think about when choosing a representation 04 09 02 c University of Wisconsin CS559 Choosing a Representation How well does it represents the objects of interest How easy is it to render or convert to polygons How compact is it how cheap to store and transmit How easy is it to create By hand procedurally by fitting to measurements How easy is it to interact with Modifying it animating it How easy is it to perform geometric computations Distance intersection normal vectors curvature 04 09 02 c University of Wisconsin CS559 Categorizing Modeling Techniques Surface vs Volume Sometimes we only care about the surface Rendering and geometric computations Sometimes we want to know about the volume Medical data with information attached to the space Some representations are best thought of defining the space filled rather than the surface around the space Parametric vs Implicit Parametric generates all the points on a surface volume by plugging in a parameter eg sin cos sin sin cos Implicit models tell you if a point in on in the surface volume eg x2 y2 z2 1 0 04 09 02 c University of Wisconsin CS559 Techniques We Will Examine Polygon meshes Surface representation Parametric representation Prototype instancing and hierarchical modeling Surface or Volume Parametric Volume enumeration schemes Volume Parametric or Implicit Parametric curves and surfaces Surface Parametric Subdivision curves and surfaces Procedural models 04 09 02 c University of Wisconsin CS559 Polygon Modeling Polygons are the dominant force in modeling for real time graphics Why 04 09 02 c University of Wisconsin CS559 Polygons Dominate Everything can be turned into polygons almost everything We know how to render polygons quickly Many operations are easy to do with polygons Memory and disk space is cheap Simplicity and inertia 04 09 02 c University of Wisconsin CS559 What s Bad About Polygons What are some disadvantages of polygonal representations 04 09 02 c University of Wisconsin CS559 Polygons Aren t Great They are always an approximation to curved surfaces But can be as good as you want if you are willing to pay in size Normal vectors are approximate They throw away information Most real world surfaces are curved particularly natural surfaces They can be very unstructured It is difficult to perform many geometric operations Results can be unduly complex for instance 04 09 02 c University of Wisconsin CS559 Properties of Polygon Meshes Convex Concave Convexity makes many operations easier Clipping intersection collision detection rendering volume computations Closed Open Closed if the polygons as a group contain a closed space Can t have dangling edges or dangling faces Every edge lies between two faces Closed also referred to as watertight Simple Faces intersect each other only at edges and vertices Edges only intersect at vertices 04 09 02 c University of Wisconsin CS559 Polygonal Data Structures There are many ways to store a model made up of polygons Choice affects ease of particular operations There is no one best way of doing things so choice depends on application There are typically three components to a polygonal model The location of the vertices The connectivity which vertices make up which faces Associated data normals texture coordinates plane equations Typically associated with either faces or vertices 04 09 02 c University of Wisconsin CS559 Polygon Soup Many polygon models are just lists of polygons struct Vertex float coords 3 struct Triangle struct Vertex verts 3 struct Triangle mesh n glBegin GL TRIANGLES for i 0 i n i glVertex3fv mesh i verts 0 glVertex3fv mesh i verts 1 glVertex3fv mesh i verts 2 glEnd 04 09 02 Important Point OpenGL and almost everything else assumes a constant vertex ordering clockwise or counter clockwise Default and slightly more standard is counter clockwise c University of Wisconsin CS559 Polygon Soup Evaluation What are the advantages What are the disadvantages 04 09 02 c University of Wisconsin CS559 Polygon Soup Evaluation What are the advantages It s very simple to read write transmit etc A common output format from CAD modelers The format required for OpenGL BIG disadvantage No higher order information No information about neighbors No open closed information No guarantees on degeneracies 04 09 02 c University of Wisconsin CS559 Vertex Indirection v0 v4 v1 v2 vertices faces 0 2 1 v0 v1 v2 v3 v4 0 1 4 1 2 3 1 3 4 v3 There are reasons not to store the vertices explicitly at each polygon Wastes memory each vertex repeated many times Very messy to find neighboring polygons Difficult to ensure that polygons meet correctly Solution Indirection Put all the vertices in a list Each face stores the list indices of its vertices Advantages Disadvantages 04 09 02 c University of Wisconsin CS559 Indirection Evaluation Advantages Connectivity information is easier to evaluate because vertex equality is obvious Saving in storage Vertex index might be only 2 bytes and a vertex is probably 12 bytes Each vertex gets used at least 3 and generally 4 6 times but is only stored once Normals texture coordinates colors etc can all be stored the same way Disadvantages Connectivity information is not explicit 04 09 02 c University of Wisconsin CS559 OpenGL and Vertex Indirection struct Vertex float coords 3 struct Triangle GLuint verts 3 struct Mesh struct Vertex vertices m struct Triangle triangles n Continued 04 09 02 c University of Wisconsin CS559 OpenGL and Vertex Indirection v1 glEnableClientState GL VERTEX ARRAY
View Full Document
Unlocking...