Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix...

42
Implicit Matrix Representations of Rational B´ ezier Curves and Surfaces Laurent Bus´ e INRIA Sophia Antipolis, France [email protected] GD/SPM Conference, Denver, USA November 11, 2013

Transcript of Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix...

Page 1: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Implicit Matrix Representations of Rational BezierCurves and Surfaces

Laurent Buse

INRIA Sophia Antipolis, [email protected]

GD/SPM Conference, Denver, USANovember 11, 2013

Page 2: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Overall motivation

Intersection problems between parameterized curves and surfaces

I Reliability and accuracy are basic important prerequisites.

I Must deal with numerical errors due to finite precision computations.

Focus on Ray/Nurbs intersection:

I ray tracing

I meshing (via Delaunay refinement)

Page 3: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Overall motivation

Intersection problems between parameterized curves and surfaces

I Reliability and accuracy are basic important prerequisites.

I Must deal with numerical errors due to finite precision computations.

Focus on Ray/Nurbs intersection:

I ray tracing

I meshing (via Delaunay refinement)

Page 4: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Purpose of this talk

Implicitization as “ F (x , y , z) = 0 ” is very classical but fails in general

I Polynomial elimination, such as Grobner basis, is not adapted.

I Resultant matrices and Sederberg’s moving planes and quadricsmethod are very sensitive to the presence of base points.

⇒ Turn to a more general matrix-based implicit representation :

“ rankM(x , y , z) drops ”

I Overcome the difficulty of base points

I Enhance and exploit links with Linear Algebra

I Numerical computations by means of Numerical Linear Algebramethods (SVD, eigen-computations).

Page 5: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Purpose of this talk

Implicitization as “ F (x , y , z) = 0 ” is very classical but fails in general

I Polynomial elimination, such as Grobner basis, is not adapted.

I Resultant matrices and Sederberg’s moving planes and quadricsmethod are very sensitive to the presence of base points.

⇒ Turn to a more general matrix-based implicit representation :

“ rankM(x , y , z) drops ”

I Overcome the difficulty of base points

I Enhance and exploit links with Linear Algebra

I Numerical computations by means of Numerical Linear Algebramethods (SVD, eigen-computations).

Page 6: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Moving planes of a Bezier patch

Suppose given a tensor-product Bezier patch of bi-degree (d1, d2):

φ(u, v) =

∑d1i=0

∑d2j=0 wi,jbi,jB

d1i (u)Bd2

j (v)∑d1i=0

∑d2j=0 wi,jB

d1i (u)Bd2

j (v)

=

(f1(u, v)

f0(u, v),f2(u, v)

f0(u, v),f3(u, v)

f0(u, v)

)

I bi,j ’s and wi,j ’s are the control points and weights.

I the fi ’s are polynomials of bi-degree (d1, d2).

Definition (after Sederberg)

A moving plane of bi-degree (ν1, ν2) is a polynomial

a0(u, v) + a1(u, v)X + a2(u, v)Y + a3(u, v)Z

such that deg(ai ) ≤ (ν1, ν2) (comp.-wise) and∑3

i=0 ai (u, v)fi (u, v) ≡ 0.

I Planes parameterized by (u, v) passing through the point φ(u, v).

Page 7: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Moving planes of a Bezier patch

Suppose given a tensor-product Bezier patch of bi-degree (d1, d2):

φ(u, v) =

∑d1i=0

∑d2j=0 wi,jbi,jB

d1i (u)Bd2

j (v)∑d1i=0

∑d2j=0 wi,jB

d1i (u)Bd2

j (v)=

(f1(u, v)

f0(u, v),f2(u, v)

f0(u, v),f3(u, v)

f0(u, v)

)

I bi,j ’s and wi,j ’s are the control points and weights.

I the fi ’s are polynomials of bi-degree (d1, d2).

Definition (after Sederberg)

A moving plane of bi-degree (ν1, ν2) is a polynomial

a0(u, v) + a1(u, v)X + a2(u, v)Y + a3(u, v)Z

such that deg(ai ) ≤ (ν1, ν2) (comp.-wise) and∑3

