32
CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

Embed Size (px)

Citation preview

Page 1: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

CS 450: COMPUTER GRAPHICS

REVIEW: OVERVIEW OF POLYGONS

SPRING 2015

DR. MICHAEL J. REALE

Page 2: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

NOTE: COUNTERCLOCKWISE ORDER

• Assuming:

• Right-handed system

• Vertices in counterclockwise order (looking at front of polygon)

Page 3: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

FILL AREAS

• Fill area (or filled area) = area to be filled with color or pattern (or both)

• Usually surface of object

• Usually polygons

Page 4: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

WHY POLYGONS?

• Why?

• Boundaries = linear equations (efficient fill algorithms)

• Can approximate most curved surfaces with polygons

• Shading easier (especially with triangles single plane per triangle)

• Surface tessellation = approximating a curved surface with polygons

• More polygons better detail, but more vertices/polygons to process

• Also called fitting the surface with a polygon mesh

http://www.guru3d.com/articles-pages/radeon-hd-5870-review-test,7.html

Page 5: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

POLYGON DEFINITIONS• Polygon = a figure with 3 or more vertices connected in sequence by straight-line segments (edges or

sides of the polygon)

• Most loose definition any closed-polyline boundary

• More finicky definitions contained in single plane, edges have no common points other than their endpoints, no three successive points collinear

• Standard polygon or simple polygon = closed-polyline with no crossing edges

Page 6: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

DOES A POLYGON LIE IN A SINGLE PLANE?

• In computer graphics, polygon not always in same plane:

• Round-off error

• E.g., after transformations

• Fitting to surface makes non-planar polygons

• E.g., quad “bent” in half

• Thus, use triangles single plane per triangle

Page 7: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

DEGENERATE POLYGONS

• Degenerate polygons = often used to describe polygon with:

• 3 or more collinear vertices generates a line segment

• E.g., in extreme case, triangle with no area

• Repeated vertex positions some edges have length 0

Page 8: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

CONVEX VS. CONCAVE

• Interior angle = angle inside polygon boundary formed by two adjacent edges

• By interior angle:

• Convex = all interior angles less than 180°

• Concave = one or more interior angles greater than or equal to 180°

• By looking at vertices compared to edge lines:

• Convex = for all edge lines, all other vertices are on one side

• Concave = for one or more edge lines, some of the vertices are on one side and some are on the other

• Also, one or more edge lines will intersect another edge

Page 9: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

CONVEX VS. CONCAVE: CORNY MEMORY HOOK

Page 10: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

DEALING WITH DEGENERATES AND CONCAVE POLYGONS

• OpenGL cannot deal with degenerate polygons or concave polygons programmer must detect/preprocess them

• Degenerate polygons detect and remove

• Concave polygons detect and split into convex polygons

Page 11: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

WHAT’S YOUR VECTOR, VICTOR?

• A vector = (N x 1) or (1 x N) matrix

