Scheda programma d'esame
COMPUTER GRAPHICS
FABIO GANOVELLI
Academic year2023/24
CourseCOMPUTER SCIENCE
Code727AA
Credits6
PeriodSemester 2
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
COMPUTER GRAFICAINF/01LEZIONI48
FABIO GANOVELLI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Il corso si pone l'obiettivo di fornire le basi di Grafica 3D descrivendo le strutture dati fondamentali per la rappresentazione di forme e gli algoritmi per la loro resa.  Al termine del corso gli studenti avranno gli strumenti per poter utilizzare al meglio librerie e standard per la grafica e le capacità per realizzare applicazioni interattive.

Knowledge

This is an introductory course to 3D Computer Graphics. The course will provide the students with fundamental knowledge of 3D shape representation and rendering. By the end of the course the students will have the skills to enable them to develop interactive 3D applications using standard libraries.

Modalità di verifica delle conoscenze

L'esame consta di una prova scritta e di un piccolo progetto da illustrare al docente. 

Prova scritta: 4 o 5 esercizi, è ammesso portare il materiale del corso e usare laptop e simili.

Progetto:
Il progetto consisterà nello sviluppo della parte di rendering di un'applicazione, da svolgere (preferibilmente) durante il corso in forma di esercizi di implementazione proposti a lezione.

Il progetto dovrà essere presentato al docente in una brevissima discussione per accertare se sviluppatore/trice e candidato/a coincidono

Assessment criteria of knowledge

 

The exam consists of a written test and a small project to be presented to the instructor.

Written test: 4 or 5 exercises, bringing course materials is allowed, and the use of laptops or similar devices is permitted.

Project: The project involves developing the rendering part of an application, to be completed (preferably) during the course as implementation exercises proposed during class.

The project must be presented to the instructor in a brief discussion to ensure that the developer and the candidate coincide.

 

Capacità

alla fine del corso lo studente sarà in grado di sviluppare un motore di rendering di scene 3D utilizzando le più diffuse librerie nel settore professionale dello sviluppo di software grafico (OpenGL, GLFW, Dear Imgui)

Skills

At the end of the course, the student will be able to develop a rendering engine for 3D scenes using widely used libraries in the professional field of graphic software development (OpenGL, GLFW, Dear ImGui).

Modalità di verifica delle capacità

durante il corso verranno svolte sessioni di "live coding" e assegnati piccoli progetti che, incrementalmnete, porteranno allo svolgimento del progetto di esame

Assessment criteria of skills

hroughout the course, live coding sessions will be conducted, and small projects will be assigned, gradually leading to the completion of the final exam project."

Prerequisiti (conoscenze iniziali)

conoscenze di base di algebra lineare e calcolo

conoscenze di base di programmazione  (C++)

Nota: non è richiesta una conoscenza approfondita de linguaggio C++. La struttura del codice che verrà sviluppato durante il corso è molto semplice e lineare.

Prerequisites

Basic knowledge of linear algebra and calculus.

Basic programming skills (C++).

Note: A deep understanding of the C++ language is not required. The code structure that will be developed during the course is very straightforward and linear.

Prerequisiti per studi successivi

L'esame  è consigliato a coloro che hanno intenzione di seguire i seguenti esami di Master:

   SCIENTIFIC AND LARGE DATA VISUALIZATION -  DANIELA GIORGI, MASSIMILIANO CORSINI - 656AA CFU6  

 

3D GEOMETRIC MODELING & PROCESSING - PAOLO CIGNONI 758AA CFU6

Prerequisites for further study

The exam is recommended for those who intend to take the following Master's exams:

SCIENTIFIC AND LARGE DATA VISUALIZATION - DANIELA GIORGI, MASSIMILIANO CORSINI - 6 CFU


3D GEOMETRIC MODELING & PROCESSING - PAOLO CIGNONI - 6 CFU

