Scientific visualization (2017/2018)

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, 2018 al Jun 15, 2018.

Lesson timetable

Go to lesson schedule

Learning outcomes

This course aims at providing the student with the tools needed
to master 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 graphics pipeline of computers
-Understand the basics of 3D modeling 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 graphics programming skills (10/30)

To pass the exam students must demonstrate that:
- they have understood the basic algorithms related to modelling, lighting and rasterization pipeline
- 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.