i=0 ai (u, v)fi (u, v) ≡ 0.

I Planes parameterized by (u, v) passing through the point φ(u, v).

Page 8: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Moving planes of a Bezier patch

Suppose given a tensor-product Bezier patch of bi-degree (d1, d2):

φ(u, v) =

∑d1i=0

∑d2j=0 wi,jbi,jB

d1i (u)Bd2

j (v)∑d1i=0

∑d2j=0 wi,jB

d1i (u)Bd2

j (v)=

(f1(u, v)

f0(u, v),f2(u, v)

f0(u, v),f3(u, v)

f0(u, v)

)

I bi,j ’s and wi,j ’s are the control points and weights.

I the fi ’s are polynomials of bi-degree (d1, d2).

Definition (after Sederberg)

A moving plane of bi-degree (ν1, ν2) is a polynomial

a0(u, v) + a1(u, v)X + a2(u, v)Y + a3(u, v)Z

such that deg(ai ) ≤ (ν1, ν2) (comp.-wise) and∑3

i=0 ai (u, v)fi (u, v) ≡ 0.

I Planes parameterized by (u, v) passing through the point φ(u, v).

Page 9: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Building of matrix of moving planes

Definition

From φ, define the matrix Mφ as follows:

I Its columns ↔ basis of moving planes of bi-degree (d1 − 1, 2d2 − 1),

I Each column is filled with the coeff. of a moving plane w.r.t. u, v .

I The entries of Mφ are linear forms in R[X ,Y ,Z ] : Mφ(X ,Y ,Z ).

I Extension of Sederberg’s approach by taking all moving planes

I Mφ is non-square in general, but have more columns than rows

Example: from a ruled surface, (d1, d2) = (1, 2), we get

Mφ(X ,Y ,Z ) =

−1 + X 1− X + Z 0 Y−1 + X + Z −2X Y 0−1 + X 2− 2X + Z 0 Y − 1

Z −2X Y − 1 0

.

Page 10: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Building of matrix of moving planes

Definition

From φ, define the matrix Mφ as follows:

I Its columns ↔ basis of moving planes of bi-degree (d1 − 1, 2d2 − 1),

I Each column is filled with the coeff. of a moving plane w.r.t. u, v .

I The entries of Mφ are linear forms in R[X ,Y ,Z ] : Mφ(X ,Y ,Z ).

I Extension of Sederberg’s approach by taking all moving planes

I Mφ is non-square in general, but have more columns than rows

Example: from a ruled surface, (d1, d2) = (1, 2), we get

Mφ(X ,Y ,Z ) =

−1 + X 1− X + Z 0 Y−1 + X + Z −2X Y 0−1 + X 2− 2X + Z 0 Y − 1

Z −2X Y − 1 0

.

Page 11: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Building of matrix of moving planes

Definition

From φ, define the matrix Mφ as follows:

I Its columns ↔ basis of moving planes of bi-degree (d1 − 1, 2d2 − 1),

I Each column is filled with the coeff. of a moving plane w.r.t. u, v .

I The entries of Mφ are linear forms in R[X ,Y ,Z ] : Mφ(X ,Y ,Z ).

I Extension of Sederberg’s approach by taking all moving planes

I Mφ is non-square in general, but have more columns than rows

Example: from a ruled surface, (d1, d2) = (1, 2), we get

Mφ(X ,Y ,Z ) =

−1 + X 1− X + Z 0 Y−1 + X + Z −2X Y 0−1 + X 2− 2X + Z 0 Y − 1

Z −2X Y − 1 0

.

Page 12: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

The key fact

The drop of rank property

Given P ∈ R3, the matrix Mφ(P) is not full rank (= number of rows) ifand only if P belongs to the (algebraic closure of the) Bezier patch .

⇒ The matrix Mφ yields an implicit representation of φ.

Remark: The same holds for triangular Bezier patches : for a degree dpatch take degree 2(d − 1) moving planes.

Example of the sphere:

Mφ =

−Z −Y 1− X 0

0 1 + X −Y −Z

1 + X 0 −Z Y

Page 13: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

The key fact

