- Chakin’s scheme
Chakins scheme Step 0 P 1 P 3 P 0 P 2 Chakins scheme Step 1 P 1 Q - - PowerPoint PPT Presentation
Chakins scheme Step 0 P 1 P 3 P 0 P 2 Chakins scheme Step 1 P 1 Q - - PowerPoint PPT Presentation
Chakins scheme Step 0 P 1 P 3 P 0 P 2 Chakins scheme Step 1 P 1 Q 1 R 0 P 3 Q 2 Q 0 R 1 P 0 Q 2 P 2 Chakins scheme Step 1 P 1 Q 1 R 0 P 3 Q 2 Q 0 R 1 P 0 Q 2 P 2 Chakins scheme Step 1 P 2 P 1 P 5 P 0 P 3 P 4 Repeat
- Chakin’s scheme
Step 1
P0 P1 P2 P3 Q0 R0 Q1 R1 Q2 Q2
- Chakin’s scheme
Step 1
P0 P1 P2 P3 Q0 R0 Q1 R1 Q2 Q2
- Chakin’s scheme
Step 1 Repeat…
P0 P1 P2 P3 P4 P5
- Chakin’s scheme
P0 P1 P2 P3 P4 P5
4 CPs 6 CPs General case: (n) CPs (2n-2) CPs
- Chakin’s scheme converges towards a
quadratic B-spline with uniform knots.
Step 0
- Chakin’s scheme converges towards a
quadratic B-spline with uniform knots.
Step 1
- Chakin’s scheme converges towards a
quadratic B-spline with uniform knots.
Step 2
- Chakin’s scheme converges towards a
quadratic B-spline with uniform knots.
Step 3
- Chakin’s scheme converges towards a
quadratic B-spline with uniform knots.
Step 4
- Chakin’s scheme converges towards a
quadratic B-spline with uniform knots.
Step 10
Doo-Sabin’s scheme
- Surface subdivision scheme
- Generalize Chaïkin’s scheme to meshes with
quadrangles.
- (Can be further generalized to any mesh.)
Doo-Sabin’s scheme
- Principle: start from a mesh
Doo-Sabin’s scheme
- Loop over all 3x3 « patches »
Doo-Sabin’s scheme
- Loop over all 3x3 « patches »
Doo-Sabin’s scheme
- Loop over all 3x3 « patches »
Doo-Sabin’s scheme
- Loop over all 3x3 « patches »
Doo-Sabin’s scheme
- Over a given 3x3 « patch » compute a refined
4x4 patch*
*We will se later on how to compute a refined 4x4 patch.
Doo-Sabin’s scheme
- Over a given 3x3 « patch » compute a refined
4x4 patch*
*We will se later on how to compute a refined 4x4 patch.
Doo-Sabin’s scheme
- Over a given 3x3 « patch » compute a refined
4x4 patch*
*We will se later on how to compute a refined 4x4 patch.
Doo-Sabin’s scheme
- Over a given 3x3 « patch » compute a refined
4x4 patch*
*We will se later on how to compute a refined 4x4 patch.
Doo-Sabin’s scheme
- Assemble the refined 4x4 patches together*
*This step is already implemented in the provided code.
Doo-Sabin’s scheme
- Assemble the refined 4x4 patches together*
*This step is already implemented in the provided code.
Doo-Sabin’s scheme
- Again, loop over the 3x3 patches and redo the
preceeding operations…
…
Doo-Sabin’s scheme
- Computing a refined 4x4 patch from a 3x3
patch:
– Extract the wanted 3x3 patch*
*This step is already implemented in the provided code.
u v P P P P P P P P P Q Q Q Q
00 01 02 10 11 12 21 22 00 10 20 01 11
Doo-Sabin’s scheme
- Computing a refined 4x4 patch from a 3x3
patch:
– Extract the wanted 3x3 patch* – Consider each « quadrant »
*This step is already implemented in the provided code.
u v P P P P P P P P P Q
00 01 02 10 11 12 21 22 00 20
Doo-Sabin’s scheme
- Computing a refined 4x4 patch from a 3x3
patch:
– For each quadrant, Compute a 3x3 « sub-patch »*
*You will have to implement this step. We will see later how to compute them.
u v P P P P P P P P P Q
00 01 02 10 11 12 21 22 00 20
Q
01
P
11
Doo-Sabin’s scheme
- Computing a refined 4x4 patch from a 3x3
patch:
– For each quadrant, Compute a 3x3 « sub-patch »*
*You will have to implement this step. We will see later how to compute them.
u v P P P P P P P P P Q
00 01 02 10 11 12 21 22 00 20
Q
01
P
11
Q
10
Doo-Sabin’s scheme
- Computing a refined 4x4 patch from a 3x3
patch:
– For each quadrant, Compute a 3x3 « sub-patch »*
*You will have to implement this step. We will see later how to compute them.
u v P P P P P P P P P Q
00 01 02 10 11 12 21 22 00 20
Q
01
P
11
Q
10
Q
11
Doo-Sabin’s scheme
- Computing a refined 4x4 patch from a 3x3
patch:
– For each quadrant, Compute a 3x3 « sub-patch »*
*You will have to implement this step. We will see later how to compute them.
u v P P P P P P P P P Q
00 01 02 10 11 12 21 22 00 20
Q
01
P
11
Q
10
Q
11
Doo-Sabin’s scheme
- Computing a refined 4x4 patch from a 3x3
patch:
– Finally, Assemble the 3x3 sub-patches together*.
*You will have to implement this step.
u v P P P P P P P P P Q
00 01 02 10 11 12 21 22 00 20
Q
01
P
11
Q
10
Q
11
Doo-Sabin’s scheme
- Computing a refined 4x4 patch from a 3x3
patch:
– Finally, Assemble the 3x3 sub-patches together*. – You have your 4x4 refined patch.
*You will have to implement this step.
Doo-Sabin’s scheme
- Computing a 3x3 sub-patch:
– Start from the points of the initial 3x3 patch. – Compute the four 3x3 matrices Su, Sv, Su
T and Sv T
(see lecture 5, pp. 57 to 62.) – Apply these matrices to the 3x3 matrix P of points
- f the initial 3x3 patch.
- The choice of the applied matrices on P will determine
- n which quadrant your are computing a sub-patch.
Doo-Sabin’s scheme
- Computing a 3x3 sub-patch:
– Apply these matrices to the 3x3 matrix P of points
- f the initial 3x3 patch.
- The choice of the applied matrices on P will determine
- n which quadrant your are computing a sub-patch.
- E.g.: P’=Su.P.Su
T
computes the points of the sub-patch of quadrant Q00.
Doo-Sabin’s scheme
- Computing a 3x3 sub-patch:
– Apply these matrices to the 3x3 matrix P of points
- f the initial 3x3 patch.
- The choice of the applied matrices on P will determine
- n which quadrant your are computing a sub-patch.
- E.g.: P’=Su.P.Su
T
computes the points of the sub-patch of quadrant Q00. Advise: use the class Square_Matrix (in linear_algebra.h) for performing matrix-matrix multiplications.
Doo-Sabin’s scheme
- Result: you should obtain a subdivision