UNIVERSITA' di BOLOGNA
Sede di Bologna
Corso di Laurea Magistrale in Ingegneria Informatica M / Informatica M / Matematica M


Corso di Fondamenti di Computer Graphics
A.A. 2018/2019


27/02/2019 -- 6/06/2019

II ciclo, CFU 8/6

ORARIO:

MERCOLEDI' 11:00-13:30 LAB 2
MERCOLEDI' 14:00-16:30 AULA 2.7a
GIOVEDI' 14:00-16:00 Aula 4.1


 


Programma del corso

Scopo del corso:
Il corso si propone di fornire elementi di computer graphics, modellazione e resa al calcolatore. Alla teoria si affianchera' una fondamentale attività di laboratorio.
Programma del corso :
Pipeline grafica: modellazione e resa. Programmazione con la libreria di grafica avanzata OpenGL. Dispositivi di input/output. Tecniche avanzate di input 3D. Geometria per la computer graphics. Trasformazioni geometriche 2D/3D, trasformazione window-viewport, trasformazioni di vista, proiezioni prospettica e parallela. Algoritmi di grafica di base, algoritmi di clipping, algoritmi di scan conversion, algoritmi di real-time rendering, ray tracing. Modelli di illuminazione e algoritmi di shading. Texture mapping e bump mapping. Modelli mesh poligonali. Curve e superfici in forma parametrica, modellazione geometrica di curve e superfici spline e spline razionali (NURBS), strumenti per la modellazione geometrica. Superfici a topologia triangolare ed arbitraria. Curve e superfici di suddivisione. Ricostruzione di superfici a partire da dati acquisiti tramite scanner 3D. Tecniche di animazione digitale. L'animazione per fotogrammi chiave; motion capture; animazione lungo un percorso; tecniche di animazione avanzata: cinematica e dinamica diretta ed inversa; L'animazione di figure articolate. Animazione di sistemi particellari.
Il corso prevede un'attivita' di laboratorio in cui verrà utilizzato il linguaggio di programmazione C/C++ e le librerie grafiche OpenGL/GLSL.


Esami

Modalita' d'Esame:

L'esame consiste nella consegna e discussione di almeno quattro (per 6CFU) sei (per 8CFU) progetti di laboratorio scelti tra gli 8 assegnati durante le esercitazioni. Alternativamente si possono sostituire tre dei progetti con un progetto individuale concordato con il docente o con un seminario in aula su di un argomento concordato con il docente.
Programma lezioni suddiviso in 8 CFU

Appelli:


Testi di Riferimento

  • Shreiner, Woo, Neider, and Davis, OpenGL Programming Guide: The Official Guide to Learning OpenGL,
    (9th Edition)
    ,
    Addison-Wesley.

  • Edward Angel, Interactive Computer Graphics: A Top-down Approach with shader-based openGL,
    Addison-Wesley.

  • Foley, van Dam, Feiner, and Hughes, Computer Graphics: Principles and Practice,
    second edition in C, Addison-Wesley.

  • Steve Marschner, Peter Shirley, Fundamentals of Computer Graphics,
    4th Edition A K Peters/CRC Press, (2016)


  • Dispense e lucidi delle lezioni

    Lezione del 27/02
    Lezione del 27/02
    Lezione del 28/02
    Lezione del 06/03
    Lezione del 06/03
    Lezione del 07/03
    Lezione del 13/03
    SEMINARIO OPENMIND del 20/03
    SEMINARIO OPENMIND del 20/03
    Lezione del 21/03
    Lezione del 27/03
    Lezione del 28/03
    Lezione del 03/04
    Lezione del 04/04
    SEMINARIO CINECA del 11/04
    Lezione del 02/05
    Lezione del 02/05
    Lezione del 15/05
    Lezione del 16/05
    Lezione del 22/05

    OPENGL I
    OPENGL II
    OPENGL III
    OPENGL IV
    OPENGL V

    Esercitazioni di grafica

    Esercitazione 0
    Esercitazione 1
    Esercitazione 2
    Esercitazione 3
    Esercitazione 4
    Esercitazione 5
    Esercitazione 6
    Esercitazione 7
    Esercitazione 8

    Graphics LINK

  • AIM@SHAPE: shape repository
  • Meshlab free viewer for unstructured 3D triangular meshes.
  • Nate Robins TUTORIALS
  • OpenGL
  • Ambiente Visual Studio .NET
  • BLENDER: Programma OpenSource di Modellazione/Grafica e animazione 3D in Windows/Linux/Mac
  • Introduzione a Blender 2.79

  • Topics for thesis, project activities

  • 2019 Progetto 3D printing azienda
  • 2019 Proposta BORSA DI STUDIO CINECA
  • 2019 Progetto TESI Londra: Tool Chefs Comportamenti delle folle in ambito effetti speciali
  • 2019 Proposte tesi/attivita' progettuali OPENMIND

    These Topics for thesis, project activities are over

  • Progetto TESI Francia: Plug-in in C++ per Autodesk Maya per il rendering di superfici triangolari
  • Progetto TESI Francia: Costruzione di superfici interpolanti per la computer grafica
  • Progetto "CERVELLO 3D" - Collaborazione con Istituto di Psichiatria Bologna;
  • Progetto ERASMUS Francia: Haptics-assisted animation generation;
  • Progetto ERASMUS Francia: Haptics-based Design Interactor for the Generation of 2D Artwork;
  • Azienda: JAVA GROUND, Imola, ricerca e sviluppo in ambito di mobile 3D: videogiochi per telefoni cellulari;
  • TESI E TIROCINIO AGLI ISTITUTI ORTOPEDICI RIZZOLI (IOR), Bologna: Utilizzo di uno scanner 3D flatbed per la ricostruzione mediante shape-from-shading e approccio stereo-fotometrico;
  • TESI E TIROCINIO AL DIP. DI ARCHITETTURA-ING.EDILE, Bologna: ricostruzione di oggetti 3D, tecnologia ottica 3D scanner, gestione errori in ricostruzioni ed allineamenti;
  • TESI E TIROCINIO ALL'ENEA: ricoprimento di superfici parametriche mediante superfici elementari, applicazione a modelli di oreficeria;
  • CINECA : LOD and bump mapping
  • A partire da modelli tridimensionali generati da acquisizione con scanner laser 3D ad alta risoluzione studio e implemetazione di metodi di ottimizzazione per generazione modelli a vari LOD ( Level of detail ) che conservino la qualità di rendering del modello a piu' alta risoluzione con uso tecniche di bump mapping e light map.
  • Discrete fairing di oggetti acquisiti mediante scanner 3D
  • Mipmapping e magnification: un approccio diffusivo
  • Smoothing su scheda grafica programmabile
  • Ricostruzione di superfici e determinazione di buchi da dati acquisiti mediante scanner 3D
  • Semplificazione ed ottimizzazione di mesh
  • TESI E TIROCINIO ALL'ENEA: prototipazione rapida e ricostruzione di superfici da scanner laser 3D
  • TESI AL CINECA: Mapper multipipe per il Visualisation Toolkit: e' una tesi che richiede una conoscenza di base di OpenGL. Il Mapper e' un pezzo di codice OpenGL che consente di passare dal dataset al disegno delle primitive grafiche. Renderlo Multipipe vuol dire interfacciarlo con una libreria SGI che gestisce il rendering multipipe.
  • Skinning e key-frame animation via vertex shader
  • Per altre tesi contattare il docente