The drop of rank property

Given P ∈ R3, the matrix Mφ(P) is not full rank (= number of rows) ifand only if P belongs to the (algebraic closure of the) Bezier patch .

⇒ The matrix Mφ yields an implicit representation of φ.

Remark: The same holds for triangular Bezier patches : for a degree dpatch take degree 2(d − 1) moving planes.

Example of the sphere:

Mφ =

−Z −Y 1− X 0

0 1 + X −Y −Z

1 + X 0 −Z Y

Page 14: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

The key fact

The drop of rank property

Given P ∈ R3, the matrix Mφ(P) is not full rank (= number of rows) ifand only if P belongs to the (algebraic closure of the) Bezier patch .

⇒ The matrix Mφ yields an implicit representation of φ.

Remark: The same holds for triangular Bezier patches : for a degree dpatch take degree 2(d − 1) moving planes.

Example of the sphere:

Mφ =

−Z −Y 1− X 0

0 1 + X −Y −Z

1 + X 0 −Z Y

Page 15: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Computational aspects

The matrix Mφ is very easy to compute

I From bi,j ’s and wi,j ’s build directly a matrix (Sylvester-like)

I It is of size about 8d1d2 (resp. 8d2).

I Mφ is then obtained after a single nullspace computation

It is adapted to numerical computations through the Singular ValueDecomposition (SVD)

I Mφ can be computed numerically by means of the SVD

I It turns a geometric problem into a rank revealing problem.

I No polynomial computations, only classical linear algebra tools

I It can be easily added to an existing library on NURBS.

Page 16: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Computational aspects

The matrix Mφ is very easy to compute

I From bi,j ’s and wi,j ’s build directly a matrix (Sylvester-like)

I It is of size about 8d1d2 (resp. 8d2).

I Mφ is then obtained after a single nullspace computation

It is adapted to numerical computations through the Singular ValueDecomposition (SVD)

I Mφ can be computed numerically by means of the SVD

I It turns a geometric problem into a rank revealing problem.

I No polynomial computations, only classical linear algebra tools

I It can be easily added to an existing library on NURBS.

Page 17: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Example: the sphere

A (triangular Bezier) parameterization of the sphere:

φ(u, v) =

(1− u2 − v2

1 + u2 + v2,

2u

1 + u2 + v2,

2v

1 + u2 + v2

)I Exact computation of matrix representation

Mφ =

−Z −Y 1 − X 0

0 1 + X −Y −Z

1 + X 0 −Z Y

I Approximate computation of matrix representation by SVD −0.000 + 0.000X − 0.354Y + 0.354Z 0.0811 − 0.0811X + 0.324Y + 0.324Z−0.354 − 0.354X + 0.000Y + 0.354Z −0.243 − 0.406X + 0.324Y + 0.243Z0.354 + 0.354X − 0.354Y + 0.000Z −0.243 − 0.406X + 0.243Y + 0.324Z

−0.354 + 0.354X + 0.000Y − 0.000Z −0.005 + 0.005X − 0.000Y + 0.000Z−0.354 + 0.354X + 0.0107Y + 0.354Z −0.005 + 0.005X − 0.707Y + 0.005Z−0.354 + 0.354X + 0.354Y − 0.0107Z −0.005 + 0.005X + 0.005Y + 0.707Z

I In a computer, it is stored as 4 numerical matrices:

Mφ(X ,Y ,Z ) = M0 + M1X + M2Y + M3Z .

Page 18: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Example: the sphere

A (triangular Bezier) parameterization of the sphere:

φ(u, v) =

(1− u2 − v2

1 + u2 + v2,

2u

1 + u2 + v2,

2v

1 + u2 + v2

)I Exact computation of matrix representation

Mφ =

−Z −Y 1 − X 0

0 1 + X −Y −Z

1 + X 0 −Z Y

I Approximate computation of matrix representation by SVD −0.000 + 0.000X − 0.354Y + 0.354Z 0.0811 − 0.0811X + 0.324Y + 0.324Z−0.354 − 0.354X + 0.000Y + 0.354Z −0.243 − 0.406X + 0.324Y + 0.243Z0.354 + 0.354X − 0.354Y + 0.000Z −0.243 − 0.406X + 0.243Y + 0.324Z

