Computer Graphics (2016/2017)

Course code
Name of lecturer
Andrea Giachetti
Andrea Giachetti
Number of ECTS credits allocated
Other available courses
Academic sector
Language of instruction
II sem. dal Mar 1, 2017 al Jun 9, 2017.

Lesson timetable

II sem.
Day Time Type Place Note
Thursday 2:30 PM - 3:30 PM lesson Lecture Hall A from Mar 30, 2017  to Jun 9, 2017
Thursday 3:30 PM - 4:30 PM lesson Lecture Hall A from Mar 30, 2017  to Jun 9, 2017
Thursday 4:30 PM - 5:30 PM lesson Lecture Hall A from Apr 27, 2017  to Jun 9, 2017
Friday 10:30 AM - 11:30 AM laboratorio Laboratory Delta from Mar 31, 2017  to Jun 9, 2017
Friday 11:30 AM - 1:30 PM laboratorio Laboratory Delta from Mar 31, 2017  to Jun 9, 2017

Learning outcomes

This course aims at providing the student with the tools needed
to master the algorithms and computational methods upon which
many interactive computer graphics applications are based. The
focus is on understanding the theory (geometry, radiometry) and
the computational issues (algorithms, programming) that lie behind computer generated images.
At the end of the course, the students will be able to:
-Understand the functionality of the graphic pipeline of comouters
-Undeestand the basics of 3D modelling and rendering algorithms
-Design and implement simple graphics and visualization applications


1. Introduction to Computer Graphics (2h)
- CG paradigms
- Outline of a CG application
- Course outlook

2. Mathematical background (5h)
- Vector and affine spaces
- Matrices and transforms
- Analytical geometry
- Polygons
- Geometric data structures

3. Geometric Modeling (4h)
- Polygonal meshes
- Parametric surfaces (hints)
- Constructive Solid Geometry (hints)
- Spatial subdivision (hints)

4. Illumination and rendering (3h)
- Introduction: ray casting
- Phisical model: radiometry, BRDF, rendering equation

5. Illumination models (4h)
- Phong model
- Cook-Torrance model (hints)
- Light sources
- Ray tracing: Whitted's model, intersections, culling techniques
- Radiosity

6. Rasterization (6h)
- Geometric transformations
- Clipping
- Hidden surfaces removal: list-priority, depth-buffer
- Scan conversion
- Shading: Flat, Phong e Gouraud
- The OpenGL rendering pipeline
- Multi-pass techniques

7. Mapping techniques (3h)
- Texture mapping
- Bump mapping

8. Photorealism (3h)
- Reflection maps
- Light maps
- Geometric shadows
- Transparency

9. Scientific visualization
- Algorithms: isosurfaces, slicing, colormap. Perceptive issues

10. Laboratory (24 h):
- 3D modelling basics
- Introduction to OpenGL programming: a simple C++ tutorial

Assessment methods and criteria

Written test (20/30) and evaluation of programming skills (10/30)

To pass the exam students must demonstrate that:
- they have understood the basic algorithms of the rasterization pipeline and its architecture
- they are able to describe these concepts in a clear and exhaustive way
- they are able to apply the acquired knowledge to solve application scenarios described by means of exercises, questions and projects.

Written test:
The written test is composed by a few open questions and/or exercises testing the understanding of the different topics of the course.

To pass the exam, the students must show
- they have understood the principles related to 3D modelling and renderings

The exam consists in the evaluation and oral discussion of coding exercises uploaded in itinere on the e-learning platform, implementing specific modifications of base codes developed during the lab sessions.

For students who cannot attend the lab sessions there is the opportunity to define a different project to be implemented and discussed in an oral presentation.