Learning objectives
The aim of the course is to provide students with theoretical and applicative skills in the context of three-dimensional graphics and in particular:
- Fundamentals of 3D graphics
- Fundamental algorithms of 3D graphics
- Fundamentals of 3D geometric modeling
Applying knowledge and understanding:
- Analyze and describe the architecture of a graphics system
- Design and development of graphical applications in OpenGL environment
- Matrix algebra using C++
Prerequisites
Basic math knowledge is recommended.
Knowledge of the C/C++ programming languages is recommended.
Course unit content
This course introduces the fundamental concepts of 3D Computer Graphics.
Full programme
1) Classroom lessons (20 hours):
1.1) Introduction (4 hours).
Definitions, tools, applications.
Graphics hardware.
Architecture of a graphic system.
Review of mathematics notions.
Vector and matrix calculus.
Cartesian geometry in the plane and in space.
3D geometric modeling. Wireframe modeling, solid modeling (B-rep, CSG, spatial decomposition, sweeping).
1.2) Geometric transformations (6 hours).
2D and 3D geometric transformations. Compound transformations.
View transformations.
Parallel projections. Perspective projections.
Windows-to-viewport transformations.
1.3) Graphic pipeline algorithms (4 hours).
Clipping, scan conversion, antialiasing, backface culling, hidden surface removal.
1.4) Visual Realism (4 hours).
Local and global lighting models.
Phong local lighting model.
Ray tracing, radiosity.
Shading algorithms.
Texture mapping and bump mapping.
1.5) Parametric curves (2 hours):
polynomial, cubic, spline, Bezier, and their properties.
2) Laboratory exercises on OpenGL programming (28 hours)
2.1) Introduction (4 hours).
Introduction to OpenGL.
Introduction to GLFW (window and event management)
2.2) GLSL language (4 hours).
Introduction to the graphics pipeline and graphics shaders
(OpenGL Graphics Language)
2.3) Transformation matrices (2 hours).
Introduction to GLM (OpenGL Mathematics).
Transformations in the graphics pipeline
2.4) Construction of the scene (6 hours).
Construction of geometric solids.
Composition of transformations.
The scene graph
2.5) Lighting (4 hours).
Calculation of normals.
Phong and Phong shading model.
Multiple lights, spotlights, colored lights
2.6) Texture and loading of 3D models (4 hours):
Loading of textures via STB library.
Texture mapping.
Introduction to Assimp (Open Asset Import Library)
2.7) Summary exercises (4 hours)
Bibliography
1) Peter Shirley, Michael Gleicher, Fundamentals of Computer Graphics, Third Edition, A K Peters/CRC Press.
2) R. Scateni, P.Cignoni, C.Montani, R.Scopigno, Fondamenti di grafica
tridimensionale interattiva, McGraw-Hill.
3) J. De Vries, Learn OpenGL, available online: https://learnopengl.com
4) J. Kessenich, G. Sellers, D. Shreiner, OpenGL Programming Guide, Addison-Wesley
5) G. Sellers, R. S. Wright Jr., N. Haemel, The OpenGL SuperBible, Addison-Wesley
Teaching methods
Classroom lectures (20 hours).
Laboratory lectures about OpenGL programming (28 hours).
The course material is available through the Elly portal.
Assessment methods and criteria
There will be no midterm examination.
1) Laboratory examination (OpenGL exercise).
The laboratory examination involves the development of a graphics application on the topics of the laboratory classes.
Duration: 4 hours.
Determines 50% of the final vote.
2) Oral examination.
Determines 50% of the final vote.
Other information
- - -
2030 agenda goals for sustainable development
- - -