−0.354 + 0.354X + 0.000Y − 0.000Z −0.005 + 0.005X − 0.000Y + 0.000Z−0.354 + 0.354X + 0.0107Y + 0.354Z −0.005 + 0.005X − 0.707Y + 0.005Z−0.354 + 0.354X + 0.354Y − 0.0107Z −0.005 + 0.005X + 0.005Y + 0.707Z

I In a computer, it is stored as 4 numerical matrices:

Mφ(X ,Y ,Z ) = M0 + M1X + M2Y + M3Z .

Page 19: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Example: the sphere

A (triangular Bezier) parameterization of the sphere:

φ(u, v) =

(1− u2 − v2

1 + u2 + v2,

2u

1 + u2 + v2,

2v

1 + u2 + v2

)I Exact computation of matrix representation

Mφ =

−Z −Y 1 − X 0

0 1 + X −Y −Z

1 + X 0 −Z Y

I Approximate computation of matrix representation by SVD −0.000 + 0.000X − 0.354Y + 0.354Z 0.0811 − 0.0811X + 0.324Y + 0.324Z−0.354 − 0.354X + 0.000Y + 0.354Z −0.243 − 0.406X + 0.324Y + 0.243Z0.354 + 0.354X − 0.354Y + 0.000Z −0.243 − 0.406X + 0.243Y + 0.324Z

−0.354 + 0.354X + 0.000Y − 0.000Z −0.005 + 0.005X − 0.000Y + 0.000Z−0.354 + 0.354X + 0.0107Y + 0.354Z −0.005 + 0.005X − 0.707Y + 0.005Z−0.354 + 0.354X + 0.354Y − 0.0107Z −0.005 + 0.005X + 0.005Y + 0.707Z

I In a computer, it is stored as 4 numerical matrices:

Mφ(X ,Y ,Z ) = M0 + M1X + M2Y + M3Z .

Page 20: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

It also holds for curves!

Suppose given a rational Bezier curve of degree d :

φ(t) =

∑di=0 wibiB

di (t)∑d

i=0 wiBdi (t)

=

(f1(t)

f0(t),f2(t)

f0(t),f3(t)

f0(t)

)I Consider moving planes of degree d − 1

I One can build Mφ with the exact same definition

I Mφ still have the same properties.

Nice property:

⇒ Curves and surfaces can be treated exactly in the same way!

Example of a matrix representation of a rational Bezier curve:

Mφ =

1 0 X + 3Y 0 Z 0−3 1 −X − 3Y X + 3Y −2Z Z

X + 1 −3 3X − 3Y −X − 3Y 2Y − 2Z −2Z0 X + 1 0 3X − 3Y 0 2Y − 2Z

Page 21: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

It also holds for curves!

Suppose given a rational Bezier curve of degree d :

φ(t) =

∑di=0 wibiB

di (t)∑d

i=0 wiBdi (t)

=

(f1(t)

f0(t),f2(t)

f0(t),f3(t)

f0(t)

)I Consider moving planes of degree d − 1

I One can build Mφ with the exact same definition

I Mφ still have the same properties.

Nice property:

⇒ Curves and surfaces can be treated exactly in the same way!

Example of a matrix representation of a rational Bezier curve:

Mφ =

1 0 X + 3Y 0 Z 0−3 1 −X − 3Y X + 3Y −2Z Z

X + 1 −3 3X − 3Y −X − 3Y 2Y − 2Z −2Z0 X + 1 0 3X − 3Y 0 2Y − 2Z

Page 22: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

It also holds for curves!

Suppose given a rational Bezier curve of degree d :

φ(t) =

∑di=0 wibiB

di (t)∑d

i=0 wiBdi (t)

=

(f1(t)

f0(t),f2(t)

f0(t),f3(t)

f0(t)

)I Consider moving planes of degree d − 1

I One can build Mφ with the exact same definition

I Mφ still have the same properties.

Nice property:

