Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture...

22
Introduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces

Transcript of Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture...

Page 1: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Introduction to Computer Graphics

Farhana Bandukwala, PhDLecture 11: Surfaces

Page 2: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Outline

• Linear approximation• Parametric bicubic surfaces• Subdividing surfaces• Drawing surfaces

Page 3: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Implicit Representation

• f(x,y,z)=0 describes a surface• Plane: ax+by+cz+d=0• Sphere: x2+y2+z2+r2=0• Divides 3-D space into points on or off

surface• 3-D curve is represented as the

intersection of two surfaces f(x,y,z)=0 and g(x,y,z)=0

Page 4: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Linear approximation• Connected 3D polygons• Polygon defined by tangent planes at sampled

points

Good linear approximation needs several polygons at high curvature regions

Page 5: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Parametric form

• Each spatial variable expressed in terms of 2 independent variables

• x = x(u,v) , y = y(u,v), z = z(u,v)• Locus of points p=[x(u,v) y(u,v) z(u,v)] for

u=[umin,umax] & v=[vmin,vmax]• Derivative

– (w/ respect to u) [dx(u,v)/du dy(u,v)/du dz(u,v)/du]– (w/ respect to v) [dx(u,v)/dv dy(u,v)/dv dz(u,v)/dv]

Page 6: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Parametric bicubic surfaces

• Generalization of cubic curves• Geometry vector is dependent on parameter v• For a specific v1, Qx(u,v1) is a curve

u3 u2 u 1 Gx0(v)

Gx1(v)

Gx2(v)

Gx3(v)

Matrix form: Qx(u,v1)=U*M*G(v1)

* M *

Page 7: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Example: Curves along parameter u

=

0.9000 0.7000 0.4500 0.2500 0.9000 0.7000 0.5000 0.3000 0.8000 0.6000 0.4000 0.2000

0.7000 0.5000 0.3000 0.1000

G x

=

0.1000 0.2000 0.3000 0.1000 0.2000 0.5000 0.6000 0.2000 0.1000 0.5000 0.7000 0.3000

0.2000 0.4000 0.5000 0.1000

G y

=

0.9300 0.9500 0.9100 0.9000 0.7000 0.5000 0.6000 0.7000 0.3000 0.3300 0.2500 0.3000

0.1000 0.1300 0.1500 0.1000

zG

Page 8: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Example: Curves along parameter u&v

=

0.9000 0.7000 0.4500 0.2500 0.9000 0.7000 0.5000 0.3000 0.8000 0.6000 0.4000 0.2000

0.7000 0.5000 0.3000 0.1000

G x

=

0.1000 0.2000 0.3000 0.1000 0.2000 0.5000 0.6000 0.2000 0.1000 0.5000 0.7000 0.3000

0.2000 0.4000 0.5000 0.1000

G y

=

0.9300 0.9500 0.9100 0.9000 0.7000 0.5000 0.6000 0.7000 0.3000 0.3300 0.2500 0.3000

0.1000 0.1300 0.1500 0.1000

zG

Page 9: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Example: Curves along parameter u&v

=

0.9000 0.7000 0.4500 0.2500 0.9000 0.7000 0.5000 0.3000 0.8000 0.6000 0.4000 0.2000

0.7000 0.5000 0.3000 0.1000

G x

=

0.1000 0.2000 0.3000 0.1000 0.2000 0.5000 0.6000 0.2000 0.1000 0.5000 0.7000 0.3000

0.2000 0.4000 0.5000 0.1000

G y

=

0.9300 0.9500 0.9100 0.9000 0.7000 0.5000 0.6000 0.7000 0.3000 0.3300 0.2500 0.3000

0.1000 0.1300 0.1500 0.1000

zG

Page 10: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Example: Curves along parameter u&v

=

0.9000 0.7000 0.4500 0.2500 0.9000 0.7000 0.5000 0.3000 0.8000 0.6000 0.4000 0.2000

0.7000 0.5000 0.3000 0.1000

G x

=

0.1000 0.2000 0.3000 0.1000 0.2000 0.5000 0.6000 0.2000 0.1000 0.5000 0.7000 0.3000

0.2000 0.4000 0.5000 0.1000

G y

=

0.9300 0.9500 0.9100 0.9000 0.7000 0.5000 0.6000 0.7000 0.3000 0.3300 0.2500 0.3000

0.1000 0.1300 0.1500 0.1000

zG

Page 11: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Parametric bicubic surfaces (contd)Gi(v) = V*M*G where G = [gi1 gi2 gi3 gi4] : constraints for cubic curve Using identity : (V*M*G)T = GT*MT*VT

Qx(u,v) = U * M * * MT * VT

44434241

34333231

24232221

14131211

gggg

gggg

gggg

gggg

Page 12: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Bezier Surfaces• Qx(u,v) = U * MB * G * MB

T * VT

• 4x4 Geometry matrix consists of respective component of 16 control points

• C0 and G0 continuity by making 4 common control points between patches equal

• G1 continuity when 2 sets of 4 control points on either side of edge are collinear

P00

P10 P20

P30

P01P11

P21

P31

P02P12 P22

P32

P03

P13 P23

P33

P00 P01 P02 P03 u

v

