Context:
X-INF574: Digital Representations and Analysis of Shapes.
Course description: (source: moodle)
This course will introduce the fundamental concepts for creating and analyzing shapes on the computer. We will start with generating and representing smooth curves in 2d using parametric and implicit curves. We will then move to various techniques for shape representation in 3d with special emphasis on triangle meshes and associated methods. At the same time, we will introduce methods for shape analysis and in particular defining and computing similarity between shapes, and shape matching (establishing correspondences between points on shapes). Topics will include:
- Real/Homogeneous Coordinates + Affine/Projective Transformations.
- Parametric and Implicit Representations for Curves.
- Bézier curves and the de Calsteljau evaluation algorithm.
- Triangles meshes
- Subdivision Surfaces.
- Point cloud representation and processing algorithms.
- Shape Processing and Analysis – Simplification, segmentation, vector field processing, curvature and feature detection.
- Rigid Registration.
- Shape retrieval, non-rigid matching and correspondence. Data-driven methods.
Lab Assignment:
The lab is a series of exercises that aim to have a practical grasp on the different topics of the course (implementation of algorithms and visualization of results).
Setup:
Visual Studio 2019/ C++/ LibiGL/ Eigen library
State:
finished
New Skills:
1st Lab: Homogeneous coordinates and linear transformations
- Quick introduction to Libigl
- Animating a model: affine transformation + quaternions
2nd Lab: A basic editor for curve interpolation
- Linear interpolation
- Function interpolation: Lagrange interpolation/ Cubic spline interpolation/ Drawing tangents
- Curve interpolation: Hermite cubic spline interpolation/ Drawing tangents
3rd Lab: Modeling 3D shapes with Bézier curves
- Evaluating and Rendering a Bézier curve using the de_casteljau algorithm
- Rendering a Bézier curve by subdividing the control point
- Modeling a 3D shape using a curve and normal loops.
4th Lab: A first 3D interface to manipulate mesh structures
- Manipulating a face-triangle structure.
- Manipulating a half-edge structure.
- Calculating the degree of each vertex
- Computing the normals
- Evaluating the number of connected components of the boundary graph.
- Computing the Gaussian curvature.
5th Lab: Iterative closest point
- Using a kd-tree for a point cloud structure
- Normals estimation
- Implementing the ICP method