Salta ai contenuti. | Salta alla navigazione

Strumenti personali


Academic year and teacher
If you can't find the course description that you're looking for in the above list, please see the following instructions >>
Versione italiana
Academic year
Didactic period
Primo Semestre

Training objectives

The course aims at providing the basis of Computer Graphics to the undergraduate students of Computer Science.

The main acquired knowledge will be:

Structure of a graphics system. The graphics pipeline and its main features.
The graphics primitives and their attributes.
The three-dimensional coordinate systems in computer graphics, change of coordinate systems, transformations in homogeneous coordinates.
The camera transformation, the projection transformations: orthographic and perspective.
The shading models: general aspects, the Phong lighting model.
Clipping and Cohen-Sutherland line clipping. Rasterization and Bresenham’s algorithm.
Texture mapping: general aspects, texture coordinates, texture sampling, multitexturing, bump-mapping, environment-mapping.
The programmable pipeline. The shading language GLSL.
Curves and Surfaces. Rapresentation of curves and surfaces. Interpolation. Bezier curves and surfaces. B-spline, NURBS curves and surfaces. Rendering curves and surfaces.
Advanced rendering technique: ray-tracing and radiosity.
A brief overview of the Unity graphics engine and how to animate an avatar from human motion capture data.


The prerequisites for this course are Discrete Mathematics and Programming Languages and Laboratory.

Course programme

The class consists in 24 2-hour lectures for a total of 48 hours.

Course introduction and overview of modern Computer Graphics [2 hours]
A short history of Computer Graphics. A first and very simple OpenGL program [2 hours]
Single and double-buffering. Projection types and their implementation in OpenGL [2 hours]
How to draw lines in OpenGL. DDA and Bresenham line drawing algorithms and Cohen-Sutherland clipping algorithm [2 hours]
OpenGL: rendering of simple primitives, Vertex Buffer Objects and Vertex Array Objects [2 hours]
OpenGL: Depth buffer, culling, rendering text, menus and mouse and keyboard events' handling [2 hours]
Spatial transformations and homogenous coordinates [2 hours]
Projection transformation, composition of transformations and their implementation in OpenGL [2 hours]
OpenGL: rendering hierarchical structures and dynamic animation of objects. Euler angles and gimbal lock [2 hours]
Color and illumination models. Types of light sources. [2 hours]
Phong illumination model and its implementation in OpenGL. [2 hours]
Flat, Gouraud and Phong shading. Computation and transformation of normals. [2 hours]
Projection transformation, glFrustum matrix and z-fighting. Texture mapping. [2 hours]
OpenGL: texture mapping, magnification and minification. Introduction to mipmapping. [2 hours]
OpenGL: mipmapping, combining textures and illumination. [2 hours]
Environment mapping: sphere mapping, cube mapping and their implementation in OpenGL. [2 hours]
Texture mapping: bump mapping. OpenGL's fixed rendering pipeline. Overview of ray tracing. [2 hours]
Overview of radiosity. Introduction to OpenGL's programmable rendering pipeline. [2 hours]
Overview of modern graphics cards' architectures. OpenGL: GLSL language and two simple examples of vertex of fragment shaders. [2 hours]
OpenGL: texture mapping and illumination models in GLSL. [2 hours]
Representing curves and surfaces. Interpolant curve and surface. [2 hours]
Hermite, Bezier and B-Splines curves and surfaces. Blending polynomials, Bernstein polynomial and de Casteljau method. [2 hours]
Uniform and non-uniform B-Splines. OpenGL: Bezier curves and surfaces. [2 hours]
Overview of motion capture techniques and how to animate an avatar. Using MotionBuilder and DAZ3D to animate an avatar from human motion capture data. [2 hours]

Didactic methods

The course forecasts 48 hours of teaching divided in frontal lectures and tutorials. The course is organized as follows:

Frontal lectures on all course’s topics;
Practice exercises in the classroom to show the graphic programming methods by using OpenGL.

Learning assessment procedures

The aim of exam is to verify at which level the learning objectives described above have been acquired.

During the final examination the student will be evaluated based on the exercises assigned during the class, a project and an oral examination.

Reference texts

"Computer Graphics Through OpenGL: From Theory to Experiments", S. Guha, CRC Press
"Graphics Shaders: Theory and Practice", M. Bailey and S. Cunningham, CRC Press
Teacher's slides.

Additional texts are:
"OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 4.5", J. Kessenich, G. Sellers, D. Shreiner, Addison-Wesley.
"Mathematics for 3D game programming and computer graphics", E. Lengyel, Cengage Learning