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.Lunedì | Martedì | Mercoledì | Giovedì | Venerdì |
16:00 - 18:00 Aula Fib C1 |
16:00 - 18:00 Aula Fib 1 Lab |
Data | Contenuto | |||
---|---|---|---|---|
26 09 2024 | Lunedì | 16:15 18:00 | Introduction to the course. PDF Representing Surfaces PDF |
|
28 09 2024 | Mercoledì | 16:15 18:00 | Representing Surfaces (second part) | |
30 09 2024 | Lunedì | 16:15 18:00 | First Experiments with VCGLib PDF The code shown at lessons for calculating Euler's characteristic and walking on boundary loops is contained in this archive GP20240930.zip. The cmakelist expects that you have a folder vcglib containing a clone of the github repo of vcglib (branch devel). The meshes shown during the lesson are contained in mesh.zip. |
|
02 10 2024 | Mercoledì | 16:15 18:00 | Meshing Surfaces PDF | |
07 10 2024 | Lunedì | 16:15 18:00 | Reimplementing Catmull Subdivision The code shown at lessons for computing Catmull Clark Subdivision is contained in this archive GP20241007.zip. The cmakelist expects that you have a folder vcglib containing a clone of the github repo of vcglib (branch devel). As exercise try to compute the correct position of the vertex of the original mesh using this simple weighing scheme where the red empty dot is the face barycenter. For a quad mesh it is equal to the weights shown at lesson. Eg. according to the illustration if you consider an edge \(v_0, v_1\) where the vertexes adjacent to the edge on the two faces are \(f_{00} f_{01} \) and \( f_{10} f_{11}\), you have that the edge vertex position is \(p = v_0+v_1+1/4 \cdot (v_0+v_1+f_{00}+f_{01}) +1/4 \cdot (v_0+v_1+f_{10}+f_{11})\) that is equal (after normalization) to the \( 6 v_0 + 6 v_1+f_{00}+f_{01}+f_{10}+f_{11} \) | |
09 10 2024 | Mercoledì | 16:15 18:00 | Spatial Indexing PDF | |
14 10 2024 | Lunedì | 16:15 18:00 | Implementing a Catmull Subdivision filter for Meshlab The code shown at lessons (refeactoring the previous example in a static templated class and using it a MeshLab filter) is contained in these two commits done to the vcglib and to the Meshlab github repositories. | |
16 10 2024 | Mercoledì | 16:15 18:00 | Sampling PDF | |
21 10 2024 | Lunedì | 16:15 18:00 | Starting the Voronoi Weaving project. The main idea is to adapt the existing framework for computing Voronoi Diagfram over meshes in order to compute Weaving Voronoi diagrams. Weaving Voronoi diagrams are VDs that stays far from themselves when the surface self intersect. Discussion on possibile strategies of how implement it and collecting datasets for testing. The meshes created at lesson are here , and the code of the basic example for computing simple VD over a mesh is here . | |
23 10 2024 | Mercoledì | 16:15 18:00 | Differential Geometry PDF | |
28 10 2024 | Lunedì | 16:15 18:00 | Voronoi Weaving project. Today the main point was to validate the intuition that vertexes of the surface having in the euclidean neighbourhood some vertex whose geodetic distance is quite different from the euclidean one, are the ones that are more likely to be in the weaving Voronoi diagram are good candidate of being close to a self intersection. The code shown at lesson is here . We did some very simple assumptions: we used graph distance instead of geodesic and we limited to a small neighbourhood (two or three hops). | |
30 10 2024 | Mercoledì | 16:15 18:00 | Surface Reconstruction PDF & PDF | |
04 11 2024 | Lunedì | 16:15 18:00 | Lezione annullata | |
06 11 2024 | Mercoledì | 16:15 18:00 | Voronoi Weaving project. Today the main point was reimplement the intuition of last lesson using the correct geodesic distance. To make it efficient we had to modify the vcglib library to compute the geodesic distance over a small portion of a mesh (e.g. find all the vertexes within a given geodesic distance) more efficiently. The existing implementation had a linear time overhead that was due to a clearing the max distance required for a dijkstra-like visit. The code shown at lesson is here . The new implementation of the geodesic is not yet committed (I have to test it more thorougly) and included in the zip togheter with the old one and some larger meshes used for testing. . | |
08 11 2024 | Venerdì | 16:15 18:00 | Lezione recupero - Surface Reconstruction PDF & PDF | |
11 11 2024 | Lunedì | 14:15 16:00 | Voronoi Weaving project & Project Discussions. Today we started the discussion of the students projects providing some details and starting point. For the weaving project we started to port the voronoi sampling code in our sample starting from the meshlab filter and adapting the code. The code shown at lesson is here . | |
13 11 2024 | Mercoledì | 16:15 18:00 | Surface Parametrization PDF | |
18 11 2024 | Lunedì | 14:15 16:00 | Project Discussions. Today we started a deep dive in the paremetrization code in meshlab. Added some missing parts and left something in the students repo . | |
20 11 2024 | Mercoledì | 16:15 18:00 | Ransac/ICP & Smoothing PDF &PDF |