Computer Graphics

Starts on 03/07/2022

Ends on 05/27/2022

Computer Graphics

Associate Professor


Stefano Berretti,

Content and organization

Course content

PART I: Getting Started
Linear transformations: Geometric data types; Vectors Geometric Data Types; Vectors, Coordinate Vectors, and Bases; Linear Transformations and 3 by 3 Matrices; Extra Structure; Rotations; Scales. Affine transformations: Points and Frames; Affine transformations and Four by Four Matrices; Applying Linear Transformations to Points; Translations; Putting Them Together; Normals. Respect frame: The Frame is Important; Multiple Transformations. Frames in Graphics: World, Object and Eye Frames; Moving Things Around; Scales; Hierarchy. OpenGL: introduction and basics; VBO, VAO, EBO; OpenGL Shaders. Qt quick start. Hello World 3D: Coordinates and Matrices; Drawing a Shape; The Vertex Shader; What Happens Next; Placing and Moving with Matrices. Laboratory in OpenGL.

PART II: Rotations and Interpolation
Quaternions: Interpolation; The Representation; Operations; Power; Code; Putting Back the Translation. Balls: Track and Arc; The Interfaces; Properties; Implementation. Smooth Interpolation: Cubic Bezier Functions; Catmull-Rom Splines; Quaternion Splining; Other Splines; Curves in Space. Laboratory in OpenGL.

PART III: Cameras and Rasterization
Projection: Pinhole Camera; Basic Mathematical Model; Variations; Context. Depth: Visibility; Basic Mathematical Model; Near and Far; Code. From Vertex to Pixel: Clipping; Backface Culling; Viewport; Rasterization. Varying Variables: Motivating The Problem; Rational Linear Interpolation. Laboratory in OpenGL.

PART IV: Pixels and Such
Materials: Basic Assumptions; Diffuse; Shiny; Anisotropy. Texture Mapping: Basic Texturing; Normal Mapping; Environment Cube Maps; Projector Texture Mapping; Multipass. Sampling: Two Models; The Problem; The Solution; Alpha. Reconstruction: Constant; Bilinear; Basis functions. Resampling: Ideal Resampling; Blow up; Mip Map. Laboratory in OpenGL.

PART V: Advanced Topics
Color: Simple Bio-Physical Model; Mathematical Model; Color Matching; Bases; Reflection Modeling; Adaptation; Non Linear Color. What is Ray Tracing: Loop Ordering; Intersection; Secondary Rays. Light: Units; Reflection: Light Simulation; Sensors; Integration Algorithms; More General Effects. Quick introduction to Monte Carlo Integration. Pseudo-random number generation. Global illumination with path tracing. Python implementation of a path tracer for global illumination. Neural rendering. Geometric Modeling: Basic Intro; Triangle Soup; Meshes; Implicit Surfaces; Volume; Parametric Patches; Subdivision Surfaces. Animation: Not Even an Introduction; Interpolation; Simulation; Human Locomotion. Laboratory in OpenGL.

Course organization

Classes are on Monday and Friday. Classes alterante between theory and practice using OpenGL / WebGL. The teaching language is Italian. Course material (slides) and suggested books are in English. Example code i also provided in WebGL.



Course Duration


Course Type

ai-phd Course



Marking Scheme

score in [18-30]

Participation terms

The course id intended for students enrolled at the master course in Information Engineering of the University of Firenze. Any student enrolled at the University if Firenze can enter the course in his/her cv.

Lecture Plan

Monday and Friday (6 hours per week)


March-June 2022



Modality (online/in person):

In person with online transmission and recording

Host Institution
University of Firenze

Other short courses

11. 05. 2022 Go

Geometric learning

05. 04. 2022 Go

Computer Graphics

04. 04. 2022 Go

Bayesian Learning

02. 04. 2022 Go

Computer Graphics

31. 03. 2022 Go

Web of Data

28. 03. 2022 Go

Machine Learning

27. 03. 2022 Go

Machine Learning

21. 03. 2022 Go


02. 03. 2022 Go

Player Modeling

28. 02. 2022 Go

Player Modeling

21. 02. 2022 Go

Affective Computing

21. 02. 2022 Go

Machine Listening

21. 02. 2022 Go

Computer Vision

21. 02. 2022 Go

Computer Vision

21. 02. 2022 Go

Self-Driving Cars

21. 02. 2022 Go

Deep Learning

21. 02. 2022 Go

Deep Learning 2

17. 02. 2022 Go