- 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.
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'attività
didattica sarà erogata in presenza, salvo indicazioni diverse,
nazionali e/o di Ateneo, dovute al protrarsi dell'emergenza COVID-19.
L'insegnamento è erogato in linga Italiana.
Lezioni frontali, esercitazioni e laboratori.
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
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.
Al momento 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
Lessons will be held in presence, unless further COVID-19 related
restrictions are imposed.
Teaching given in Italian.
Lectures, exercises, and practice labs.
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 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.
At the moment, there are no ongoing tests.
Office hours
By appointment