- Computer Graphics
- Summary
Course Syllabus
Obiettivi
Lo studente acquisirà competenze per la progettazione e l'implementazione di algoritmi
per la computer grafica 2D e 3D. In particolare sarà in grado di applicare le
competenze acquisite per sviluppare applicazioni basate sulle API di rendering OpenGL e
sfruttando le potenzialità di una pipeline di rendering programmabile attraverso l'uso degli
shader.
Conoscenza e capacità di comprensione
Conoscenza dei concetti fondamentali della computer grafica 2D e 3D
Conoscenza delle tecniche e algoritmi alla base della rappresentazione e gestione dei dati 2D e 3D
Conoscenza e capacità di comprensione applicate
Capacità di applicare le conoscenze per la creazione di programmi rendering
Capacità di utilizzare le API grafiche per lo sviluppo di applicazioni grafche
Autonomia di giudizio
Capacità di scegliere le tecniche più adatte per il contesto applicativo
Abilità comunicative
Saper presentare e discutere lo sviluppo di progetti di computer grafica giustificando le scelte progettuali
Capacità di apprendere
Capacità di approfondire in modo indipendente aspetti avanzati della computer grafica
Contenuti sintetici
Strumenti di costruzione, trasformazione e presentazione di modelli geometrici per la
grafica tridimensionale. Elementi alla base della computer grafica standard 3D. Creazione
di applicazioni di computer grafica utilizzando le tecniche di riferimento e gli standard
più diffusi.
Programma esteso
Introduzione alle pipeline di rendering 3D
- Fissa
- Programmabile
OpenGL
- Introduzione alle API
- Logica di funzionamento
- Gli shaders
- Linguaggio GLSL (OpenGL Shading Language)
Strumenti di sviluppo
- G++
- GLEW
- FREEGLUT
- GLM
- ASSIMP
Matematica per la computer grafica
Il processo di rendering
- Modellazione 3D
- Trasformazioni geometriche
- Cambi di sistemi di riferimento
- Trasformazione di camera
- Trasformazione di proiezione
- Trasformazione Viewport
- Clipping
- Hidden surface removal
- Depth test
Approssimare la luce
- Modelli di Illuminamento locale
- Algoritmi di Shading
Dare i dettagli
- Texture Mapping
- Bump Mapping
- Shadow Mapping
- Environment Mapping
Cenni di Physical Based Rendering
- Modelli di illuminamento globale
- Ray Tracing
Esempi di software di modellazione 3D
- Blender
- POVray
Prerequisiti
Lo studente dovrà necessariamente avere una buona conoscenza di almeno un linguaggio di
programmazione (preferibilmente C++). Necessarie conoscenze di algebra lineare e geometria.
Modalità didattica
L'insegnamento è erogato in lingua Italiana.
L'insegnamento è strutturato nel seguente modo:
40 ore di lezioni frontali in modalità erogativa ed interattiva in presenza
20 ore di esercitazioni in modalità erogativa ed interattiva in presenza
12 ore di laboratorio in modalità erogativa ed interattiva in presenza
Materiale didattico
Steven K. Feiner, Andries van Dam, John F. Hughes, Morgan McGuire, David F. Sklar, James D. Foley, Kurt Akeley, Computer Graphics: Principles and Practice, Third Edition, Addison-Wesley Professional
Graham Sellers, Richard S. Wright Jr., Nicholas Haemel, "OpenGL Superbible: Comprehensive Tutorial and Reference" 7th edition, Addison-Wesley.
Slides e dispense.
Periodo di erogazione dell'insegnamento
III° anno. Secondo Semestre.
Modalità di verifica del profitto e valutazione
L'esame prevede una prova scritta, e un progetto con una prova orale.
La prova scritta consiste in domande a risposta libera e domande a risposta chiusa sugli argomenti illustrati nel corso. Alcune domande possono essere sostituite da brevi esercizi.
Il progetto di Informatica grafica ha lo scopo di farvi prendere dimestichezza con gli argomenti visti a lezione applicando le conoscenze in nuovi contesti. Il progetto può essere realizzato in una delle seguenti modalità:
- realizzare dei modelli 3D completi di texture.
- analizzare tecniche di rendering avanzate implementandole in piccole applicazioni demo.
La successiva discussione consente di verificare l'apprendimento dei concetti spiegati a lezione e la loro corretta applicazione all'interno del progetto sviluppato.
Al momento non sono previste prove in itinere.
Orario di ricevimento
Su appuntamento
Sustainable Development Goals
Aims
The student will acquire skills for the design and the implemention of 2D and 3D computer graphics algorithms.
In particular it will be able to apply the acquired skills to develop applications based on the OpenGL rendering API and
exploiting the potential of a programmable rendering pipeline through the use of the graphic shaders.
Knowledge and understanding
Knowledge of the fundamental concepts of 2D and 3D computer graphics.
Knowledge of the techniques and algorithms underlying the representation and management of 2D and 3D data.
Applied knowledge and understanding
Ability to apply knowledge to the creation of rendering programs
Ability to use graphics APIs for the development of graphics applications
Judgment and decision-making
Ability to choose the most suitable techniques for the application context
Communication skills
Ability to present and discuss the development of computer graphics projects, justifying design choices
Learning skills
Ability to independently explore advanced aspects of computer graphics
Contents
Tools for construction, transformation and presentation of geometric models in a 3D world. Basic knowledge of standard 3D computer graphics pipelines and API. Creation of computer graphics applications using state-of-the-art techniques and the most widespread reference standards.
Detailed program
Introduction to the 3D rendering pipelines
- Fixed
- Programmable
OpenGL
- Introduction to the API
- Working logic
- The shaders
- GLSL language (OpenGL Shading Language)
Development tools
- G++
- GLEW
- FREEGLUT
- GLM
- ASSIMP
Mathematics for computer graphics
The rendering process
- 3D modeling
- Geometric transformations
- Change of reference systems
- Room transformation
- Projection transformation
- Viewport transformation
- Clipping
- Hidden surface removal
- Depth test
Approximating the light
- Local illuminance models
- Shading algorithms
Giving the details
- Texture Mapping
- Bump Mapping
- Shadow Mapping
- Environment Mapping
Physical Based Rendering
- Global illumination models
- Ray Tracing
Examples of 3D modeling software
- Blender
- POVray
Prerequisites
The student must necessarily have a good knowledge of at least one programming language
(preferably C++), of linear algebra, and geometry.
Teaching form
Teaching given in Italian.
The course is structured as follows:
40 hours of face-to-face lectures in delivery and interactive in-presence mode
20 hours of exercises in delivery and interactive in-presence mode
12 hours of laboratory in delivery and interactive in-presence mode
Textbook and teaching resource
Steven K. Feiner, Andries van Dam, John F. Hughes, Morgan McGuire, David F. Sklar, James D. Foley, Kurt Akeley, Computer Graphics: Principles and Practice, Third Edition, Addison-Wesley Professional
Graham Sellers, Richard S. Wright Jr., Nicholas Haemel, "OpenGL Superbible: Comprehensive Tutorial and Reference" 7th edition, Addison-Wesley.
Slides and handouts.
Semester
III° year. Second Semester.
Assessment method
The assessment includes a written test, a project and an oral.
The written test consists of open questions and questions with multiple choices on topics presented in the course. Some questions can be replaced by brief exercises.
The project aims to make you familiar with the topics seen in class by applying them in new contexts. The project can be carried out in one of the following ways:
- create 3D models complete with textures.
- analyze and implement advanced rendering techniques in small demo applications.
The oral exam consists in a questions about the technical and theoretical choices made in the project, and the topics of the lectures.
At the moment, there are no ongoing tests.
Office hours
By appointment
Sustainable Development Goals
Key information
Staff
-
Gianluigi Ciocca
-
Davide Marelli
-
Simone Melzi