• Chakin’s scheme Step 0 P 1 P 3 P 0 P 2
• Chakin’s scheme Step 1 P 1 Q 1 R 0 P 3 Q 2 Q 0 R 1 P 0 Q 2 P 2
• Chakin’s scheme Step 1 P 1 Q 1 R 0 P 3 Q 2 Q 0 R 1 P 0 Q 2 P 2
• Chakin’s scheme Step 1 P 2 P 1 P 5 P 0 P 3 P 4 Repeat …
• Chakin’s scheme P 2 P 1 P 5 P 0 P 3 P 4 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.
Doo- Sabin’s scheme • Computing a refined 4x4 patch from a 3x3 v P patch: P P 01 00 02 – Extract u the wanted Q Q 00 01 3x3 patch* P – Consider each P P 12 11 10 « quadrant » Q Q 10 11 P P P 22 21 20 *This step is already implemented in the provided code.
Doo- Sabin’s scheme • Computing a refined 4x4 patch from a 3x3 v P patch: P P 01 00 02 – For u each Q 00 quadrant, P Compute a P P 12 11 10 3x3 « sub-patch »* *You will have to implement this step. P P P We will see later how 22 21 20 to compute them.
Doo- Sabin’s scheme • Computing a refined 4x4 patch from a 3x3 v P patch: P P 01 00 02 – For u each Q Q 01 00 quadrant, P Compute a P P 12 11 10 3x3 « sub-patch »* *You will have to P implement this step. P P 11 P We will see later how 22 21 20 to compute them.
Doo- Sabin’s scheme • Computing a refined 4x4 patch from a 3x3 v P patch: P P 01 00 02 – For u each Q Q 01 00 quadrant, P Compute a P P 12 11 10 3x3 « sub-patch »* Q 10 *You will have to P implement this step. P P 11 P We will see later how 22 21 20 to compute them.
Doo- Sabin’s scheme • Computing a refined 4x4 patch from a 3x3 v P patch: P P 01 00 02 – For u each Q Q 01 00 quadrant, P Compute a P P 12 11 10 3x3 « sub-patch »* Q Q 11 10 *You will have to P implement this step. P P 11 P We will see later how 22 21 20 to compute them.
Doo- Sabin’s scheme • Computing a refined 4x4 patch from a 3x3 v P patch: P P 01 00 02 – Finally, u Assemble the Q Q 01 00 3x3 sub-patches P together*. P P 12 11 10 Q Q 11 10 *You will have to P implement this step. P P 11 P 22 21 20
Doo- Sabin’s scheme • Computing a refined 4x4 patch from a 3x3 v P patch: P P 01 00 02 – Finally, u Assemble the Q Q 01 00 3x3 sub-patches P together*. P P 12 11 10 – You have your 4x4 refined patch. Q Q 11 10 *You will have to P implement this step. P P 11 P 22 21 20
Doo- Sabin’s scheme • Computing a 3x3 sub-patch: – Start from the points of the initial 3x3 patch. T and S v – Compute the four 3x3 matrices S u , S v , S u T (see lecture 5, pp. 57 to 62.) – Apply these matrices to the 3x3 matrix P of points of the initial 3x3 patch. • The choice of the applied matrices on P will determine on 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 of the initial 3x3 patch. • The choice of the applied matrices on P will determine on which quadrant your are computing a sub-patch. • E.g.: P’ =S u . P .S u T computes the points of the sub-patch of quadrant Q 00 .
Doo- Sabin’s scheme • Computing a 3x3 sub-patch: – Apply these matrices to the 3x3 matrix P of points of the initial 3x3 patch. • The choice of the applied matrices on P will determine on which quadrant your are computing a sub-patch. • E.g.: P’ =S u . P .S u T computes the points of the sub-patch of quadrant Q 00 . 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 surface that tends to a degree-2 B-Spline surface with uniform nodal sequences. (Given as a red surface in the code.)
Doo- Sabin’s scheme
Doo- Sabin’s scheme
Doo- Sabin’s scheme
Doo- Sabin’s scheme
Doo- Sabin’s scheme
Recommend
More recommend