• Boundary representation of objects • Smooth surfaces ▹ Implicit representation f(x, y, z) = 0 ▹ Parametric representation P(u,v) = (x(u,v) y(u,v) z(u,v))
Parametric Surfaces P(u,v) = (x(u,v) y(u,v) z(u,v))
Surface of Revolution • One of the simplest method to generate surfaces • Obtained by rotating 2D entity about an axis Point Line parallel to X axis y y x x Circle Cylinder
Surface of Revolution Parametric Form Parametric equation of the entity to be rotated [ ] P ( t ) x ( t ) y(t) z(t) 0 t t = ≤ ≤ max Rotation angle Φ The surface is now a bi-parametric function of two parameters t and Φ Example: Rotation about X – axis of an entity in XY plane Q( t , Φ ) = [x(t) y(t)cos Φ y(t)sin Φ ]
Surface of Revolution Sphere is generated by rotating a semi-circle centered at origin and lying in XY plane about X axis Circle: x = rcos θ , y = rsin θ Q ( θ , Φ ) = [x ycos Φ ysin Φ ] = [rcos θ rsin θ cos Φ rsin θ sin Φ ] Similarly ellipsoid is generated by rotating semi ellipse about X axis
Surface of Revolution Torus is generated by rotating a circle lying in XY plane but whose center does not lie on the axis of rotation. Circle: x = h + rcos θ y = k+ rsin θ Q( θ , Φ )=[h+rcos θ (k+rsin θ )cos Φ (k+rsin θ )sin Φ ] (h, k) is the center of the circle
Surface of Revolution Matrix Form (X axis rotation) 1 0 0 0 ⎡ ⎤ (x, ycos Φ , ysin Φ ) ⎢ ⎥ 0 cos φ sin φ 0 (x,y) S ⎢ ⎥ = 0 0 0 0 ⎢ ⎥ ⎢ ⎥ Φ 0 0 0 1 ⎣ ⎦ If parametric curve P(t) = FG Then surface of revolution Q(t, Φ )=FGS Can be extended for rotation about any arbitrary axis
Sweep Surfaces Sweep surfaces are the surfaces generated by traversing an entity along a path in space Q(t,s) = P(t) T(s) T(s) is called the sweep transformation
Sweep Surfaces Translation sweep of a circle generates a cylinder Translation sweep of a circle accompanied by scaling generates cone
Sweep Surfaces Example y y Cubic Spline Sweep Surface x x 1 0 0 0 z ⎡ ⎤ ⎢ ⎥ 0 1 0 0 T ( s ) ⎢ ⎥ = 0 0 1 0 ⎢ ⎥ Translation in Z ⎢ ⎥ 0 0 ns 1 ⎣ ⎦
Sweep Surfaces Normal to the polygon or closed curve as the path is swept can be either kept fixed or it can be made the instantaneous tangent of the curve of sweep. Fixed normal Tangential normal
Bilinear Interpolation Linear Interpolation fits the simplest curve between two end points P 2 P(t) = (1-t) P 1 + t P 2 P 1
Bilinear Interpolation Bilinear interpolation fits the simplest surface for the four corner points v b 01 b 11 u b 00 v u b 10
Bilinear Interpolation Two Stage Process b 11 01 b ( 1 v ) b vb = − + 00 00 01 b 01 01 b ( 1 v ) b vb = − + 10 10 11 11 01 01 X ( u , v ) b ( u , v ) ( 1 u ) b ub = = − + 00 00 10 b b 1 v ⎡ − ⎡ ⎤ ⎤ 00 01 [ 1 u u ] b 01 = − ⎢ ⎥ ⎢ ⎥ b b v ⎣ ⎦ ⎣ ⎦ 10 11 b 01 1 1 1 1 X ( u , v ) b B ( u ) B ( v ) = ∑ ∑ ij i j i 0 j 0 = =
Ruled Surfaces Given two space curves (C1 & C2) defined in parametric range [0,1], Find a surface X that contains both curves as boundary curves. X ( u , 0 ) C ( u ) = 1 C 2 X ( u , 1 ) C ( u ) = 2 v Many solutions are possible u C 1
Ruled Surfaces A simple solution is to do a linear interpolation in v X ( u , v ) ( 1 v ) C ( u ) vC ( u ) = − + C 2 1 2 ( 1 v ) X ( u , 0 ) vX ( u , 1 ) = − + v u C 1 For constant u iso-parametric curve is a line
Coon ’ s Patch Given Four Boundaries C 1 (u),C 2 (u),D 1 (v),D 2 (v) C 2 X ( u , 0 ) C ( u ) = 1 X ( u , 1 ) C ( u ) = D 1 2 v D 2 X ( 0 , v ) D ( v ) = 1 C 1 X ( 1 , v ) D ( v ) u = 2
Coon ’ s Patch Ruled surface between C 1 (u),C 2 (u) C 2 r C C 1
Coon ’ s Patch Ruled surface between Ruled surface between C 1 (u),C 2 (u) D 1 (v),D 2 (v) C 2 D 2 C 1 D 1 r C r D
Coon ’ s Patch Ruled surface between Ruled surface between C 1 (u),C 2 (u) D 1 (v),D 2 (v) C 2 + D 2 C 1 D 1 r C r D
Coon ’ s Patch Ruled surface between Ruled surface between C 1 (u),C 2 (u) D 1 (v),D 2 (v) C 2 + D 2 C 1 D 1 r C + r D
Coon ’ s Patch Something is extra which is the bilinear patch formed by the vertices r CD
Coon ’ s Patch C 2 D 1 + D 2 C 1 - Coon ’ s Patch = r C + r D - r CD
Coon ’ s Patch Mathematically r ( u , v ) ( 1 v ) X ( u , 0 ) vX ( u , 1 ) = − + C r ( u , v ) ( 1 u ) X ( 0 , v ) uX ( 1 , v ) = − + D X ( 0 , 0 ) X ( 0 , 1 ) 1 v ⎡ − ⎡ ⎤ ⎤ r ( u , v ) [ 1 u u ] = − CD ⎢ ⎥ ⎢ ⎥ X ( 1 , 0 ) X ( 1 , 1 ) v ⎣ ⎦ ⎣ ⎦
Coon ’ s Patch Mathematically X(u,v)= r C + r D - r CD X ( 0 , v ) 1 v ⎡ − ⎡ ⎤ ⎤ [ ] [ ] X ( u , v ) 1 u u X ( u , 0 ) X ( u , 1 ) = − + ⎢ ⎥ ⎢ ⎥ X ( 1 , v ) v ⎣ ⎦ ⎣ ⎦ X ( 0 , 0 ) X ( 0 , 1 ) 1 v ⎡ − ⎡ ⎤ ⎤ [ 1 u u ] − − ⎢ ⎥ ⎢ ⎥ X ( 1 , 0 ) X ( 1 , 1 ) v ⎣ ⎦ ⎣ ⎦ One can generalize with f 1 (u)=1-u ,f 2 (u)=u and g 1 (v)=1-v,g 2 (v)=v
Parametric Surfaces P(u,v) = (x(u,v) y(u,v) z(u,v))
Bezier Surface Given control points: b 00 b 01 …. b 33 b 03 b 33 v u b 00 b 30
Bezier Surface Bezier Curve (Revisit) b 2 b 1 Mathematically n P(t) n P ( t ) b J ( t ) 0 t 1 = ∑ ≤ ≤ i i i 0 = b 0 b 3 b 0 b 1 b 2 b 3 : Control Polygon
Bezier Surface Bezier Curve (Revisit) The de Casteljau Algorithm 1 b ( t ) ( 1 t ) b tb = − + b 1 0 0 1 1 b 1 1 b ( t ) ( 1 t ) b tb = − + 1 1 2 2 1 1 b ( t ) ( 1 t ) b ( t ) tb ( t ) = − + 0 0 1 2 2 ( 1 t ) b 2 t ( t 1 ) b t b = − + − + 0 1 2 b 0 1 b 0 2 b 2 b 0 0 t 1
Bezier Surface Bezier Curve (Revisit) The de Casteljau Algorithm Bezier Curve is constructed using successive linear interpolation Bezier Surface can be constructed using successive bi-lineear interpolation
Bezier Surface Bilinear Interpolation(Revisit) Two Stage Process 01 b ( 1 v ) b vb b 11 = − + 00 00 01 b 01 01 b ( 1 v ) b vb = − + 10 10 11 11 01 01 X ( u , v ) b ( u , v ) ( 1 u ) b ub = = − + 00 00 10 b b 1 v ⎡ − ⎡ ⎤ ⎤ 00 01 [ 1 u u ] = − v ⎢ ⎥ ⎢ ⎥ b 00 b b v ⎣ ⎦ ⎣ ⎦ 10 11 u b 10 1 1 1 1 X ( u , v ) b B ( u ) B ( v ) = ∑ ∑ ij i j i 0 j 0 = =
Bezier Surface De Castelejau Algorithm b b 1 v ⎡ − ⎡ ⎤ ⎤ 00 01 11 b [ 1 u u ] = − 00 ⎢ ⎥ ⎢ ⎥ b b v ⎣ ⎦ ⎣ ⎦ 10 11 b 03 b 33 v u b 00 b 30
Bezier Surface De Castelejau Algorithm b 03 b 33 v u b 00 b 30
Bezier Surface De Castelejau Algorithm 11 11 1 v b b ⎡ ⎤ ⎡ − ⎤ 22 00 01 [ ] b 1 u u = − ⎢ ⎥ 00 ⎢ ⎥ 11 11 v b b ⎣ ⎦ ⎣ ⎦ 10 11 b 03 b 33 v u b 00 b 30
Bezier Surface De Castelejau Algorithm b 03 b 33 v u b 00 b 30
Bezier Surface De Castelejau Algorithm 22 22 1 v b b ⎡ ⎤ ⎡ − ⎤ 33 00 01 b [ 1 u u ] = − ⎢ ⎥ 00 ⎢ ⎥ 22 22 v b b ⎣ ⎦ ⎣ ⎦ 10 11 b 03 b 33 v u 33 b b 00 00 b 30
Bezier Surface De Castelejau Algorithm Mathematically r 1 , r 1 r 1 , r 1 b − − b − − 1 v ⎡ ⎤ ⎡ − ⎤ r , r i , j i , j 1 b [ 1 u u ] + = − ⎢ ⎥ i , j ⎢ ⎥ r 1 , r 1 r 1 , r 1 b − − b − − v ⎣ ⎦ ⎣ i 1 , j i 1 , j 1 ⎦ + + + r 1, 2, � n = i , j 0,1, (n r) � = −
Bezier Surface De Castelejau Algorithm Problem: If degree in u is not equal to the degree in v b 23 b 03 v u b 00 b 20
Bezier Surface Tensor Product A surface can be thought of as being swept out by a moving and deforming curve
Bezier Surface Tensor Product Let the sweep curve be: m b m ( u ) b B m ( u ) = ∑ i i i 0 = Each control point b i traverses a Bezier curve n b b ( v ) b B n ( v ) = = ∑ i i i , j j j 0 =
Bezier Surface Tensor Product Combining m n b m , n ( u , v ) b B m ( u ) B n ( v ) = ∑ ∑ i , j i j i 0 j 0 = =
Bezier Surface Tensor Product
Bezier Surface Tensor Product Bezier control net
Bezier Surface Matrix Form m n m , n m n b ( u , v ) b B ( u ) B ( v ) = ∑ ∑ ij i j i 0 j 0 = = n b � b B ( v ) ⎡ ⎤ ⎡ ⎤ 00 0 n 0 ⎢ ⎥ [ ] ⎢ ⎥ m m B ( u ) � B ( u ) � � � = 0 m ⎢ ⎥ ⎢ ⎥ n b � b B ( v ) ⎢ ⎥ ⎢ ⎥ ⎣ ⎦ m 0 mn n ⎣ ⎦
Bezier Surface Properties • Affine invariance • Convex hull • Boundary curve and end-point interpolation • Change in control point position changes surface shape
Recommend
More recommend