3d video games
A.A. 2024/2025
Obiettivi formativi
L'obiettivo dell'insegnamento è fornire un'approfondita comprensione delle soluzioni adottate dai videogiochi 3D (ovvero giochi ambientati in mondi 3D virtuali) al fine di affrontare i numerosi compiti che devono essere risolti durante la loro esecuzione, compreso il background matematico, le strutture di dati, gli algoritmi maggiormente impiegati, e la relativa terminologia tecnica. L'obiettivo finale è quello di fornire i concetti che sottendono allo sviluppo di un game-engine 3D moderno, che sono anche necessari all'uso pienamente consapevole di strumenti esistenti di questo tipo.
Risultati apprendimento attesi
Al termine dell'insegnamento, gli studenti avranno appreso le tecniche alla base delle soluzioni ubiquamente adottate dai moderni videogiochi 3D. In particolare, avranno familiarizzato con il background matematico, gli algoritmi e le strutture dati preposte ad affrontare le sfide tecnologiche che devono essere superate da un videogioco 3D, fra cui: la rappresentazione di oggetti e ambienti virtuali 3D, la rappresentazione del loro aspetto, la simulazione della loro evoluzione fisica, la riproduzione di computer animations 3D (scripted o procedurali) e di effetti visuali 3D. Gli studenti vengono inoltre dotati delle nozioni atte a collegare i contenuti impartiti da questo insegnamento a quelli proposti da altri insegnamenti del corso di laurea, che siano pertinenti ai 3D videogames, come quelli inerenti a: real-time audio, real-time rendering avanzato, intelligenza artificiale per virtual agent, e networking. Alcuni dei contenuti trattati nell'insegnamento sono rinforzati attraverso l'esemplificazione in pratica con game-dev tools o game-engines esistenti.
Periodo: Secondo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento può essere seguito come corso singolo.
Programma e organizzazione didattica
Edizione unica
Responsabile
Periodo
Secondo semestre
Programma
GLi argomenti dell'insegnamento sono raggruppate in quattro aree:
(1) Matematica per 3D videogame (2 CFU, 16 ore)
(2) Computer animation per 3D videogame (2CFU, 16 ore)
(3) Rappresentazione dell'aspetto nei 3D videogame (1CFU, 8 ore)
(3) Lezioni ponte (1CFU, 8 ore)
Computer Animations copre sia le animazioni computate che quelle scripted.
L'aspetto copre sia i modelli 3D che i materiali.
Le lezioni "ponte" sono una visione dall'alto di interi argomenti, che hanno lo scopo di collegare i contenuti di questo insegnamento con altri insegnamenti del Corso di Laurea.
Programma dettagliato:
* Lez.01: Introduzione ai 3D games
PARTE 1: Matematica
* Lez.02: Matematica per 3D games: punti, vettori, versori
* Lez.03: Matematica per 3D games: trasformazioni geometriche
* Lez.04: Matematica per 3D games: rotazioni 3D
* Lez.05: Matematica per 3D games: rappresentazioni basate su quaternioni
* Lez.06: Matematica per 3D games: vari esempi di applicazione
* Lez.07: Lo Scene-Graph
PARTE 2: Fisica
* Lez.08: 3D Game physics: simulazione di dinamica Newtoniana
* Lez.09: 3D Game physics: sistemi di integrazione
* Lez.10: 3D Game physics: position based dynamics
* Lez.11: 3D Game physics: gestione delle collisioni
* Exer12: 3D Game physics: sandbox su collisioni
* Exer13: sistemi di particelle
PARTE 5: Modelli 3D
* Lez.14: Rappresentazioni geometriche per 3D games
* Lez.15: Textures per 3D Games (incluso normal maps)
* Lez 16: Rappresentazione di Materiali
* Lez.17: Pipeline di produzione di asset per 3D Games
PARTE 6: Scripted Computer Animation
* Lez.18: Animazioni nei 3D Games: cinematica
* Lez.19: Animazioni nei 3D Games: blend-shapes
* Lez.20: Animazioni nei 3D Games: animazioni scheletali
PARTE 7: LEZIONI PONTE
* Lez.21: Lezione ponte: audio nei 3D games
* Lez.22: Lezione ponte: networking in 3D games
* Lez.23: Lezione ponte: AI in 3D games
* Lez.24: Lezione ponte: rassegna di tecniche di rendering per 3D games
(Ogni argomento è della durata di circa 2 ore.)
Note:
=== Attività extracurriculari dopolezione:
Dopo ogni lezione, si svolge una breve attività extra-curriculare, della durata massima di circa 1h. Si tratta di una piccola attività del tutto facoltativa, offerta agli studenti interessati, intesa come uno svago piuttosto che un lavoro. Gli argomenti trattati non sono in alcun modo parte dalla prova di esame.
A turni alterni, vengono proposte due attività (ciascuna delle quali ha quindi, una cadenza settimanale):
* "Il gioco della settimana": viene mostrato e brevemente analizzato un videogioco esistente che "abusa" oppure contraddice l'uso tradizionale di un meccanismo presentato nella lezione.
* "Mini-laboratorio C++": un'introduzione al linguaggio C++ (uno dei principali linguaggi di riferimento per l'industria dei videogames) in cui si presentano alcuni costrutti base del linguaggio scrivendo "da zero" una piccola libreria per la gestione della matematica di un videogame.
(1) Matematica per 3D videogame (2 CFU, 16 ore)
(2) Computer animation per 3D videogame (2CFU, 16 ore)
(3) Rappresentazione dell'aspetto nei 3D videogame (1CFU, 8 ore)
(3) Lezioni ponte (1CFU, 8 ore)
Computer Animations copre sia le animazioni computate che quelle scripted.
L'aspetto copre sia i modelli 3D che i materiali.
Le lezioni "ponte" sono una visione dall'alto di interi argomenti, che hanno lo scopo di collegare i contenuti di questo insegnamento con altri insegnamenti del Corso di Laurea.
Programma dettagliato:
* Lez.01: Introduzione ai 3D games
PARTE 1: Matematica
* Lez.02: Matematica per 3D games: punti, vettori, versori
* Lez.03: Matematica per 3D games: trasformazioni geometriche
* Lez.04: Matematica per 3D games: rotazioni 3D
* Lez.05: Matematica per 3D games: rappresentazioni basate su quaternioni
* Lez.06: Matematica per 3D games: vari esempi di applicazione
* Lez.07: Lo Scene-Graph
PARTE 2: Fisica
* Lez.08: 3D Game physics: simulazione di dinamica Newtoniana
* Lez.09: 3D Game physics: sistemi di integrazione
* Lez.10: 3D Game physics: position based dynamics
* Lez.11: 3D Game physics: gestione delle collisioni
* Exer12: 3D Game physics: sandbox su collisioni
* Exer13: sistemi di particelle
PARTE 5: Modelli 3D
* Lez.14: Rappresentazioni geometriche per 3D games
* Lez.15: Textures per 3D Games (incluso normal maps)
* Lez 16: Rappresentazione di Materiali
* Lez.17: Pipeline di produzione di asset per 3D Games
PARTE 6: Scripted Computer Animation
* Lez.18: Animazioni nei 3D Games: cinematica
* Lez.19: Animazioni nei 3D Games: blend-shapes
* Lez.20: Animazioni nei 3D Games: animazioni scheletali
PARTE 7: LEZIONI PONTE
* Lez.21: Lezione ponte: audio nei 3D games
* Lez.22: Lezione ponte: networking in 3D games
* Lez.23: Lezione ponte: AI in 3D games
* Lez.24: Lezione ponte: rassegna di tecniche di rendering per 3D games
(Ogni argomento è della durata di circa 2 ore.)
Note:
=== Attività extracurriculari dopolezione:
Dopo ogni lezione, si svolge una breve attività extra-curriculare, della durata massima di circa 1h. Si tratta di una piccola attività del tutto facoltativa, offerta agli studenti interessati, intesa come uno svago piuttosto che un lavoro. Gli argomenti trattati non sono in alcun modo parte dalla prova di esame.
A turni alterni, vengono proposte due attività (ciascuna delle quali ha quindi, una cadenza settimanale):
* "Il gioco della settimana": viene mostrato e brevemente analizzato un videogioco esistente che "abusa" oppure contraddice l'uso tradizionale di un meccanismo presentato nella lezione.
* "Mini-laboratorio C++": un'introduzione al linguaggio C++ (uno dei principali linguaggi di riferimento per l'industria dei videogames) in cui si presentano alcuni costrutti base del linguaggio scrivendo "da zero" una piccola libreria per la gestione della matematica di un videogame.
Prerequisiti
Non è richiesto alcun prerequisito formale.
Si consiglia fortemente una formazione in Computer Graphics e in Matematica (algebra lineare). E' utile una formazione di base di fisica (dinamica newtoniana), e programmazione (linguaggi imperativi e OO).
Si consiglia fortemente una formazione in Computer Graphics e in Matematica (algebra lineare). E' utile una formazione di base di fisica (dinamica newtoniana), e programmazione (linguaggi imperativi e OO).
Metodi didattici
Lezioni frontali.
Talvolta, per effettuare esempi e dimostrazioni, ci si avvarrà dell'uso di un Game Engine esistente.
Talvolta, per effettuare esempi e dimostrazioni, ci si avvarrà dell'uso di un Game Engine esistente.
Materiale di riferimento
Vengono forniti lucidi di ogni lezione (vedere piattaforma Ariel)
Libro di testo suggeriti (non è necessario il loro possesso):
* per la parte di matematica: "Mathematics for 3D game programming and computer graphics" - Eric Lengyel - ISBN: 1435458869
* per le parti di fisica ed animazione: "Game Engine Architecture" (quasiasi edizione) - Jason Gregory - ISBN: 1138035459
Libro di testo suggeriti (non è necessario il loro possesso):
* per la parte di matematica: "Mathematics for 3D game programming and computer graphics" - Eric Lengyel - ISBN: 1435458869
* per le parti di fisica ed animazione: "Game Engine Architecture" (quasiasi edizione) - Jason Gregory - ISBN: 1138035459
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste in uno scritto di sbarramento seguito da un breve orale. Lo scritto si svolge attraverso la piattaforma Moodle SEB, e consiste in una sequenza di domande (chiuse, aperte, risoluzione di piccoli esercizi...) che vertono sull'intero programma. E' possibile (ma non necessario) presentare un piccolo progetto concordato con il docente. (questo è offerta come opportunità di apprendimento per lo studente, e non prevede un incremento del voto)
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente:
Tarini Marco
Turni:
Turno
Docente:
Tarini MarcoDocente/i
Ricevimento:
Martedì 14:30-17:30 (o su appuntamento)
Dipartimento (Via Celoria 18) -- 4to piano.