Line 149: | Line 149: | ||
* Half-Edge Creation Example [[media:mestToHalfEdge.blend|mestToHalfEdge.blend]] | * Half-Edge Creation Example [[media:mestToHalfEdge.blend|mestToHalfEdge.blend]] | ||
* UV Mapping and Displacement Mapping in Blender | * UV Mapping and Displacement Mapping in Blender | ||
+ | |||
+ | === Exercise 05 "Edge Contraction” === | ||
+ | * Blender Scripting - Adding A Custom Property [https://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Advanced_Tutorials/Python_Scripting/Addon_Custom_Property] | ||
+ | * Implement edge contraction [[media:edge_contraction.blend|edge_contraction.blend]] | ||
+ | |||
+ | |||
OUTDATED: | OUTDATED: | ||
Revision as of 17:29, 20 March 2018
Geometrical Modelling in Graphics (Course Materials)
Contents
- 1 Geometrical Modelling in Graphics (Course Materials)
- 1.1 Grading
- 1.2 What you Need to Pass
- 1.3 Oral Examination
- 1.4 Materials to read
- 1.5 Lesson00 "Introduction to Geometry Modelling"
- 1.6 Lesson01 "Polygonal meshes, Winged Edge, Quad Edge, DCEL"
- 1.7 Lesson02 "Polygonal Mesh Properties"
- 1.8 Lesson03 "Polygonal Mesh Simplification"
- 1.9 Lesson04 "Polygonal Mesh Smoothing"
- 1.10 Lesson05 "Polygonal Mesh Repairing"
- 1.11 Lesson06 "Curves"
- 1.12 Lesson07 "Surfaces"
- 1.13 Lesson08 "Volumes"
- 1.14 Lesson09 "Point Clouds"
- 1.15 Lesson10 "Surface Reconstruction"
- 1.16 Lesson11 "Procedural Modelling"
- 2 EXERCISES
- 2.1 Exercise 01 "Blender Scripting”
- 2.2 Exercise 02 "Half Edge”
- 2.3 Exercise 03 "Mesh Curvature”
- 2.4 Exercise 04 "UV Mapping”
- 2.5 Exercise 05 "Edge Contraction”
- 2.6 Exercise 02"Assimp library in Unity3D”
- 2.7 Exercise 03 "Triangle selection”
- 2.8 Exercise 04 "Compiler in Unity”
- 2.9 Exercise 05 "Object simplification”
- 2.10 Exercise 06 "Object simplification”
- 2.11 Exercise 07 "Loop subdivision”
- 2.12 Exercise 08 "Loop subdivision”
- 2.13 Exercise 09 "Volume representation with voxels”
- 2.14 Exercise 10 "Marching cubes algorithm”
- 2.15 Exercise 11 "Marching cubes algorithm”
- 2.16 Exercise 12 "Marching cubes algorithm”
- 2.17 Exercise 13 "Marching cubes algorithm”
- 3 HOMEWORKS
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: (+50 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
- Mario Botsch, Leif Kobbelt, Mark Pauly, Pierre Alliez, Bruno Levy, "Polygon Mesh Processing" CRC Press
- Siu-Wing Cheng, Tamal K. Dey, Jonathan Shewchuk, "Delaunay Mesh Generation" CRC Press
- 3D printer modelling and best models to get the inspiration
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"
- Cities Cities.pdf
- Buildings Buildings.pdf
- Facades Facades.pdf
- Vegetation Vegetation.pdf
- Solid models Models.pdf
EXERCISES
Your presence at the seminar is mandatory. Exercise projects are done in Unity3D with C# language. We load the 3D objects with Assimp library .NET version.
Exercise 01 "Blender Scripting”
- Install [1]
- Using scripts reference page [2]
- Example mesh_script.blend
- Create tetrahedron [3]
Exercise 02 "Half Edge”
- Half-Edge Data Structure [4][5]
- DCEL [6]
- Example half_edge.blend
- Create half-edge data structure for the tetrahedron [7]
Exercise 03 "Mesh Curvature”
- Discrete Mesh Curvature [8]
- Example bmesh.blend
- Compute mesh curvature at the triangle vertex [9]
Exercise 04 "UV Mapping”
- Half-Edge Creation Example mestToHalfEdge.blend
- UV Mapping and Displacement Mapping in Blender
Exercise 05 "Edge Contraction”
- Blender Scripting - Adding A Custom Property [10]
- Implement edge contraction edge_contraction.blend
OUTDATED:
Exercise 02"Assimp library in Unity3D”
- Operators [11]
- Example script2.blend
- Half-Edge Data Structure [12]
Exercise 03 "Triangle selection”
- Select a triangle with a mouse click, find and visualise the neighbouring triangles. Generate the DCEL structure for a sphere.
Exercise 04 "Compiler in Unity”
- Unity compiler, object simplification based on shortest edge.
Exercise 05 "Object simplification”
- Object simplification based on shortest edge. Edge collapsing to a vertex and new vertex position.
Exercise 06 "Object simplification”
- Object simplification based on shortest edge. DCEL structure update in the neighbourhood of deleted edge.
Exercise 07 "Loop subdivision”
- Loop subdivision, position of new vertices.
Exercise 08 "Loop subdivision”
- Vertex connection into a triangle and filling the DCEL structure.
Exercise 09 "Volume representation with voxels”
- Regular grid representation of a sphere and a cube and filling the structure.
Exercise 10 "Marching cubes algorithm”
- Selection of voxel configuration at voxel position. Linear interpolation along the voxel edges.
Exercise 11 "Marching cubes algorithm”
- Selection of voxel configuration at voxel position. Linear interpolation along the voxel edges. Tutorial is here
Exercise 12 "Marching cubes algorithm”
- Triangle generation for each voxel. DCEL structure generation for newly generated triangles. Tutorial is here
Exercise 13 "Marching cubes algorithm”
- Trilinear interpolation, object intersection.
HOMEWORKS
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.2017. 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.2017. 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.2017. Maximálny bodový zisk za úlohu je 20 bodov.
Projekt: 3D tlač. Úprava alebo návrh modelu pre 3D tlačiareň.
- Tlač možná na zariadeniach vo FabLab. https://www.fablab.sk/sk/typ-zariadenia/3d-tlaciarne/
- Pokiaľ by mal niekto záujem o technológie výroby vo FabLab, odporúčam do pozornosti predmet 1-AIN-316: Digitálne technológie výroby http://dai.fmph.uniba.sk/courses/dtv/index.php/DTV