P10 P11 P12 P13

P20 P21 P22P23

P30

P31 P32 P33

Parameter space3-D Geometry space

xz

y

Page 13: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Example: Bezier surface

Page 14: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Subdividing Surfaces• Split surface along one parameter, u

– Curve subdivision method applied to each set of four control points along u

– Stop subdividing when flatness test positive• Then subdivide over other parameter, v• New surface will consist of 4 patches• Problem: cracks can appear because different levels of subdivision at

adjoining patches• Solution: subdivide over fixed depth at all patches regardless of flatness test

Page 15: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Drawing Surfaces• Use recursive subdivision • Generalize curve subdivision to 2d• 1st subdivide curves along u• 2nd subdivide (new) curves along v• Draw polygons using :

glBegin(GL_QUAD_STRIP)for all vertices in vi=[vmin-vmax-1]

for all vertices in uj=[umin-umax]glVertex3f(xval(vi,uj),yval(vi,uj),zval(vi,uj))

glVertex3f(xval(vj+1,uj),yval(vi +1,uj),zval(vi +1,uj))glEnd()

P0

P1 P2

P3L0= =R3

.5(P1+P2)

L1 R2L2R1

L3=R0

Page 16: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Cross product• The cross product of 2 non-parallel vectors, is a vector orthogonal to

the original 2.• To compute normal to plane containing original 2 vectors• Use cross product to compute normals to polygons• Use dot product to compute distance from plane/polygon

u

w

v

w = u x v = u2v3 – u3v2

u3v1 – u1v3

u1v2 – u2v1

Page 17: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Using evaluators in OpenGL• Beziers can be evaluated using OpenGL API• One dimensional evaluator

– Setup curve mapping (glMap1f(GL_MAP1_VERTEX_3,umin,umax,stride,order,&ctrl_vector))

– Enable evaluator (glEnable(GL_MAP1_VERTEX_3))

– Evaluate vertices at appropriate parameter value (glEvalCoord1f(ui))

• Two dimensional evaluator– Setup surface mapping

(glMap2f(GL_MAP2_VERTEX_3,umin,umax,strideu,orderu, vmin,vmax,stridev,orderv,&ctrl_vector))

– Enable evaluator (glEnable(GL_MAP2_VERTEX_3))

– Evaluate vertices at appropriate parameter value (glEvalCoord2f(ui,vi))

Page 18: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Hermite Surfaces• Completely defined by 4x4 geometry matrix GH

• Px0(v) and P3x(v) define x components of starting and ending points of curve in parameter u

• Rx0(v) and Rx3(v) are tangent vectors at these points

u3 u2 u 1 Px0(v)

Px3(v)

Rx0(v)

Rx3(v)

* MH *

u

v

P0(v)P3(v)

v=1.0

v=0.0

v=0.25

v=0.5

v=0.75

Page 19: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Hermite Surfaces (contd)Suppose:

P0x(v) = T * MH * g11

g12

g13

g14x

P3x(v) = T * MH * g21

g22

g23

g24

x

R0x(v) = T * MH * g31

g32

g33

g34x

R3x(v) = T * MH * g41

g42

g43

g44x

)0,0(xv∂

∂)0,0(x )1,0(x )1,0(xv∂

)0,1(xv∂

∂)0,1(x )1,1(x )1,1(xv∂

)0,0(2

xvu∂∂

∂)0,0(xu∂∂

)1,0(xu∂∂

)1,0(2

xvu∂∂

)0,1(2

xvu∂∂

∂)0,1(xu∂∂

)1,1(xu∂∂

)1,1(2

xvu∂∂

GHx=

x coordinates of 4 corners of patch

x coordinates oftangent vector along v

x coordinates oftangent vector along u x coordinates of

partial derivative w/ respectto both parameters

Page 20: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

B-splines• Advantages over Beziers:

• Local control of shape: one control point affects a portion of curve not the whole curve

• Degree of resulting curve more independent of number of geometric constraints

• Context: curve composed of several segments• Need not pass through control points• Sharing control points between segments provides

continuity• m+1 control points (P0…Pm) m>=3 (atleast 4 points)• m-2 curve segments (Q3…Qm) (atleast 1 segment)• each segment defined over ti<=t<=ti+1, for 3<=i<=m• ti between segments and at ends are called “knots”

Page 21: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

Bsplines, contd

P0

P1

P2

P3

P4

P5

P6

P7

Q3 Q4 Q5

Q6Q7 Q8

Geometry vector for ith segment

Pi-3

Pi-2

Pi-1

Pi

• B-spline basis are non-negative

• Normalized basis• Each curve segment lies in

the convex hull of its control points

-1 3 -3 13 -6 3 0-3 0 3 01 4 1 0

Basis matrix

1/6

t3=0t4 =1

t5 =2

t6 =3

t7 =4 t8 =5

t4 =6

Page 22: Introduction to Computer GraphicsIntroduction to Computer Graphics Farhana Bandukwala, PhD Lecture 11: Surfaces. Outline • Linear approximation • Parametric bicubic surfaces •

• Qx(u,v) = U * MBs * GBs * MBsT * VT

• 4x4 Geometry matrix consists of respective component of 16 control points

B-Spline Surfaces