COMPUTER GRAPHICS
cod. 13922

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

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

Prerequisites

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

- - -