Geometry Processing Project

Implicit Surface Reconstruction

  • Compute an implicit MLS function approximating a 3D point cloud with given normals.
  • Sample the implicit function on a 3D volumetric grid.
  • Apply the marching cubes algorithm to extract a triangle mesh from the zero level set.

Image 1

Mesh Parameterization

  • Parameterize a mesh by minimizing four different distortion measures with fixed or free boundaries.
    • Spring energy (uniform Laplacian)
    • Dirichlet/harmonic energy (cotangent Laplacian)
    • Least Squares Conformal Maps (LSCM)
    • As-Rigid-As-Possible (ARAP)
  • Visualize the distortion by color coding.

Uniform and cotangent Laplacian

Spring energy is defined as \[ \frac{1}{2}k_{i,j}\Vert \mathbf{u}_{i}-\mathbf{u}_{j} \Vert^{2} \] Minimizing the spring enegy \[ \begin{align*} E(\mathbf{u}_{1}, \cdots, \mathbf{u}_{n})&=\sum\limits \frac{1}{2}k_{i,j}\Vert \mathbf{u}_{i}-\mathbf{u}_{j} \Vert^{2}\\ \frac{\partial{E(\mathbf{u}_{1},\cdots,\mathbf{u}_{n})}}{\partial \mathbf{u}_{i}}&=\sum\limits k_{i,j}(\mathbf{u}_{i}-\mathbf{u}_{j})=0 \\ \sum\limits_{j \in \mathcal{N}(i)\cap \mathcal{B}} k_{ij}\mathbf{u}_{i}+\sum\limits_{j \in \mathcal{N}(i) \backslash \mathcal{B}} k_{i,j}(\mathbf{u}_{i}-\mathbf{u}_{j})&= \sum\limits_{j \in \mathcal{N}(i)\cap \mathcal{B}} k_{i,j}\mathbf{u}_{j} \end{align*} \]

Solve linear system
  • Two choices of spring constants
    • Uniform \(k_{i,j}=1\)
    • Cotan \(k_{i,j}=\cot{\phi_{i,j}}+\cot{\phi_{j,i}}\)
Uniform Laplacian
Uniform Laplacian
Cotan Laplacian
Cotan Laplacian

LSCM

The LSCM distortion measure can be defined as \[ D(J) = \| J + J^T - (\text{tr}\, J) I \|_F^2 \]
LSCM
Cotan Laplacian

ARAP

The ARAP distortion is defined as \[ D(J) = \| J - R\|_F^2 \] where \(R\) is the cloest rotation matrix to \(J\). The ARAP procedure follows the steps below: - Local step: The Jacobians for each face of the current iterate are computed. Then for each Jacobian the closest rotation matrix is found. This can be done using the SVD of \(J\). - Global step: Then for each Jacobian the closest rotation matrix is found, they are all assumed to be fixed, and then minimize the ARAP distortion measure by solving a linear system.

LSCM
ARAP

Shape Deformation

Implement multiresolution mesh editing algorithm to interactively deform 3D models. Construct a two-level multi-resolution surface representation and use naive Laplacian editing to deform it.

Multiresolution mesh editing algorithm: 1. Remove high-frequency details by surface smoothing 2. Deform the smooth mesh 3. Transfer high-frequency details back to the deformed surface

Skinning and Skeletal Animation

Rotation Representation

Representions Short Description pros cons
rotation matrix 3x3 Matrix to represent rotation in 3D Simple to use directly. Requires 9 elements to compute. Hard to interpolation. Direct interpolation leads to artifact.
euler angles Use three angles (yaw, pitch, roll) to represent 3D representation Only three parameters needed to represent rotations. Intuitive. Easy to transformed to rotation matrix The gimbal lock problem. Can result in interpolation problems
axis angle Rotation defined by an rotation axis and an angle straightforward and intuitive, easily be converted to and from a matrix Angle choices is not unique. Cannot perform interpolation directly
quaternions Use a four-tuple of real number (x,y,z,w) very efficient for interpolation. Without gimbal lock. Only 4 parameters required. Less intuitive. more complex to transformed to rotation matrix. Double cover problem

Harmonic skinning weights on selected handles

Handle selection

shape name joint 1 joint 2 joint 3
hand

Skinning weights visualization

shape name joint 1 joint 2 joint 3
hand

Skeletal animation

Linear Blend Skinning Dual Quaternion Skinning per-face + averaging quaternions

Context-aware per-vertex LBS

without context with context