Presentation is loading. Please wait.

Presentation is loading. Please wait.

In the name of God Computer Graphics. Introduction Modeling techniques modeling techniques managements Some renderings.

Similar presentations


Presentation on theme: "In the name of God Computer Graphics. Introduction Modeling techniques modeling techniques managements Some renderings."— Presentation transcript:

1 In the name of God Computer Graphics

2 Introduction Modeling techniques modeling techniques managements Some renderings

3 Last Time Intro to modeling Issues in evaluating modeling techniques: –How well does it represent objects? –What types of objects can it represent? –How easy is it to render? –How compact is it? –How easy is it to create/modify? –How easy is it to perform geometric computations? Polygonal modeling –A multitude of ways to represent polygonal models and associated data

4 Other Object Representations Parametric instancing Hierarchical modeling Constructive Solid Geometry Octrees Blobs and Metaballs and other such things Production rules + Polygonal modeling

5 Modeling managements Modeling format is based on application –Provide software that knows how to draw the object given the parameters, or knows how to produce a polygonal mesh –Managing the model depends on the rendering style –Can be an exact representation

6 Parametric Instancing Many primitives are conveniently described by a label and a few parameters –Cylinder: Radius, length, does it have end-caps, … –Other examples

7 Rendering Instances provide a routine that takes the parameters and produces a polygonal representation –Conveniently brings parametric instancing into the rendering –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 viewer

8 Hierarchical Modeling A hierarchical model unites several parametric instances into one object –For example: a desk is made up of many cubes –Other examples 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 animation –Human is a hierarchy of body, head, upper arm, lower arm, etc… –Animate by changing the transformations at the nodes

9 Hierarchical Model Example Draw body left arm x arm l Rotate about shoulder Draw upper arm Translate (l,0,0) Rotate about origin of lower arm Draw lower arm Important Point: Every node has its own local coordinate system. This makes specifying transformations easier.

10 Regularized Boolean Set Operations Hierarchical modeling is not good enough if objects in the hierarchy intersect (cut each other) –Transparency will allow internal surfaces that should not exist –Computing properties like mass may count the same volume twice Solution is to define regularized set operations: –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: –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 Allows complex shapes with only a few primitives –Common primitives are cylinders, cubes, etc, or quadric surfaces Motivated by computer aided design and manufacture –A common format in CAD products

12 CSG Example  cylinder scale translate scale translate

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 –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 –Better if the primitive set is rich Early systems used quadratic surfaces –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 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

16 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)

17 Quadtree Example top lefttop rightbot leftbot right Octree principle is the same, but there are 8 children

18 Rendering Octrees Volume rendering renders octrees and associated data directly –A special area of graphics, visualization 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

19 Spatial Data Structures Octrees are an example of a spatial data structure –A data structure specifically designed for storing information of a spatial nature 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

20 Blobs and Metaballs Define the location of some points For each point, define a function on the distance to a given point, (x,y,z) Sum these functions up, and use them as an implicit function More generally, use Gaussian functions of distance, or other forms –Various results are called blobs or metaballs

21 Example with Blobs Rendered with POVray. Not everything is a blob, but the characters are.

22 Rendering Implicit Surfaces Some methods can render then directly –Raytracing - find intersections with Newton’s method For polygonal renderer, must convert to polygons Advantages: –Good for organic looking shapes eg human body –Reasonable interfaces for design Disadvantages: –Difficult to render and control when animating –Being replaced with subdivision surfaces, it appears

23 Production Rules Model by giving a set of rules to follow to generate it Works best for things like plants: –Start with a stem –Replace it with stem + branches –Replace some part with more stem + branches, and so on Essentially, generate a string that describes the object by replacing sub-strings with new sub-strings Render by generating geometry –Parametric instances of branch, leaf, flower, etc –Or polygons, or blobs, or … Can work for whole gardens and forests

24 L-Systems Prusinkiewicz, Hammel, Mech http://www.cpsc.ucalgary.ca/projects/bmv/vmm/title.html

25 More L-Systems Prusinkiewicz, Hammel, Mech http://www.cpsc.ucalgary.ca/projects/bmv/vmm/title.html

26 Yet More L-systems Prusinkiewicz, Hammel, Mech http://www.cpsc.ucalgary.ca/projects/bmv/vmm/title.html


Download ppt "In the name of God Computer Graphics. Introduction Modeling techniques modeling techniques managements Some renderings."

Similar presentations


Ads by Google