Calcolo numerico per la generazione di immagini fotorealistiche

A.A. 2024/2025
6
Crediti massimi
62
Ore totali
SSD
FIS/05 FIS/06
Lingua
Italiano
Obiettivi formativi
L'insegnamento vuole fornire agli studenti due tipi di competenze: la capacità di implementare un codice numerico che approssimi un modello di un fenomeno fisico non banale, e l'abilità nel costruire un software complesso, usando una serie di strumenti di livello professionale come supporto alla programmazione.
La prima competenza consiste nell'acquisire la capacità di implementare un software che calcoli soluzioni via via più accurate della cosiddetta equazione del rendering, generando immagini fotorealistiche a partire da un modello matematico che descriva la morfologia di oggetti tridimensionali in modo simile a quello di programmi come Autodesk 3D Studio.
Il secondo genere di competenza sviluppato in questo insegnamento permetterà allo studente di costruire un software complesso, formato da più parti in interazione tra loro e da una robusta serie di verifiche interne. Per realizzare questo scopo, lo studente saprà usare strumenti e procedure usate oggi sia in ambito scientifico che civile per lo sviluppo di software professionali, quali: misura delle performance di programmi (in termini sia di tempo che di occupazione di memoria), sistemi di controllo di versione, sistemi di bug-tracking, tecniche di unit testing ed integration testing, servizi di Continuous Integration (CI), etc
Risultati apprendimento attesi
Lo studente al termine dell'insegnamento avrà acquisito le seguenti abilità:
1. Sarà in grado di implementare un software complesso che simuli un sistema descritto da un modello fisico non banale;
2. Saprà come descrivere matematicamente la morfologia di oggetti tridimensionali complessi;
3. Saprà come usare trasformazioni omogenee e quaternioni per descrivere la collocazione e l'orientamento di oggetti nello spazio tridimensionale;
4. Saprà collaborare con altre persone nello sviluppo di software usando un software di controllo di versione distribuito (nell'insegnamento verrà usato git) e sistemi di code review;
5. Avrà la capacità di gestire sistemi di bug-tracking per tenere sotto controllo la qualità del proprio software;
6. Saprà utilizzare web-platform per la gestione e la condivisione di codice (nell'insegnamento verrà usato GitHub);
7. Sarà in grado di usare strumenti per la misura delle performance di codice (perf, valgrind, etc.).
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Secondo semestre
FIS/05 - ASTRONOMIA E ASTROFISICA - CFU: 3
FIS/06 - FISICA PER IL SISTEMA TERRA E PER IL MEZZO CIRCUMTERRESTRE - CFU: 3
Laboratori: 48 ore
Lezioni: 14 ore
Docente: Tomasi Maurizio
Docente/i
Ricevimento:
Su appuntamento
Laboratorio di Strumentazione Spaziale, Dipartimento di Fisica (via Celoria 16, Milano)