3D GEOMETRIC MODELING & PROCESSING 2022/2023

Paolo Cignoni

Syllabus

The course begins by laying the theoretical foundations for treating 3D surfaces and shapes in mathematics and computer science. The framework of simplicial complexes and the basics of differential geometry and topology are presented to students with a flavour oriented to computer graphics applications. Subsequently, the main data structures for the management of discrete representations of surfaces are described together with introduces an overview of data structures for the efficient management of spatial queries. On this basis, the main geometry processing algorithms are introduced together with their practical applications. During the course, exercises will be conducted on the topics discussed by examining and presenting both low-level (C ++) implementations of data structures and algorithms and python libraries that allow rapid prototyping of applications that can solve complex geometric problems. By the end of the course, the students will be able to use the most appropriate geometry processing algorithms and data structure to solve the problems that can arise when handling 3D geometric shape representations. The theoretical background and the good knowledge of the geometrical properties of surfaces will be useful for a better comprehension of the pitfalls and limitations that can be encountered when handling real world problems where surfaces and 3D representations are involved, like the one that can be encountered in computer aided design, interactive computer graphics and industrial design.
  • Discrete Representations for Surfaces
  • Data Structures for Simplicial Complexes and spatial Indexing
  • Basics of Differential Geometry and Topology for Computer Graphics
  • Mesh Processing Algorithms
  • Remeshing, Refinement & Simplification
  • Parametrization and Texturing
  • Fairing and Smoothing
  • Surface reconstruction and Sampling
  • Shape Analysis and Representations for Machine Learning

    Examination

    The exam consists of a practical part and a theoretical part.

    TimeTable

    Lunedì Martedì Mercoledì Giovedì Venerdì
    16:00 - 18:00
    Aula Fib 1 Lab
    16:00 - 18:00
    Aula Fib 1 Lab

    Lezioni e Lucidi

    Data Contenuto
    20 02 2023 Lunedì 16:15 18:00 Introduction to the course. PDF
    Representing Surfaces PDF
    22 02 2023 Mercoledì 16:15 18:00 Representing Surfaces (second part)
    27 02 2023 Lunedì 16:15 18:00 Representing Surfaces (third part, still same slides)
    01 03 2023 Mercoledì 16:15 18:00 Rendering Paradigms PDF
    06 03 2023 Lunedì 16:15 18:00 Lesson Cancelled ()
    08 03 2023 Mercoledì 16:15 18:00 Lesson Cancelled ()
    13 03 2023 Lunedì 16:15 18:00 First experiments with VCG library PDF
    The code shown during the lesson is contained in this ZIP; it contains a folder where you have to clone the vcglib repository (devel branch from https://github.com/cnr-isti-vclab/vcglib/tree/devel) and the various steps of the code shown during the lesson.
    15 03 2023 Mercoledì 16:15 18:00 More experiments with the VCG library.
    The code is in this ZIP; it contains the various steps of the code shown during the lesson and the exercise for the next monday:
    try to identify all non manifold vertexes by using only the FF adjacency relation and visiting bits.
    19 03 2023 Lunedì 16:15 18:00 Lighting and Texturing PDF
    21 03 2023 Mercoledì 16:15 18:00 More experiments with the VCG library.
    The code is in this ZIP; it contains the solution to identify all non manifold vertexes by using only the FF adjacency relation and visiting user bits.
    27 03 2023 Lunedì 16:15 18:00 Spatial Indexing PDF
    The code is in this ZIP; Experiments with transformations to build a moebius ring .
    29 03 2023 Mercoledì 16:15 18:00 Meshing and Remeshing PDF
    03 04 2023 Lunedì 16:15 18:00 Sampling PDF
    The code is in this ZIP; Experiments with Sampling and Indexing .
    05 04 2023 Mercoledì 16:15 18:00 Easter Break (no lesson)
    10 04 2023 Lunedì 16:15 18:00 Pasquetta Break (no lesson)
    12 04 2023 Mercoledì 16:15 18:00 More experiments with VCGlib
    The code for choosing a set of vertices over a mesh and extruding the fan of triangles around them is in this ZIP; The code has a few problems:
    • the sampling is done with a 'dart throwing strategy' that is not optimal. You could change it so that it keeps track of the possible candidates and reach maximality.
    • it does not work for meshes with boundary edges
    .
    17 04 2023 Lunedì 16:15 18:00 Differential Geometry for Geometry Processing PDF
    19 04 2023 Mercoledì 16:15 18:00 More experiments with VCGlib.
    The code in this ZIP shows a simple interactive application for testing geometry processing code. Beside the usual requiremnt of cloning the vcglib inside the folder, the code assume that you have properly installed glew, glwt and cloned imgui somewhere. While glew and glwt should be automatically found by cmake, you have to modify the cmakefile.txt file to specify the imgui folder.
    21 04 2023 Venerdì 16:15 18:00 (lesson anticipated instead of 24th April)
    Surface reconstruction PDF
    The additional material on topology and differential geometry in a very didactic way is in these two math subjected comics : Geometricon and Topologicon that were kindly provided by Savoir sans Frontieres.
    26 04 2023 Mercoledì 16:15 18:00 Surface reconstruction 2 PDF
    The code shown at lesson is in this ZIP. It shows a simple interactive application creating a cube and perturbing it Beside the usual requiremnt of cloning the vcglib inside the folder, the code assume that you have properly installed glew, glwt and cloned imgui somewhere. While glew and glwt should be automatically found by cmake, you have to modify the cmakefile.txt file to specify the imgui folder.
    03 05 2023 Mercoledì 16:15 18:00 Ransac and ICP PDF
    The code shown at lesson is in this ZIP. It contanins just the 'imguiViewer' folder that has to be substituted with the one of the last lesson.
    08 05 2023 Lunedì 16:15 18:00 Smoothing PDF The code shown at lesson is in this ZIP. It contanins just the 'imguiViewer' folder that has to be substituted with the one of the last lesson.
    10 05 2023 Mercoledì 16:15 18:00 More experiments with VCGlib.
    The code shown at lesson is in this ZIP. It contanins just the 'imguiViewer' folder that has to be substituted with the one of the last lesson.
    15 05 2023 Lunedì 16:15 18:00 Building MeshLab, architecture of a filter.
    The code shown at lesson is in this ZIP. It contanins just the 'filter_ransac' folder that has to be substituted with the one of the last lesson.
    17 05 2023 Mercoledì 16:15 18:00 Building MeshLab, architecture of a filter. More work on the ransac filter.
    The code shown at lesson is in this ZIP. It contanins just the 'filter_ransac' folder that has to be substituted with the one of the last lesson.
    22 05 2023 Lunedì 16:15 18:00 Mesh Parametrization PDF
    24 05 2023 Mercoledì 16:15 18:00 Final course lesson. Project assigments and questions