670 likes | 913 Views
B é ziersurfaces, patched surfaces, Transfinite Interpolation (Coons Patch). von Michael Ott. Ferienakademie im Sarntal 19.9-1.10.2004 . CAGD 3: curved surfaces Motivation. CAGD 3: curved surfaces Motivation. CAGD 3: curved surfaces Motivation. CAGD 3: curved surfaces Motivation.
E N D
Béziersurfaces, patched surfaces, Transfinite Interpolation (Coons Patch) von Michael Ott Ferienakademie im Sarntal 19.9-1.10.2004
CAGD 3: curved surfaces Content 1. Béziersurfaces 1.1 Bilinear Interpolation 1.2 Tensor product approach 1.3 Derivertives 1.4 Form of a matrix for a Bézier surface 3. Transfinite Interpolation 3.1 „Regel“ surface 3.2 Bilinear tied Coonspatch 2. Patched surfaces 2.1 Smoothness and subdivision 2.2 Estimation of twist vectors 2.3 Interpolatants for tensor products 2.4 Bicubic Hermite-Partsurfaces 4. Summary
CAGD 3: curved surfaces 1. Béziersurfaces 1. Béziersurfaces 1.1 Bilinear Interpolation 1.2 Tensor product approach 1.3 Derivertives 1.4 Form of a matrix for Bézier-surfaces
CAGD 3: curved surfaces 1.1 Bilinear Interpolation b11 b01 v v b00 u u b10 Definitions : - linear Interpolation: determine simplest curve between two points - bilinear Interpolation: determine simplest surface between four points Example:
CAGD 3: curved surfaces 1.1 Bilinear Interpolation A surface with the corner points b00, b01, b10, b11 can be described in the following way : (1.1) Codomain of x(u,v) = bilinear interpolant v unit square = domain of x(u,v) 0 u,v 1 u
CAGD 3: curved surfaces 1.1 Bilinear Interpolation b11 b01 v b00 v u u b10 Definition : isoparametric curves The subdomain of straight lines which are parallel to one axis of the domain are called isoparametric curves. Example:
CAGD 3: curved surfaces 1.1 Bilinear Interpolation X(u,v) b00 b10 u (0,0) (0,1) v Edge curves are represented as straight lines that go through two vertices. Example:
CAGD 3: curved surfaces 1.1 Bilinear Interpolation (1.2) Calculating of surface-points: The points of the subdomain can be calculated with the formula (1.1). We don‘t do this, because we use an another two-stage methode to calculate. Therefore, we calculate two interim points which define a straight line for v=const. Then we calculate this new straight line to u and we get the point.
CAGD 3: curved surfaces 1.1 Bilinear Interpolation b0,0 b0,1 b1,0 b1,1 Example: You have four points: And the parameters v=0.5 u=0.5
CAGD 3: curved surfaces 1.1 Bilinear Interpolation b11 b01 v b00 v u u b10
CAGD 3: curved surfaces 1.1 Bilinear Interpolation Result: So the point has the coordinates (0.5,0.5.0.25)T in the 3D-surface.
CAGD 3: curved surfaces 1.1 Bilinear Interpolation The result as a graphic: b11 b01 v b00 v = 0.5 u u = 0.5 b10 X(0.5,0.5)
CAGD 3: curved surfaces 1.1 Bilinear Interpolation Here, you can see the result if you calculate a lot of points:
CAGD 3: curved surfaces 1.1 Bilinear Interpolation (1.3) r=1,..,n i,j=1,..,n-r Calculating of a surface-point with iterated bilinear interpolation ( de Casteljau for surfaces) : The bi,j0,0 are the points of the Bézier control polygon. The resulting point is b0,0n,n and the controllpolygon of the surface must rectangular. ( 0 i,j n )
CAGD 3: curved surfaces 1.1 Bilinear Interpolation b02 b22 b0022 b1011 b00 b20 Example:
CAGD 3: curved surfaces 1.1 Bilinear Interpolation b12 b0012 b0011 b10 Problem with de Casteljau: When you have control polygons with different grads in u- and v-direction then you have to calculate the point further with linear interpolation from K=min(grad(u),grad(v)). Therefore, you need a case difference and this is bad to implement. Thus, we will learn a better method in the next chapter.
CAGD 3: curved surfaces 1.2 Tensor product approach b1 b2 b0 b3 What is now thetensor product approach? The following sentence describes this good: „A surface is the geometric location of a curve which moves itself through the space and is changing its form. “ At the beginning we have a Bézier curve with the constant grad m.
CAGD 3: curved surfaces 1.2 Tensor product approach b1 b2 b0 b3 This Bézier curve is described wirh the following formula that we know from earlier. (Starting Bézier curve (2.1))
CAGD 3: curved surfaces 1.2 Tensor product approach (2.2) Now we move the control points of this Bézier curve on Bézier curves wich have all the same grad n through the space. For the control points bi follows the formula:
CAGD 3: curved surfaces 1.2 Tensor product approach Tensor product surface (2.3) Now we insert the formula (2.2) into the formula (2.1) and we get the whole formula (2.3) for a tensor product surface:
CAGD 3: curved surfaces 1.2 Tensor product approach b0,0 b0,1 b1,0 b1,1 Example: You have four points: And the parameters v=0.5 u=0.5
CAGD 3: curved surfaces 1.2 Tensor product approach We evaluate the row of Bézier points of u=0.5
CAGD 3: curved surfaces 1.2 Tensor product approach We get the interimpoints: This points describe the isoparametric curve b(0.5,v). Evaluating for v=0.5 takes:
CAGD 3: curved surfaces 1.2 Tensor product approach The resulting point is: We see this point has the same coordinates like the point we calculated before with the other method. So we recognize that both methods are equal. We will use later the tensor product approach again to calculate other surfaces in the space.
CAGD 3: curved surfaces 1.3 Derivertives We only look for derivertives for the edgecurves of surfaces An example is / u |u=0. This derivertive is called „derivertive to the edge“. From this formula, we can get the information that the derivertive to the edge from order r only depends on the r+1 rows(cols) of Bézier points which are closest to the edge.
CAGD 3: curved surfaces 1.4 Form of a matrix for Bézier surface Matrix-representation of tensor product surfaces : (4.1)
CAGD 3: curved surfaces 2. Patched surfaces 2. Patched surfaces 2.1 Smoothness and subdivision 2.2 Estimation of twist vectors 2.3 Tensor product of interpolants 2.4Bicubic Hermite surface parts
CAGD 3: curved surfaces 2.1 Smoothness and subdivision You have two Bézier surfaces which should be connected. In the case of a Bézier curve you could connect them if they have the same derivertive in u-direction. That means, you needed Cr constancy. The case of Bézier surfaces can be reduced to Bézier curves. You have only to check the condition for Bézier curves for every row of Bézier points which are Bézier curves.
CAGD 3: curved surfaces 2.1 Smoothness and subdivision You have a Bézier surface which you want to divide into two pieces. In case of a Bézier curve you could divide it if you use the algorithmus from de Casteljau. Here you can do the same. The case of Bézier surfaces can be reduced to Bézier curves. You only have to use the algorithmen for Bézier curves for every row of Bézier points which are Bézier curves.
CAGD 3: curved surfaces 2.2 Estimation of twist vectors What are twist vectors ? Twist vectors are the mixed derivertives of a Bézier surface. We write 2/ u,v for this derivertive. Twist vectors have a huge importance for the construction of surfaces. They are often needed to make a realistic crossing between different surfaces. We will now discuss to two different methods to estimate twist vectors. The „Null-twist vector“ and the „Adinis-twist vector“.
CAGD 3: curved surfaces 2.2 Estimation of twist vectors null-twist vector: Easiest and first used method, that puts the twist vector to the Null-twist vector. This method is only optimal for „Schiebe“-surfaces, because their twist vector disappear. Disadvantage: By other surfaces there will be flat positions and the surface becomes distorted. Advantage: By networks of partial surfaces these vectors construct a global C1 constant surface. Therefore, this is a secure method to construct surfaces.
CAGD 3: curved surfaces 2.2 Estimation of twist vectors Adinis-twist vector: With the four edgecurves of the surface we can make a bilinear tied Coonspatch. Then we take the edge twist vectors of this surface as the resulting vectors.
CAGD 3: curved surfaces 2.2 Estimation of twist vectors Adinis-twist vector: Problem: This method is only perfect, for the case that you have one surface. When there are networks of surfaces you don‘t have the garanty, that you get a C1 constant surface. Solution:
CAGD 3: curved surfaces 2.2 Estimation of twist vectors Adinis-twist vector: Solution: We take four partial surfaces, which should be connected and that build again a Coonspatch with their edgecurves. Now we choose the point where they meet as the resulting twist vector. So we get a C1 constant surface.
CAGD 3: curved surfaces 2.2 Estimation of twist vectors Two different methods to estimate twist vectors and their result:
CAGD 3: curved surfaces 2.3 Tensor product of interpolants Now we examine a problem which we can often find in the daily work with surfaces. Given: A field of (m+1)*(n+1) data points with xij 0i m, 0 j n Wanted: A surface interpolating this points To find this surface we have to solve the system of equation based on the formula (4.1) for the given points. This can be written with matrixes: X = A*C*B
CAGD 3: curved surfaces 2.3 Tensor product of interpolants N+1 N+1 M+1 N+1 N+1 N+1 M + 1 M + 1 M + 1 M + 1 M + 1 N + 1 * * X D D A B C This equation can be written as X = D*B (I) with D = A*C (II) (I) can be seen as a family of (m+1) interpolation problems which can be solved with the same coefficient matrix B. Then we get the matrix D. The second formula can be interpreted as (n+1) inter- polation problems and can be solved in the same way. So we get the coefficient matrix C.
CAGD 3: curved surfaces 2.3 Tensor product of interpolants Visualisation: (Bicubic Spline-Interpolation)
CAGD 3: curved surfaces 2.4 Bicubic Hermite-Partsurfaces Hermite-Partsurface With the tensor product approach we get the following formula for bicubic-Hermite-Partsurfaces : (5.1) Beside we need the points, the partial derivertives and the mixed derivertives of this surface for the hi,j
CAGD 3: curved surfaces 2.4 Bicubic Hermite-Partsurfaces Dates to one vertex
CAGD 3: curved surfaces 2.4 Bicubic Hermite-Partsurfaces Hermite-Partsurface A partsurface (I,J) of a network of Hermite-surfaces is given through this formula: With s,t as local parameters in the interval [ui,ui+1] and [vj,vj+1] and the modified matrix hi,j: