object representation rama c hoetzlein, 2010 univ. of california santa barbara lecture notes

37
Object Representation Rama C Hoetzlein, 2010 Univ. of California Santa Barbara Lecture Notes

Upload: martin-hardy

Post on 02-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Object Representation

Rama C Hoetzlein, 2010Univ. of California Santa BarbaraLecture Notes

Object Representation

Object representation can be understood as anissue in communication…

Describe to me, in exact detail what a surface looks like, without using “fuzzy” words.

Mathematical definition: Surface

A subset of points in R , which span a

local two-dimensional space at each point.

For any given point in the set, there are two directions in which another point in the set is infinitely close.

3

What are some natural examples of surfaces that are...

- Open Surfaces with no interior- Closed Surfaces which have an interior- Disjoint Surfaces with distinct parts (C0 discontinuous)- Rough Surfaces with angles (C1 discontinuous)- Smooth Surfaces which are locally smooth (C1 smooth)- Self-similar Surfaces which are similar at different scales- Implicit Surfaces with no sharp boundaries- Analytical Surfaces defined by a closed mathematical func.- Revolved Surfaces created by sweeping a curve about an axis- Loft Surfaces created by sweeping a curve along a path

Three most common in Computer Graphics:

Implicit surfaces...... f(x,y,z) = R (eg. Metablobs)

Curved surfaces....... f(u, v) => R (eg. NURBS)

Polygonal surfaces... M = {V, E, F} (eg. Meshes)

Object Representation

11

3

Implicit Surfaces

f(x,y,z) = R

A function of three variables is defined which maps every point in space to a scalar value.

Selecting a range of values defines a volume, while selecting a single value defines a surface.

1

Simple implicit surface

F(x,y,z) = sqrt( p – r ) < 1

Blob functions add together

Metaballs: One kind of Implicit Surface

f(x,y,z) =

James Blinn, “A Generalization of Algebraic Surface Drawing”, 1982

Implicit Surface

Implicit Surfaces - Rendering

Option 1:Raytrace the function

Option 2:Convert to polygons(Marching Cubes)

Curved Surfaces

f(u, v) => R

A two-dimensional function is defined with mapstwo parametric variables to a point in 3D space.

There are many ways that f(u,v) could be defined.

3

Curved Surfaces

- Key points define the shape of an explicit function.

- Properties: Infinitely divisible Everywhere smooth Easy to control

Utah TeapotAlan Newell, 1975

Curved surfaces have revolutionized the automotive and film industry by simplifying complex shapes. (Prior to this, only way was to explicitly specify all vertices.)

Geri’s Game, 1997 (Pixar), First sub-division surfaces.

M = {V, E, F}

Polygonal Surfaces

Defined as a discrete set of vertices, edges and faces which connected together create a locus of points defining a surface.

Polygonal Surfaces

A mesh is a discrete representation of a surface.

- Surface is broken into vertices, edges, and faces.

- Vertices = Subset of S sampled at discrete locations.

Stanford BunnyGreg Turk &Marc Levoy, 19943D scanned mesh,69,451 triangles

Paolo UccelloPerspective drawing of a Challice (ca. 1450)

- Just describe the vertices. We also need their connectivity.

- How do you know what the faces are?

Colin Smith, On Vertex-Vertex Systems and Their Use in Geometric and Biological Modeling, 2006.

- Make faces explicit. Each face indexes vertices.

- Most common in graphics hardware. Const time face geometry.

Mesh storage... Example PLY files:

- Number of vertices

- Number of faces

- Each vertex has a list of properties. In this case, x/y/z.Vertex could also have a color, or texture coordinate.

- Each face is an index of vertices.

(This example: 3-sided faces only)

Mesh Operations What do you need to do for? 1. Adding a vertex 2. Deleting a vertex 3. Adding a face 4. Deleting a face

Winged Edge Meshes

- More storage space

- Each edge has: 2 vertices 2 faces

- But... we can now find neighboring vertices and faces in constant time.

Each representation makes more information explicit...giving constant-time lookups at the cost of storage space.

Many Operations

Add/Remove Noise

Face Extrusion

Subdivision

FindSilouettes

SimplificationChangeRepresentation

Modeling in OpenGL

Objects are expressed as vertex lists, appearingbetween glBegin..glEnd blocks:

glBegin ( GL_TRANGLES);glVertex3f ( 0, 0, 0);glVertex3f ( 1, 0, 0);glVertex3f ( 0, 0, 1 );glEnd ();

The type of primitive determines how thevertices will be interpreted.

glBegin ( GL_POINTS ); // Every 1 is a point

glBegin ( GL_LINES) ; // Every 2 is a line

glBegin ( GL_TRANGLES ); // Every 3 is a face

glBegin ( GL_QUADS ); // Every 4 is a face

Surface normals and colors can be providedfor every vertex if you want..

glBegin ( GL_TRANGLES ); // Every 3 is a triangle

glNormal3f ( 1, 0, 0 ); glColor3f(1,0,0); glVertex3f (1, 0, 0);glNormal3f ( 0, 1, 0 ); glColor3f(0,1,0); glVertex3f (0, 1, 0);glNormal3f ( 0, 0, 1 ); glColor3f(0,0,1); glVertex3f (0, 0, 1);

..

.. next triangle

..

glEnd ();

The glBegin..glEnd block indicates to OpenGLthat you are giving it geometry.Transformations and Lighting must appear before any geometry is specified. Nothing else can appear in the glBegin/glEnd section except for geometry data.

glEnable ( GL_LIGHTING ); // LightingglTranslate3f ( 1, 0, 0); // Transform(s)glScale3f ( 2, 2, 2 );

glBegin ( GL_TRIANGLES ); // Geometry

glColor3f(1,0,0); glVertex3f ( 1, 0, 0 ); // Color is part of geomglNormal3f(0,1,0); glVertex3f ( 0, 1, 0 ); // Normal is also geomglVertex3f ( 0, 0, 1 );

glEnd ();

Modeling in OpenGL

LAB #5 – 10:00 - 11:00

1) Model a cube in OpenGL

2) Make sure that dynamic lighting of the cube is correct

3) Model the Coke Can challenge