cod. 13922

Academic year 2023/24
3° year of course - First semester
- Riccardo MONICA
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
A scelta dello studente
Type of training activity
Student's choice
48 hours
of face-to-face activities
6 credits
hub: PARMA
course unit

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
- Linear algebra in C++


Basic math knowledge is recommended.
Knowledge of the C++ programming language is recommended.

Course unit content

This course introduces the fundamental concepts in 3D Computer Graphics.

Full programme

1) Classroom lectures (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 lectures 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 (4 hours).
Construction of geometric solids.
Composition of transformations.
The scene graph.

2.5) Lighting (4 hours).
Calculation of normals.
Phong model and Phong shading.
Multiple lights, spotlights, colored lights.

2.6) Texture and loading of 3D models (6 hours):
Texture loading and texture mappint.
Introduction to Assimp (Open Asset Import Library).
Introduction to 3D modelling in Blender.

2.7) Summary exercises (4 hours)


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:
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

1) Laboratory exam (OpenGL exercise).
The laboratory exam involves the development of a graphics application on the topics of the laboratory classes.
Duration: 4 hours.
Determines 50% of the final grade.

2) Oral exam.
Determines 50% of the final grade.

There will be a midterm test. A passing grade in the midterm test exempts from the oral exam.

Other information

- - -