Code: 2-MPG-101/00
Continuous assessment: Project work in exercises
Final assessment: Written and oral examination
Learning outcomes: Students will acquire knowledge of algorithmic solutions to fundamental problems in computer graphics.
Course syllabus:
- Introductory information
- 2D and 3D transformations
- 3D rotation and quaternions
- Representations of 3D objects
- Determining the visible surface
- Projections (central and parallel projection)
- Intersection calculation
- Clipping
- Rasterisation and area filling
- Antialiasing
- Display pipeline
Exercises are led by Mgr. Marcel Makovník. Further information can be found on the exercise website.
Literature:
Supplementary materials for lectures:
- Example of rotation using quaternions, Notes on Quaternions, Quaternions and Rotations, Gimbal lock
- Function-based shape modelling
- Computer Aided Geometric Design - see chapter 3. Polynomial Evaluation and Basis Conversion (pp. 41-44) and 7. Planar Curve Intersection (pp. 83-94)
Additional recommended study literature:
Study material and notes by Dr J. Chalmovianská (pdf + txt):
- Affine transformations
- Modelling and representation of 3D objects
- Determining visible surface
- Projections (projection) (txt)
- Intersection calculation
- Clipping
- Rasterisation (txt)
- Antialiasing (txt), antialiasing (scan)
- Display pipeline
Notes by Assoc. Prof. V. Zaťko (pdf):
- Essential geometry
- Overview of geometric object representations
- Display pipeline
- Rasterisation
- Filling
- Line clipping
- Visibility
Interesting videos:
- Visualising quaternions - a series of short and engaging videos graphically illustrating the use of quaternions for 3D rotation and stereographic projection
- Gimbal lock - explanation of the Gimbal lock phenomenon (restriction of degrees of freedom) during rotation of objects using Euler angles
Useful websites:
- Computer Graphics - teaching website by Mgr. Kristína Vojtová
- Introduction to Computing - notes for a course on modelling objects with splines and polygonal meshes
- Hyperfun - website dedicated to modelling objects using implicit functions - FRep
- Shadertoy - get inspired and create or share your best shaders
- ImplicitCAD, OpenSCAD - model objects using implicit functions
Source codes of selected algorithms (.py):