⇒ Curves and surfaces can be treated exactly in the same way!

Example of a matrix representation of a rational Bezier curve:

Mφ =

1 0 X + 3Y 0 Z 0−3 1 −X − 3Y X + 3Y −2Z Z

X + 1 −3 3X − 3Y −X − 3Y 2Y − 2Z −2Z0 X + 1 0 3X − 3Y 0 2Y − 2Z

Page 23: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

It also holds for curves!

Suppose given a rational Bezier curve of degree d :

φ(t) =

∑di=0 wibiB

di (t)∑d

i=0 wiBdi (t)

=

(f1(t)

f0(t),f2(t)

f0(t),f3(t)

f0(t)

)I Consider moving planes of degree d − 1

I One can build Mφ with the exact same definition

I Mφ still have the same properties.

Nice property:

⇒ Curves and surfaces can be treated exactly in the same way!

Example of a matrix representation of a rational Bezier curve:

Mφ =

1 0 X + 3Y 0 Z 0−3 1 −X − 3Y X + 3Y −2Z Z

X + 1 −3 3X − 3Y −X − 3Y 2Y − 2Z −2Z0 X + 1 0 3X − 3Y 0 2Y − 2Z

Page 24: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Does a point belong to a Bezier patch ?

I Suppose given:

• a rational Bezier curve or surface,• a point P = (x , y , z) ∈ R3.

I Evaluate the matrix Mφ at P :

Mφ(P) := M0 + M1x + M2y + M3z

I Compute the SVD of Mφ(P) = U.S .V : if theε-rank drops then P ”belongs” to this rationalBezier curve or surface.

I Get the pre-image (inversion) for the same price:it can be extracted from the last row of U byratio computations.

Page 25: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Does a point belong to a Bezier patch ?

I Suppose given:

• a rational Bezier curve or surface,• a point P = (x , y , z) ∈ R3.

I Evaluate the matrix Mφ at P :

Mφ(P) := M0 + M1x + M2y + M3z

I Compute the SVD of Mφ(P) = U.S .V : if theε-rank drops then P ”belongs” to this rationalBezier curve or surface.

I Get the pre-image (inversion) for the same price:it can be extracted from the last row of U byratio computations.

Page 26: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Does a point belong to a Bezier patch ?

I Suppose given:

• a rational Bezier curve or surface,• a point P = (x , y , z) ∈ R3.

I Evaluate the matrix Mφ at P :

Mφ(P) := M0 + M1x + M2y + M3z

I Compute the SVD of Mφ(P) = U.S .V : if theε-rank drops then P ”belongs” to this rationalBezier curve or surface.

I Get the pre-image (inversion) for the same price:it can be extracted from the last row of U byratio computations.

Page 27: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Does a point belong to a Bezier patch ?

I Suppose given:

• a rational Bezier curve or surface,• a point P = (x , y , z) ∈ R3.

I Evaluate the matrix Mφ at P :

Mφ(P) := M0 + M1x + M2y + M3z

I Compute the SVD of Mφ(P) = U.S .V : if theε-rank drops then P ”belongs” to this rationalBezier curve or surface.

I Get the pre-image (inversion) for the same price:it can be extracted from the last row of U byratio computations.

Page 28: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Drop of rank and singularities of φ

Suppose given a point P ∈ R3 and a rational Bezier curve or surface φ:

What is the rank of Mφ(P) ?

I Mφ(P) is not full rank ⇔ P belongs to Im(φ).

I The rank of Mφ(P) drops by exactly one ⇔ P is a regular pointand one can get its pre-image easily (inversion).

I The rank Mφ(P) drops by more than one ⇔ P is a singularityof φ. More precisely:

Theorem

I If φ−1(P) is finite, then the drop of rank is equal to the number ofpre-images (counting multiplicities),

I if φ−1(P) is a curve, then the drop of rank is related to the degreeand genus of this curve.

Page 29: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Drop of rank and singularities of φ

Suppose given a point P ∈ R3 and a rational Bezier curve or surface φ:

What is the rank of Mφ(P) ?

I Mφ(P) is not full rank ⇔ P belongs to Im(φ).

