- Informatica Grafica
- Introduzione
Syllabus del corso
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.
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
- 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
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 linga Italiana.
Lezioni frontali, esercitazioni e laboratori.
Nel periodo di emergenza
Covid-19 la modalità di erogazione dell'insegnamento viene modificata.
Le lezioni, esercitazioni e laboratori saranno erogati da remoto.
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
Nel periodo di emergenza Covid-19 l'esame consiste in un progetto ed un orale. Gli esami orali saranno solo
telematici. Verranno svolti utilizzando la piattaforma WebEx e nella
pagina e-learning dell'insegnamento verrà riportato un link pubblico per
l'accesso all'esame di possibili spettatori virtuali.
Se la situazione lo consente, verrà considerata lintroduzione di uno scritto che sostituirà parzialmente l'orale. Il progetto rimane parte dell'esame.
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 o più delle seguenti modalità:
- aggiungere nuove funzionalità grafiche nel codice fatto a lezione.
- realizzare dei modelli 3D completi di texture.
- analizzare
tecniche di rendering avanzate.
La successiva discussione consente di verificare l'apprendimento dei concetti spiegati a lezione e la loro corretta applicazione all'interno del progetto sviluppato.
Non sono previste prove in itinere.
Orario di ricevimento
Su appuntamento
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.
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.
Lectures, exercises, and practice labs.
During the Covid-19
emergency period, the method of teaching delivery is changed. Lessons,
exercises, and laboratory sessions will be delivered remotely.
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
During
the Covid-19 emergency period, the assessment is composed of a project and an oral exams. The oral exam will only be online, and it will be carried out using the WebEx platform and on the e-learning page
of the course there will be a public link for access to the examination
of possible virtual spectators.
Depending on the current events, it will be considered the introduction of a written exam which will partially replace the oral exam. The projet will still be part of the exam.
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 or more of the following ways:
- add new graphic features in the code done in class.
- create 3D models complete with textures.
- analyze advanced rendering techniques.
The oral exam consists in a questions about the technical and theoretical choices made in the project, and the topics of the lectures.
There are no ongoing tests.
Office hours
By appointment