Programma (contenuti dell'insegnamento)
  1. Introduzione   
    1. Computer Graphics e applicazioni
    2. Descrizione della struttura del corso, modalità di esame
  2. Fondamenti   
    1. Il sistema di visione umano
    2. Color spaces, illuminant, gamma correction
    3. Rappresentazione delle immagini: immagini raster e immagini vettoriali
    4. Pipeline di rendering rasterization based ( o proiettiva) 
    5. Raytracing
  3. Rappresentazione di superfici e volumi tridimensionali  
    1. mesh di poligoni, curve e superfici parametriche 
    2. Rappresentazioni di volume: voxels
  4. Trasformazioni geometriche nella pipeline di rendering 
    1. Trasformazioni di base: traslazione, scalatura, rotazione. Rappresentazione matriciale delle trasformazioni. 
    2. I frames, organizzazione gerarchica delle trasformazioni. 
    3. Dallo spazio 3D allo schermo: proiezioni ortografiche e prospettiche. Trasformazioni nella pipeline di rendering
  5. Lighting and Shading 
    1. Interazione luce/materia: Riflessione, rifrazione, assorbimento, scattering 
    2. L’equazione di rendering e le sue semplificazioni: Phong lighting, Cook-torrance, Oren-Nayar, Minnaert 
    3. Textures. Concetti di base. Magnification and Minification. Perspective correct interpolation 
  6. Utilizzi avanzati
    1. Depth of field, lens flare, radial distortion
    2. Ombre: Shadow mapping e shadow volumes; Ambient obscurance.  Subsurface scattering 
    3. Texture e lighting: bump mapping, relief mapping 
  7. Ray Tracing
    1. intersezione raggio-scena
    2. montecarlo integration - importance sampling - russian roulette
  8. Global Illiumination (cenni)
    1. radiosity - irradiance caching - photon mapping

 

Syllabus
  1. Introduction 2h. 
    1. Computer Graphics and applications
    2. Course and  exam description
  2. Fundamentals  4h 
    1. The Human Vision System
    2. Color spaces, illuminant, gamma correction
    3. Image representation: raster images and vectorial images
    4. Rendering pipeline: Rasterization based  
    5. Rendering pipeline: Raytracing
  3. Surface and volume representation  4h
    1. Where data comes from: 3D scanning, modeling, simulation
    2. Implicit and explicit representation
    3. Volume representation: voxels
  4. Geometric transformations in the rendering pipeline 6h
    1. basic transformation: translation, scaling, rotation. Matrix representation of transformation (2h)
    2. Frames, hierarchical organization of transformations (2h)
    3. From 3D space to your screen: transformation in the rendering pipeline (2h)
  5. Rendering HW 2h
    1. Graphical Processing Unit. Architecture,  model of  computation, memory organization
  6. Lighting and Shading 6h
    1. Lilght-matter interaction: Reflection, refraction, absobrtion, scattering (2h)
    2. The rendering equation and its approximations: Phong lighting, Cook-torrance, Oren-Nayar, Minnaert (2h)
    3. Textures. Basics of texturing. Magnification and Minification. Perspective correct interpolation. Notes on parametrization (2h)
  7. Advanced 3D graphics 4h
    1. Depth of field, lens flare, radial distortion
    2. Shadow: Shadow mapping e shadow volumes; Ambient obscurance.  Subsurface scattering (3h)
    3. Texture e lighting: bump mapping, relief mapping (1h)
  8. Global Illumination 6h
    1. Ray tracing, acceleration data structures and algorithms, path tracing, photon tracing (4h)
  9. Practical/Project 14h (distributed along the course)
    1. Sviluppo del rendering di un semplice videogioco, integrando in maniera progressiva le conoscenze acquisite 10h
Indicazioni per non frequentanti

Le lezioni potranno essere registrate se richiesto, le slides saranno rese disponibili alla fine di ogni lezione

Non-attending students info

The lessons can be recorded upon request, and the slides will be made available at the end of each lesson.

Modalità d'esame

L'esame consta di una prova scritta e di un piccolo progetto da illustrare al docente. 

Prova scritta: 4 o 5 esercizi, è ammesso portare il materiale del corso e usare laptop e simili.

Progetto:
Il progetto consisterà nello sviluppo della parte di rendering di un'applicazione, da svolgere (preferibilmente) durante il corso in forma di esercizi di implementazione proposti a lezione.

Il progetto dovrà essere presentato al docente in una brevissima discussione per accertare se sviluppatore/trice e candidato/a coincidono

Assessment methods

The exam consists of a written test and a small project to be presented to the instructor.

Written test: 4 or 5 exercises, bringing course materials is allowed, and the use of laptops or similar devices is permitted.

Project: The project involves developing the rendering part of an application, to be completed (preferably) during the course as implementation exercises proposed during class.

The project must be presented to the instructor in a brief discussion to ensure that the developer and the candidate coincide.

Altri riferimenti web

https://teams.microsoft.com/l/team/19%3Agpjzz_dv7pBAnb5qVOcgat8I1wD4KK0s9MJLDQrY9T41%40thread.tacv2/conversations?groupId=5ef44173-5652-472b-a095-77b3eb08f2e9&tenantId=c7456b31-a220-47f5-be52-473828670aa1

Updated: 30/01/2024 16:44