I The rank of Mφ(P) drops by exactly one ⇔ P is a regular pointand one can get its pre-image easily (inversion).

I The rank Mφ(P) drops by more than one ⇔ P is a singularityof φ. More precisely:

Theorem

I If φ−1(P) is finite, then the drop of rank is equal to the number ofpre-images (counting multiplicities),

I if φ−1(P) is a curve, then the drop of rank is related to the degreeand genus of this curve.

Page 30: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Drop of rank and singularities of φ

Suppose given a point P ∈ R3 and a rational Bezier curve or surface φ:

What is the rank of Mφ(P) ?

I Mφ(P) is not full rank ⇔ P belongs to Im(φ).

I The rank of Mφ(P) drops by exactly one ⇔ P is a regular pointand one can get its pre-image easily (inversion).

I The rank Mφ(P) drops by more than one ⇔ P is a singularityof φ. More precisely:

Theorem

I If φ−1(P) is finite, then the drop of rank is equal to the number ofpre-images (counting multiplicities),

I if φ−1(P) is a curve, then the drop of rank is related to the degreeand genus of this curve.

Page 31: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Drop of rank and singularities of φ

Suppose given a point P ∈ R3 and a rational Bezier curve or surface φ:

What is the rank of Mφ(P) ?

I Mφ(P) is not full rank ⇔ P belongs to Im(φ).

I The rank of Mφ(P) drops by exactly one ⇔ P is a regular pointand one can get its pre-image easily (inversion).

I The rank Mφ(P) drops by more than one ⇔ P is a singularityof φ. More precisely:

Theorem

I If φ−1(P) is finite, then the drop of rank is equal to the number ofpre-images (counting multiplicities),

I if φ−1(P) is a curve, then the drop of rank is related to the degreeand genus of this curve.

Page 32: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Drop of rank and singularities of φ

Suppose given a point P ∈ R3 and a rational Bezier curve or surface φ:

What is the rank of Mφ(P) ?

I Mφ(P) is not full rank ⇔ P belongs to Im(φ).

I The rank of Mφ(P) drops by exactly one ⇔ P is a regular pointand one can get its pre-image easily (inversion).

I The rank Mφ(P) drops by more than one ⇔ P is a singularityof φ. More precisely:

Theorem

I If φ−1(P) is finite, then the drop of rank is equal to the number ofpre-images (counting multiplicities),

I if φ−1(P) is a curve, then the drop of rank is related to the degreeand genus of this curve.

Page 33: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Curve/Curve and Curve/Surface intersection

Suppose given:

I a rational Bezier curve ψ(t) (e.g. a ray),

I a rational Bezier curve or surface and its matrixrepresentation Mφ.

”Compute” the intersection points

I Evaluate Mφ at the “point” ψ(t): Mφ(ψ(t)) is apolynomial matrix whose rank drops at the valuesof t corresponding to the intersection.

I If ψ(t) is a ray, then

Mφ(ψ(t)) = A− tB.

I If ψ(t) is a curve, then linearization (compagnonmatrices) yields a similar pencil A− tB

⇒ Generalized eigenvalue problem

Page 34: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Curve/Curve and Curve/Surface intersection

Suppose given:

I a rational Bezier curve ψ(t) (e.g. a ray),

I a rational Bezier curve or surface and its matrixrepresentation Mφ.

”Compute” the intersection points

I Evaluate Mφ at the “point” ψ(t): Mφ(ψ(t)) is apolynomial matrix whose rank drops at the valuesof t corresponding to the intersection.

I If ψ(t) is a ray, then

Mφ(ψ(t)) = A− tB.

I If ψ(t) is a curve, then linearization (compagnonmatrices) yields a similar pencil A− tB

⇒ Generalized eigenvalue problem

Page 35: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Curve/Curve and Curve/Surface intersection

Suppose given:

I a rational Bezier curve ψ(t) (e.g. a ray),

I a rational Bezier curve or surface and its matrixrepresentation Mφ.

”Compute” the intersection points

I Evaluate Mφ at the “point” ψ(t): Mφ(ψ(t)) is apolynomial matrix whose rank drops at the valuesof t corresponding to the intersection.