• (# of rows X # of columns)

• In computer graphics:

• N usually 2, 3, or 4 (homogeneous coordinates)

• Use column vectors (N x 1)

• Components of the vector:

• 2D x and y values

• 3D x, y, and z values

• 4D x, y, z, and w values

• Vector interpreted as:

• Location (w = 1)

• Direction (w = 0)

• Scalar = single value (or 1x1 vector)

http://www.spudislunarresources.com/

blog/wp-content/uploads/2013/03/Airplane.jpg

w

z

y

x

v

z

y

x

vy

xv

Page 12: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

LENGTH OF A VECTOR AND THE ZERO VECTOR• Use Euclidean distance for length:

• A vector with a length of zero is called the zero vector:

222 zyxv

0

0

0

0

0

0

0

0

0vvv

Page 13: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

SCALING VECTORS

• Scalar times a vector = scalar times the components of the vector

• Example: multiply 5 by a 3D vector A

A

A

A

A

A

A

z

y

x

z

y

x

A

*5

*5

*5

*55

Page 14: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

NORMALIZED VECTORS

• Normalize a vector = divide vector by its length v ║ ║ makes length equal to 1

• Equivalent to multiplying vector by 1/ v║ ║

• Resulting vector is called a normalized vector

• WARNING: This is NOT the same as a NORMAL vector!

• Although normal vectors are often normalized.

222

222

222

222

zyx

zzyx

yzyx

x

zyx

v

v

v

Page 15: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

ADDING/SUBTRACTING VECTORS

• Add/subtract vectors add/subtract components

• Geometric interpretation:

• Adding putting head of one vector on tail of the other

• Subtracting gives direction from one endpoint to the other

)(

)(

)(

BA

BA

BA

B

B

B

A

A

A

zz

yy

xx

z

y

x

z

y

x

BA

)(

)(

)(

BA

BA

BA

B

B

B

A

A

A

zz

yy

xx

z

y

x

z

y

x

BA

Page 16: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

DOT PRODUCT

• Result is a single number (i.e., scalar) another name for the dot product is the scalar product

• Dot product of vector with itself = square of length of vector:

• Equivalent to:

• …where θ = smallest angle between the two vectors

• If the vectors are normalized, then:

BABABA zzyyxxBA

2222 AzyxAA

cosBABA

cos

1

1

BA

B

A

Page 17: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

DOT PRODUCT: CHECKING ANGLES

• Look at sign of dot product to check angle:

• (A · B) > 0 vectors pointing in similar directions (0 <= θ < 90°)

• (A · B) = 0 vectors are orthogonal (i.e., perpendicular to each other) (θ = 90°)

• (A · B) < 0 vectors pointing away from each other (90° < θ <= 180°)

• For normalized vectors, dot product ranges from [-1, 1]:

• (A · B) = 1 vectors pointing in the exact same direction (θ = 0°)

• (A · B) = 0 vectors are orthogonal (i.e., perpendicular to each other) (θ = 90°)

• (A · B) = -1 vectors pointing in the exact opposite direction (θ = 180°)

• (We’re going to use this trick for lighting calculations later )

1)180cos(

0)90cos(

1)0cos(

cosBABA Remember:

Page 18: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

CROSS PRODUCT

• Also called vector product (results is a vector)

• Given two vectors U and V gives vector W that is orthogonal (perpendicular) to both U and V

• U, V, and W form right-handed system!

• I.e., can use right-hand-rule on U and V (IN THAT ORDER) to get W

• Example: (X x Y) = Z axis!

• The length of W (= U X V) is equivalent to:

• …where again θ = smallest angle between U and V

• If U and V are parallel θ = 0° sin θ = 0 get zero vector for W!

sinVUVUW

xyyx

zxxz

yzzy

z

y

x

vuvu

vuvu

vuvu

VU

w

w

w

W

Page 19: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

CROSS PRODUCT: ORDER MATTERS!

• WARNING! ORDER MATTERS with the cross product!

• Property of anti-commutativity

• REMEMBER THE RIGHT-HAND-RULE!!!

UVVU

Page 20: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

COMPUTING THE CROSS PRODUCT: SARRUS’S SCHEME

• Follow diagonal arrows for each arrow multiply elements along arrow times sign at top

• ex = x axis, ey = y axis, ez = z axis

)()()(

)()()(

xyzzxyyzx

yxzxzyzyx

vuevuevue

vuevuevueVU

Page 21: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

DETECTING AND SPLITTING CONCAVE POLYGONS

• There are 2 ways we can do this:• Vector method

• Check interior angles using cross product

• Rotational method• Rotate each edge in line with X axis check if vertex below X axis

Page 22: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

SPLITTING BY VECTOR METHOD

• Transform to XY plane (if necessary)

• Get edge vectors in counterclockwise order:

• For each pair of consecutive edge vectors, get cross product

• If concave negative Z component split polygon along first vector in cross product pair

• Have to intersect this line with other edges

• Repeat process with two new polygons

• NOTE: 3 successive collinear points anywhere cross product becomes zero vector!

kkk VVE 1

0)(

0)(

0)(

0)(

0)(

15

54

43

32

21

z

z

z

z

z

EE

EE

EE

EE

EE

Page 23: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

SPLITTING BY ROTATIONAL METHOD

• Transform to XY plane (if necessary)

• For each vertex Vk:

• Move polygon so that Vk is at the origin

• Rotate polygon so that Vk+1 is on the X axis

• If Vk+2 is below X axis polygon is concave split polygon along x axis

• Repeat concave test for each of the two new polygons

• Stop when we’ve checked all vertices

Page 24: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

SPLITTING A CONVEX POLYGON

• Every 3 consecutive vertices make triangle

• Remove middle vertex

• Keep going until down to last 3 vertices

Page 25: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

PLANE EQUATION

• Need plane equation:

• Collision detection, raytracing/raycasting, etc.

• Need normal of polygon:

• Lighting/shading

• Backface culling don’t draw polygon facing away from camera

• General equation of a plane:

• (x,y,z) = any point on the plane

• A,B,C,D = plane parameters

• ON the plane Ax + By + Cz + D = 0

• BEHIND the plane Ax + By + Cz + D < 0

• IN FRONT OF the plane Ax + By + Cz + D > 0

0 DCzByAx

Page 26: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

CALCULATING THE PLANE EQUATION• Divide the formula by D

• Pick any 3 noncollinear points in the polygon

• Solve set of 3 simultaneous linear plane equations to get A/D, B/D, and C/D use Cramer’s Rule

3,2,1 1)/()/()/( kzDCyDBxDA kkk

333

222

111

33

22

11

33

22

11

33

22

11

1

1

1

1

1

1

1

1

1

zyx

zyx

zyx

D

yx

yx

yx

C

zx

zx

zx

B

zy

zy

zy

A

)()()(

)()()(

)()()(

)()()(

122133113223321

213132321

213132321

213132321

zyzyxzyzyxzyzyxD

yyxyyxyyxC

xxzxxzxxzB

zzyzzyzzyA

Page 27: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

QUICK REVIEW: DETERMINANT OF A MATRIX

)4*25*1()6*14*3()5*36*2(

654

321

3*24*143

21

kji

kji

M

M

Page 28: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

IF THE POLYGON IS NOT CONTAINED IN A PLANE

• Either:

• Divide into triangles

• OR:

• Find approximating plane

• Divide vertices into subsets of 3

• Get plane parameters for each subset

• Get average plane parameters

Page 29: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

NORMAL VECTOR

• Normal vector = gives us orientation of plane/polygon

• Points towards OUTSIDE of plane

• From back face to front face

• Perpendicular to surface of plane

• Normal N = (A,B,C) parameters from plane equation!

• Although it doesn’t have to be, the normal vector is often normalized (i.e., length = 1)

Page 30: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

GETTING NORMAL AND PLANE EQUATION

• Solve for plane equation normal = (A,B,C)

• OR

• Get normal from edges using cross-product solve for D in plane equation

• V1, V2, and V3 = consecutive vertices in counterclockwise order:

• NOTE: Counterclockwise looking from outside the polygon towards inside

)()( 2312 VVVVN

Page 31: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

POINT-NORMAL PLANE EQUATION

• Given the normal N and any point on the plane, the following holds true:

• A related, alternative equation for a plane is the point-normal form:

• …where V is any 3D point

DPN

0)( PVN

Page 32: CS 450: COMPUTER GRAPHICS REVIEW: OVERVIEW OF POLYGONS SPRING 2015 DR. MICHAEL J. REALE

EXAMPLE