Parametric Surfaces CS 418 Intro to Computer Graphics John C. Hart
y Space Curves Separate into three coordinate functions z x p ( t ) = ( x ( t ), y ( t ), z ( t )) x ( t ) = (1- t ) 3 x 0 + 3 t (1- t ) 2 x 1 + 3 t 2 (1- t ) x 2 + t 3 x 3 y ( t ) = (1- t ) 3 y 0 + 3 t (1- t ) 2 y 1 + 3 t 2 (1- t ) y 2 + t 3 y 3 z ( t ) = (1- t ) 3 z 0 + 3 t (1- t ) 2 z 1 + 3 t 2 (1- t ) z 2 + t 3 z 3 x y z t t t
y Space Curves Make your own roller-coaster ride z x • Camera position along space curve • Look at point is next position along space curve (tangent) • Binormal is cross product of vector to next position with vector to T previous position N B • Up direction (normal) is cross product of binormal with tangent
Extrusion • Two 3-D copies of each 2-D curve p 1 ( t ) = ( x ( t ), y ( t ),1) p ( t ) = ( x ( t ), y ( t )) p 0 ( t ) = ( x ( t ), y ( t ),0) • Create a mesh of quads (or tri-strip) p 0 ( t ), p 1 ( t ), p 0 ( t + ∆ t ), p 1 ( t + ∆ t )
Generalized Cylinder • Construct a 2-D profile curve p ( t + ∆ t ) q ( s ) = ( a ( s ), b ( s )) p ( t ) T ( t ) • Construct a space curve -T ( t– ∆ t ) p ( t ) = ( x ( t ), y ( t ), z ( t )) p ( t– ∆ t ) • Construct a Frenet frame at each point along space curve T ( t ) = p ( t + ∆ t ) – p ( t ) B ( t ) = T ( t ) × - T ( t – ∆ t ) N ( t ) = B ( t ) × T ( t ) (all normalized) • Plot 2-D curve in ( N , B ) space gc ( s , t ) = p ( t ) + a ( s ) N ( t ) + b ( s ) B ( t )
Generalized Cylinder • Construct a 2-D profile curve q ( t ) = ( a ( t ), b ( t )) t b q ( t ) a
Generalized Cylinder • Construct a 2-D profile curve q ( t ) = ( a ( t ), b ( t )) • Construct a space curve p ( s ) = ( x ( s ), y ( s ), z ( s ))
Generalized Cylinder • Construct a Frenet frame at each point along space curve t ( s ) = p ( s + ∆ s ) – p ( s ) b ( s ) = t ( s ) × - t ( s – ∆ s ) n ( s ) = b ( s ) × t ( s ) (all normalized)
Generalized Cylinder • Construct a 2-D profile curve q ( t ) = ( a ( t ), b ( t )) • Construct a space curve p ( s ) = ( x ( s ), y ( s ), z ( s )) • Plot 2-D curve in ( N , B ) space gc ( s , t ) = p ( s ) + a ( t ) n ( s ) + b ( t ) b ( s )
Generalized Cylinder • Construct a 2-D profile curve q ( t ) = ( a ( t ), b ( t )) • Construct a space curve p ( s ) = ( x ( s ), y ( s ), z ( s )) • Plot 2-D curve in ( N , B ) space gc ( s , t ) = p ( s ) + a ( t ) n ( s ) + b ( t ) b ( s )
Revolution y • Construct a 2-D profile curve q ( t ) = ( a ( t ), b ( t )) z • Rotate about y axis x p ( s , t ) = ( a ( t ) cos 2 π s , b ( t ), a ( t ) sin 2 π s )
Bezier Patches p 02 p 01 p 00 p 03 • Bezier patch – Tensor product of two Bezier curves p 11 p 12 p 10 p 13 n n ∑∑ = n n p ( s , t ) B ( s ) B ( t ) p p 22 p 20 j i ij = = j 1 i 1 p 23 p 21 p 31 p 32 p 33 p 30
Bezier Patches p 02 p 01 p 00 p 03 • Bezier patch – Tensor product of two Bezier curves p 11 p 12 p 10 p 13 n n ∑∑ = n n p ( s , t ) B ( s ) B ( t ) p p 22 p 20 j i ij = = j 1 i 1 p 23 p 21 – Product of Bernstein polynomials ( ) p 31 p 32 p 33 n n ∑∑ = p 30 n n p ( s , t ) B ( s ) B ( t ) p j i ij = = j 1 i 1
Bezier Patches p 02 p 01 p 00 p 03 • Bezier patch – Tensor product of two Bezier curves p 11 p 12 p 10 p 13 n n ∑∑ = n n p ( s , t ) B ( s ) B ( t ) p p 22 p 20 j i ij = = j 1 i 1 p 23 p 21 – Product of Bernstein polynomials ( ) p 31 p 32 p 33 n n ∑∑ = p 30 n n p ( s , t ) B ( s ) B ( t ) p j i ij = = j 1 i 1 – Bernstein interpolation of Bernstein polynomials n n ( ) ∑ ∑ = n n p ( s , t ) B ( s ) B ( t ) p j i i = = j 1 i 1 j
Bezier Patches p 02 p 01 p 00 p 03 • Bezier patch – Tensor product of two Bezier curves p 11 p 12 p 10 p 13 n n ∑∑ = n n p ( s , t ) B ( s ) B ( t ) p p 22 p 20 j i ij = = j 1 i 1 p 23 p 21 – Product of Bernstein polynomials ( ) p 31 p 32 p 33 n n ∑∑ = p 30 n n p ( s , t ) B ( s ) B ( t ) p j i ij = = j 1 i 1 – Bernstein interpolation of Bernstein polynomials n n ( ) ∑ ∑ = n n p ( s , t ) B ( s ) B ( t ) p j i i = = j 1 i 1 j • Works same way for B-splines
Blossoming Patches p (011;000) • Curves: p(t) p(t,t,t) p (000;000) p (001;000) p (111;000) • Patches: p(s,t) p(s,s,s;t,t,t) p (001;001) p (011;001) • Variables not allowed to cross p (111;001) p (000;001) the semicolon p (000;011) p (001;011) p (111;011) • In patches, bilinear p (011;011) p (001;011) interpolation replaces linear p (011;111) interpolation in curves p (000;111) p (111;111)
Blossoming Patches • Curves: p(t) p(t,t,t) • Patches: p(s,t) p(s,s,s;t,t,t) p (01s;00t) p (00s;00t) p (11s;00t) • Variables not allowed to cross p (00s;01t) p (01s;01t) the semicolon p (11s;01t) • In patches, bilinear p (01s;11t) p (00s;11t) p (11s;11t) interpolation replaces linear interpolation in curves
Recommend
More recommend