Computer Graphics

Lecturer

Stefano Berretti, stefano.berretti@unifi.it

Content and organization

The course will provide a comprehensive introduction to basic and advanced computer graphics concepts with the most common techniques for 3D modeling, animation and rendering. OpenGL / WebGL is used as graphic library to apply the theory in a series on practical classes.

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 Type

AI PhD Curriculum

Host Institution
University of Firenze

Other short courses

10. 04. 2024 Go

Ethics & STICs

01. 03. 2024 Go

Computer Vision

24. 11. 2023 Go

Human Rights Toolbox

21. 02. 2023 Go

Computer Vision