More Object Representations - PowerPoint PPT Presentation

About This Presentation
Title:

More Object Representations

Description:

Can be an exact representation. Rendering Instances. Generally, provide a routine that takes the parameters and produces a polygonal representation ... – PowerPoint PPT presentation

Number of Views:43
Avg rating:3.0/5.0
Slides: 23
Provided by: Stephen787
Category:

less

Transcript and Presenter's Notes

Title: More Object Representations


1
More Object Representations
  • Parametric instancing
  • Hierarchical modeling
  • Constructive Solid Geometry
  • Sweep Objects
  • Octrees
  • Blobs and Metaballs and other such things
  • Production rules

2
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,
  • Almost anything you buy from a catalogue
  • This is a modeling format
  • Provide something that knows how to draw the
    object given the parameters
  • Depends on the rendering style
  • Can be an exact representation

3
Rendering Instances
  • Generally, provide a routine that takes the
    parameters and produces a polygonal
    representation
  • 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
  • Adjust the polygon resolution according to
    distance from the viewer

4
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)
5
Display Lists (2)
  • The list can be
  • GL_COMPILE things dont get drawn, just stored
  • GL_COMPILE_AND_EXECUTE things are drawn, and
    also stored
  • The list can contain almost anything
  • Useful for encapsulating lighting set-up commands
  • The list cannot be modified after it is compiled
  • The whole point is that the list may be
    internally optimized, which precludes
    modification
  • For example, sequences of transformations may be
    composited into one transformation

6
Display Lists (3)
  • When should you use display lists
  • When you do the same thing over and over again
  • Advantages
  • Cant be much slower than the original way
  • Can be much much faster
  • Disadvantages
  • Doesnt support real parameterized instancing,
    because you cant have any parameters!
  • Cant use various commands that would offer other
    speedups
  • For example, cant use glVertexPointer()

7
Hierarchical Modeling
  • A hierarchical model unites several parametric
    instances into one object
  • For example a desk is made up of many cubes
  • Generally represented as a tree, with
    transformations and instances at any node
  • Rendered by traversing the tree, applying the
    transformations, and rendering the instances
  • Particularly useful for rigid-body animation
  • Human is a hierarchy of body, head, upper arm,
    lower arm, etc
  • Animate by changing the transformations at the
    nodes

8
Hierarchical Model Example
body
  • Vitally Important Point
  • Every node has its own local coordinate system.
  • This makes specifying transformations much much
    easier.

left arm
xarm
rotate about shoulder upper arm
l
translate (l,0,0) rotate about (0,0,0) lower arm
9
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(chi
ldren) glPopMatrix()
10
Regularized Set Operations
  • Hierarchical modeling is not good enough if
    objects in the hierarchy intersect each other
  • Transparency will reveal internal surfaces that
    should not exist
  • Computing properties like mass counts the same
    volume twice
  • Solution is to define regularized set operations
  • Just a fancy name
  • Every object must be a closed volume
    (mathematically closed)
  • Define mathematical set operations (union,
    intersection, difference, complement) to the sets
    of points within the volume

11
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
  • Motivated by computer aided design and
    manufacture
  • Difference in particular is like drilling or
    milling
  • Other operations reduce the number of primitives
    required
  • A common format in CAD products

12
CSG Example
Fill it in!
-
-
scale translate
cube
?
scale translate
scale translate
?
cylinder
cylinder
13
Rendering CSG
  • Normals and texture coordinates typically come
    from underlying primitives (not a big deal with
    CAD)
  • Some rendering algorithms can render CSG directly
  • Raytracing (later in the course)
  • Scan-line with an A-buffer
  • Can do 2D with tesselators in OpenGL
  • For OpenGL and other polygon renderers, must
    convert CSG to polygonal representation
  • Must remove redundant faces, and chop faces up
  • Basic algorithm Split polygons until they are
    inside, outside, or on boundary. Then choose
    appropriate set for final answer.
  • Generally difficult, messy and slow
  • Numerical imprecision is the major problem

14
CSG Summary
  • Advantages
  • Good for describing many things, particularly
    machined objects
  • Better if the primitive set is rich
  • Early systems used quadratic surfaces
  • Moderately intuitive and easy to understand
  • Disadvantages
  • Not a good match for polygon renderers
  • Some objects may be very hard to describe, if at
    all
  • Geometric computations are sometimes easy,
    sometimes hard
  • A volume representation (hence solid in the name)
  • Boundary (surface representation) can also work

15
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

16
General Sweeps
  • The path maybe any curve
  • The polygon that is swept may be transformed as
    it is moved along the path
  • Scale, rotate with respect to path orientation,
  • One common way to specify is
  • Give a poly-line (sequence of line segments) as
    the path
  • Give a poly-line as the shape to sweep
  • Give a transformation to apply at the vertex of
    each path segment
  • Difficult to avoid self-intersection

17
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
  • Normals come from sweep polygon and path
    orientation
  • Sweep polygon defines one texture parameter,
    sweep path defines the other

18
Spatial Enumeration
  • Basic idea Describe something by the space it
    occupies
  • For example, break the volume of interest into
    lots of tiny cubes, and say which cubes are
    inside the object
  • Works well for things like medical data
  • The process itself, like MRI or CAT scans,
    enumerates the volume
  • Data is associated with each voxel (volume
    element)
  • Problem to overcome
  • For anything other than small volumes or low
    resolutions, the number of voxels explodes
  • Note that the number of voxels grows with the
    cube of linear dimension

19
Octrees (and Quadtrees)
  • Build a tree where successive levels represent
    better resolution (smaller voxels)
  • Large uniform spaces result in shallow trees
  • Quadtree is for 2D (four children for each node)
  • Octree is for 3D (eight children for each node)

20
Quadtree Example
top left
top right
bot left
bot right
Octree principle is the same, but there are 8
children
21
Rendering Octrees
  • Volume rendering renders octrees and associated
    data directly
  • A special area of graphics, visualization, not
    covered in this class
  • Can convert to polygons by a few methods
  • Just take faces of voxels that are on the
    boundary
  • Find iso-surfaces within the volume and render
    those
  • Typically do some interpolation (smoothing) to
    get rid of the artifacts from the voxelization
  • Typically render with colors that indicate
    something about the data, but other methods exist

22
Spatial Data Structures
  • Octrees are an example of a spatial data
    structure
  • A data structure specifically designed for
    storing information of a spatial nature
  • eg Storing the location of fire hydrants in a
    city
  • In graphics, octrees are frequently used to store
    information about where polygons, or other
    primitives, are located in a scene
  • Speeds up many computations by making it fast to
    determine when something is relevant or not
  • Just like BSP trees speed up visibility
  • Other spatial data structures include BSP trees,
    KD-Trees, Interval trees,
Write a Comment
User Comments (0)
About PowerShow.com