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