Geometry Modelling in Graphics (Course Materials)

Lecture Monday 8:10 M-XII Exercise Tuesday 13:10 M-XII

Grading

No make-up exams will be given for missed tests. All the assignments should be turn in by the designated due date. To pass this course all the course requirements must be SATISFACTORILY completed > 30% of each problem set. Programming, modelling projects and oral exam.

What you Need to Pass

  • Attend lessons. One missed +0 points. 2 missed 0 points, 3 missed 0 points, 4 and more is Fx.
  • Programming, modelling project with production and exercise (mandatory, 50 points). Submission after deadline -50%.
  • All programming is checked with deadlines during the exercises.
  • Pass oral/written exam: (+20 points) If you feel you are better, convince me !
  • Summary
    • Attendance = 0 or -100 (Fx)
    • Projects = +50..0
    • Oral/written exam = +50..0
  • Grades
   A = 92-100
   B = 84-91
   C = 76-83
   D = 68-75
   E = 60-67
   Fx = 0-59

Oral Examination

To the oral examination all the above requirements must be SATISFACTORILY completed. Random lecture topic will be selected and presented by a student after written preparation.

Materials to read

  • Michael Henle, "A Combinatorial Introduction to Topology"
  • J. O'Rourke, "Computational Geometry in C"

Lesson00 "Introduction to Geometry Modelling"

  • Lecture schedule
  • "Terms and conditions" of this lecture
  • Lecture notes: lesson00.pdf

Lesson01 "Polygonal meshes, Winged Edge, Quad Edge, DCEL"

  • 2D manifold
  • Polygonal meshes
  • Winged Edge
  • Quad Edge
  • Double Connected Edge List
  • Lecture notes: lesson01.pdf

Lesson02 "Polygonal Mesh Properties"

  • Normal, curvature, object interior
  • Descriptors
  • Bounded volume
  • Lecture notes: lesson02.pdf

Lesson03 "Polygonal Mesh Simplification"

  • Mesh simplification algorithm
  • Terrain visualisation
  • Progressive meshes
  • Lecture notes: lesson03.pdf

Lesson04 "Polygonal Mesh Smoothing"

  • Polygon and mesh smoothing with subdivision
  • Catmull-Clark subdivision, Modified Butterfly subdivision
  • Mesh Laplacian smoothing
  • Lecture notes: lesson04.pdf

Lesson05 "Polygonal Mesh Repairing"

  • Polygon and mesh smoothing with subdivision
  • Delaunay triangulation
  • Triangulation in 3D
  • Filling holes in meshes
  • Volumetric mesh repair
  • Lecture notes: lesson05.pdf

Lesson06 "Curves"

  • Polynomial curves
  • Spline curves
  • Rational curves
  • Implicit curves
  • Lecture notes: lesson06.pdf

Lesson07 "Surfaces"

  • Polynomial surfaces
  • Spline surfaces
  • Rational surfaces
  • Implicit surfaces
  • Lecture notes: lesson07.pdf

Lesson08 "Volumes"

  • Distance function
  • Voxelization: Mesh voxelization, Implicit surface voxelization
  • Distance transforms
  • Fast marching method
  • Visualization
  • Lecture notes: lesson08.pdf

Lesson09 "Point Clouds"

  • Point cloud sources
  • K-nearest neighbor search on Kd-tree
  • Normal estimation
  • Registration
  • Visualization
  • Lecture notes: lesson09.pdf

Lesson10 "Surface Reconstruction"

  • Implicit reconstruction
  • Power crust mesh reconstruction
  • Parameteric reconstruction
  • Lecture notes: lesson10.pdf

Lesson11 "Procedural Modelling"

EXCERCISES

  • Your presence at the seminar is mandatory.
  • Seminar we will focus on projects the selected problems from lessons. We will use the numerical methods to solve specific problems.

Excercise01 "Unity3D, C#, DCEL structure, DCEL object visualization in Unity3D”

    • resources:
  • Projekty na cvičeniach sa budú vytvárať v prostredí Unity3D a v programovacom jayzku C#.
  • Pre načítanie objektov zo súboru použijeme pomocnú knižnicu Assimp, konkrétne jej .NET verziu.



Cvičenie 2: Knižnica Assimp v Unity3D, import objektu zo súboru a naplnenie DCEL štruktúry. Cvičenie 3: Výber trojuholníka myšou, nájdenie a zobrazenie susedných trojuholníkov. Generovanie DCEL štruktúry pre sféru. Cvičenie 4: Kompilácia projektu v Unity, zjednodušovanie objektu podľa najkratšej hrany. Cvičenie 5: Zjednodušovanie objektu podľa najkratšej hrany. Kolaps hrany do vrchola a výpočet novej pozície vrchola. Cvičenie 6: Zjednodušovanie objektu podľa najkratšej hrany. Prebudovanie DCEL štruktúry v okolí odobratej hrany. Cvičenie 7: Loopov prerozdeľovací algoritmus. Výpočet pozícií nových vrcholov. Cvičenie 8: Loopov prerozdeľovací algoritmus. Spájanie vrcholov do trojuholníkov a naplnenie DCEL štruktúry Cvičenie 9: Objemová reprezentácia v pravidelnej mriežke. Naplnenie sférou a kockou. Cvičenie 10: Marching cubes. Výber aktuálnej konfigurácie pre voxel. Lineárna interpolácia na hranách voxlov. Zdroj. Cvičenie 11: Marching cubes. Generovanie trojuholníkov pre každý voxel. Vytvorenie DCEL štruktúry pre vygenerované trojuholníky. Zdroj. Cvičenie 12: Marching cubes. Trilineárna interpolácia, prienik dvoch objektov.


Prvá domáca úloha: Half-edge štruktúra, vytvorenie štruktúry z naimportovaného súboru (klávesa D pre duck.dae), vytvorenie štruktúry pre kocku a sféru (na stlačenie kláves C a S), zisťovanie susedných prvkov, vizualizácia. Termín odovzdania je 15.3.2016. Maximálny bodový zisk za úlohu je 15 bodov. Druhá domáca úloha: Prerozdeľovací Loopov algoritmus a zjednodšovací edge-collapse algoritmus podľa najkratšej hrany na half-edge štruktúre. Na tlačítko L sa vykoná jeden krok Loopovho algoritmu na aktuálnom modely (aj s pravidlami pre hranicu), na tlačítko E sa vykoná kolaps aktuálne najkratšej hrany, na tlačítko R sa odstráni naraz 50% najkratších hrán. Projekt musí obsahovať ďalší model s hranicou na otestovanie algoritmov. Termín odovzdania je 19.4.2016. Maximálny bodový zisk za úlohu je 15 bodov. Tretia domáca úloha: Štruktúra pre vzdialenostné pole na pravidelnej mriežke. Prevod základných objektov a objektov z implicitnej reprezentácie do volumetrickej (kocka pri stlačení F1, sféra pri stlačení F2 a srdce pri stlačení F3). Prienik dvoch objektov (sféry a srdca) vo volumetrickej reprezentácii po stlačení F4. Marching cubes (vytvorenie DCEL štruktúry z pravidelnej volumetrickej mriežky). Termín odovzdania je 24.5.2016. Maximálny bodový zisk za úlohu je 20 bodov.