Associate Professor
Stefano Berretti, stefano.berretti@unifi.it
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.
PART VI: AI in CG
Neural rendring, Neural Radiance Fields.
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.
Master
48
AI PhD Curriculum
6
score in [18-30]
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.
Monday and Friday (6 hours per week)
February-June 2025
Italian
In person with online transmission and recording