Programma dei Moduli del Corso:

C++ | Docente:
Fabrizio Bazzurri
  1. variabili primitive, cout
  2. compilazione tramite makefile
  3. metodi e scope
  4. costanti, puntatori e reference (e varie combinazioni tra const e ptr)
  5. new e delete
  6. structs e classi (con costruttori e distruttori)
  7. enums e unions
  8. programmazione modulare ( .cpp e .h , dipendenze e patterns nel makefile )
  9. variabili/metodi membro e statici
  10. overload degli operatori ( aritmetici binari, incremento, i/o stream, funzione() )
  11. ereditarietà ( public, protected e private ), classi astratte  e polimorfismo 
  12. parole chiave: virtual, override, final, = default, = 0, noexcept, friend
  13. cast di puntatori ( static/dynamic/const ) legati all'ereditarietà
  14. visibilità dei metodi in overload della classe madre tramite " using BaseClass::FunctionName "
  15. copy constructor / assignment
  16. move constructor / assignment (con qualche info su rvalue e lvalue )
  17. strings e regex
  18. unique_ptr e shared_ptr
  19. function pointers, functors, lambda functions
  20. containers: vector, list, map (con overload operator< ), unordered_map (con overload operator== e Functor (o specializzazione std::hash) per creare l'hash -basilare-)
  21. iteratori
  22. streams ( cout/cin, fstream, sstream )
  23. overload operatore >> per inizializzare un oggetto
  24. rapidxml (come includerla ed esempio basilare)
  25. soil (come includerla ed esempio basilare)
  26. try .. catch (con esempi di eccezioni esistenti ed estensione custom della classe exception)
  27. template (metodi e classi ed i problemi legati al link)



Motori Di Rendering | Docente:
Fabrizio Bazzurri
  1. Principali differenze tra ray-tracing e ray-casting. Relative pipeline di rendering
  2. Concetti di algebra lineare e principali strutture usate nel rendering. Quaternioni
  3. Equazione del raggio e algoritmi di intersezione tra primitive
  4. Introduzione alle strutture acceleranti e disamina delle principali
  5. Camera e relativi sistemi di riferimento. Problema della prospettiva
  6. Teoria del campionamento e principali algoritmi per la generazione di campioni
  7. Introduzione alle principali BRDF. Microfacet BRDF
  8. Concetti avanzati per una corretta definizione dei materiali nel rendering
  9. Luci
  10. Concetti di probabilità e metodi Montecarlo
  11. Ambient occlusion e depth of field
  12. Introduzione al path tracing