I If ψ(t) is a ray, then

Mφ(ψ(t)) = A− tB.

I If ψ(t) is a curve, then linearization (compagnonmatrices) yields a similar pencil A− tB

⇒ Generalized eigenvalue problem

Page 36: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Curve/Curve and Curve/Surface intersection

Suppose given:

I a rational Bezier curve ψ(t) (e.g. a ray),

I a rational Bezier curve or surface and its matrixrepresentation Mφ.

”Compute” the intersection points

I Evaluate Mφ at the “point” ψ(t): Mφ(ψ(t)) is apolynomial matrix whose rank drops at the valuesof t corresponding to the intersection.

I If ψ(t) is a ray, then

Mφ(ψ(t)) = A− tB.

I If ψ(t) is a curve, then linearization (compagnonmatrices) yields a similar pencil A− tB

⇒ Generalized eigenvalue problem

Page 37: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Ray tracing of Rational Bezier Surface

I Classical approach: implicitization of the ray and solving in theparameters of the surface,

I With matrix representation, implicitization of the surface and solvingin the parameter of the ray. Inversion is very important here:

• normal computations (reflexion of the light)• Bezier patch of a NURBS, trimmed patch.

Page 38: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Ray tracing of Rational Bezier Surface

I Classical approach: implicitization of the ray and solving in theparameters of the surface,

I With matrix representation, implicitization of the surface and solvingin the parameter of the ray. Inversion is very important here:

• normal computations (reflexion of the light)• Bezier patch of a NURBS, trimmed patch.

Page 39: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Ray tracing of Rational Bezier Surface

I Classical approach: implicitization of the ray and solving in theparameters of the surface,

I With matrix representation, implicitization of the surface and solvingin the parameter of the ray. Inversion is very important here:

• normal computations (reflexion of the light)• Bezier patch of a NURBS, trimmed patch.

Page 40: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Matrix representations yield distance-like functions

Let Mφ be a matrix representation of a Bezier curve or surface

Definition

∀P ∈ R3 : δMφ(P) :=∏i

σi (Mφ(P))

where σi (Mφ(P)) are the singular values of Mφ(P).

I δMφ(P) vanishes exactly on the Bezier curve or surface

I The growth of δMφ(P) is comparable to the usual Euclidean distance.

This squared distance is algebraic:

δMφ(P)2 =∏i

σi (Mν(P))2 = det(Mφ(P)Mφ(P)T ).

⇒ det(MφMtφ) is an implicit equation of this Bezier curve or surface over

the real numbers.

Page 41: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Matrix representations yield distance-like functions

Let Mφ be a matrix representation of a Bezier curve or surface

Definition

∀P ∈ R3 : δMφ(P) :=∏i

σi (Mφ(P))

where σi (Mφ(P)) are the singular values of Mφ(P).

I δMφ(P) vanishes exactly on the Bezier curve or surface

I The growth of δMφ(P) is comparable to the usual Euclidean distance.

This squared distance is algebraic:

δMφ(P)2 =∏i

σi (Mν(P))2 = det(Mφ(P)Mφ(P)T ).

⇒ det(MφMtφ) is an implicit equation of this Bezier curve or surface over

the real numbers.

Page 42: Implicit Matrix Representations of Rational Bézier Curves ... · Computational aspects The matrix M ˚is very easy to compute I From b i;j’s and w i;j’s build directly a matrix

Matrix representations yield distance-like functions

Let Mφ be a matrix representation of a Bezier curve or surface

Definition

∀P ∈ R3 : δMφ(P) :=∏i

σi (Mφ(P))

where σi (Mφ(P)) are the singular values of Mφ(P).

I δMφ(P) vanishes exactly on the Bezier curve or surface

I The growth of δMφ(P) is comparable to the usual Euclidean distance.

This squared distance is algebraic:

δMφ(P)2 =∏i

σi (Mν(P))2 = det(Mφ(P)Mφ(P)T ).

⇒ det(MφMtφ) is an implicit equation of this Bezier curve or surface over

the real numbers.