Lecture_008_Introduction_to_Geometry

Encodings of Geometry

Different Encoding of a Circle

Different Encoding of a Circle

Challenges: can't find the best representation

Explicit Encoding: all points are given directly (easy to find all points, relatively easy to check point belonging, hard to check 3D relation)

Implicit Encoding (decision problem): find the best way to encode functions (hard to find all points, easy to check point belonging, easy to check 3D relation)

Implicit Encoding

Algebraic Surfaces

Algebraic Surfaces

Algebraic Surfaces: surface is a zero set of polynomial in x, y, z.

Boolean Operations in Constructive Solid Geometry

Boolean Operations in Constructive Solid Geometry

Geometric Tree in Constructive Solid Geometry

Geometric Tree in Constructive Solid Geometry

Constructive Solid Geometry: building complicated shapes using boolean operations

Blobby Surfaces in Extended Dimension

Blobby Surfaces in Extended Dimension

Blending Irregular Shape with Distance Function

Blobby Surfaces: blend surfaces together

Signed Distance Function

Signed Distance Function

Fractals: constructed by checking whether a point is in the mandelbrot set (whether it will converge on some repeated operation)

Mandelbrot Set Formulation

Mandelbrot Set Formulation

Mandelbrot Set Example

Mandelbrot Set Example

Implicit Representation

Explicit Encoding

Grid-based Levelset Encoding is commonly used in MRI

Grid-based Levelset Encoding is commonly used in MRI

Level Set:

Side note: 3D printer operates in O(n^3) because it fills the interior. Laser cut operates in O(n^2) because it just cuts the surface and stack up together. Resin printer operates in O(n) span because it shoots a screen of beams to solidify objects.

Pointcloud: (x, y, z) sometimes augmented with normal vector \vec{n}

Polygon Mesh: triangles or quads

Bernstein Basis

Bernstein Basis: a good way to adjust polynomials

Bernstein Basis: a good way to adjust polynomials

If we write polynomials like a + bx + cx^2 + dx^3 + ... it is not obvious how we should adjust the polynomial to achieve certain shape. However, Bernstein Basis provides a new encoding to polynomials that is intuitive to adjust.

Bezier Curves

Bezier Curves

Bezier Curves: it is a curve expressed in Bernstein Basis.

\gamma(x) = \sum_{k = 0}^n B_{n, k}(s)p_k

where p_k is control point for k degree polynomials.

Properties of Bezier Curves:

Font format sometimes use degree 4 Bezier due to lack of computation in the past

Tensor Product: points on the surface is given by two functions each control variation fo u and v.

Tensor Product

Tensor Product

Bezier Patches: sum of tensor products of Berstein basis.

Bezier Patches

Bezier Patches

It is not obvious why those patches can be connected to form a smooth surface. So there are many spline patch schemes: NURBS, Gregory, Pm, polar.

Trade offs: degree of freedom, continuity, difficulty of editing, generality

Rational B-spline: Bezier can't express conics. But this can be achieved by adding homogeneous coordinates and projection back to plane.

NURBS

NURBS

Non-Uniform Rational BSpline (NURBS)

Subdivision

Subdivision

Subdivision Surface: repeatedly split by taking weighted average to get new positions

Table of Content