INFORMATICA GRAFICA

LABORATORIO DI INFORMATICA GRAFICA

Corso di Laurea in Ingegneria Edile-Architettura

Anno Accademico 2002/2003

Prof. Primo Zingaretti

 


OBIETTIVI FORMATIVI

Il corso ha il duplice scopo di fornire i concetti fondamentali dell’informatica (parte I) e gli elementi di base della grafica computerizzata, gli standard e i più importanti elementi della modellazione geometrica (parte II). In particolare, ci si propone di fornire una conoscenza approfondita delle metodologie di costruzione, trasformazione e presentazione di modelli geometrici (curve, superfici, solidi). Il corso è da intendersi integrato al corso “Laboratorio di informatica grafica” in cui verranno effettuate esercitazioni che hanno lo scopo di illustrare le metodologie precedentemente studiate mediante l’uso di pacchetti software di grafica raster e vettoriale.

 

PROGRAMMA DEL CORSO

Parte I – Fondamenti di informatica.

Introduzione al corso e concetti introduttivi.

Internet e reti di calcolatori. [1 - cap. 16]

Interfacce testuali e grafiche. Elementi principali di un'interfaccia grafica (oggetti). Concetto di file. Esplora risorse, browser e pagine web. [1 - cap. 17]

Definizione dell'informatica, aree disciplinari e applicazioni. L'elaboratore elettronico come strumento per risolvere problemi. Principali componenti hardware e software. [1 - cap. 1]

Architettura di un elaboratore: dalla macchina di Von Neumann ai sistemi multitasking e multiprocessor. [1 - cap. 2]

Sistemi operativi. [1 - cap. 13]

Memorie di massa. [1 - paragrafo 14.1]

Elementi di programmazione. 

Dal linguaggio macchina ai linguaggi di alto livello. Ambienti integrati. Traduttori. Fasi di sviluppo e testing dei programmi. [1- paragrafo 1.4.5]

Algoritmi e programmi. Metodologie di programmazione. I linguaggi di alto livello. Sintassi e semantica di un linguaggio di programmazione. Definizione formale di grammatica. BNF, diagrammi e alberi sintattici. Analizzatore sintattico. [dispense di fondamenti di informatica]

Rappresentazione dell'informazione negli elaboratori. [1 - cap. 11 + dispense di fondamenti di informatica]

Rappresentazione e codifica di un insieme di oggetti.

Rappresentazione dei caratteri: ASCII, ISO 8859 e UNICODE.

Rappresentazione dei numeri naturali: posizionali e in basi diverse, conversioni da stringa a numero e viceversa, operazioni ed errori.

Rappresentazioni dei numeri interi con segno: in modulo e segno e in complemento a 2.

Rappresentazione numeri reali: normalizzata e approssimata, operazioni ed errori.

Rappresentazione e codifica di immagini: discretizzazione e rappresentazioni dei pixel, tecniche di compressione, formati file, immagini in movimento e codifca MPEG.

Rappresentazione dei suoni: campionamento e quantizzazione.

La codifica MIME.

Operatori logici. Variabili, funzioni e algebra booleana.

Introduzione al C. [1 - cap. 3÷7, 9 + dispense di fondamenti di informatica]

Caratteristiche del linguaggio.

Tipi di dato primitivi e derivati, costanti, espressioni semplici e composte, operatori e loro priorità e associatività.

Variabili: L-value, R-value, definizione e inizializzazione, proprietà.

Effetti collaterali: assegnamento e auto-incremento/decremento.

Struttura dei programmi C: il main,

Il modello cliente-servitore.   L’interfaccia di comunicazione: parametri e valore di ritorno, information hiding.

Chiamata di funzione: binding parametri formali e attuali, environment e record di attivazione.

Passaggio dei parametri per valore e per riferimento.

Progetti su più file. Dichiarazioni di funzioni. Funzioni e file. Funzioni e variabili locali/globali.

Programmazione strutturata. Istruzioni semplici e di controllo (blocco, selezione, iterazione e salto).

Il preprocessore. Direttive include, define e ifdef. File header e cautele d’uso. Macro semplici e parametriche.

Procedure. Operatori di estrazione di indirizzo e dereferenziazione. Puntatori e passaggio per puntatore.

Dati strutturati: array e strutture.

Array passati come parametri. Aritmetica e scalarità dei puntatori. Array multidimensionali. Incapsulamento di array in una struttura.

Canali di I/O. I/O a caratteri, a stringhe, formattato. Specifiche di formato.

Il concetto di file: apertura, lettura, scrittura e chiusura. File binari e di testo.

Parte II – Fondamenti di grafica computerizzata.

Introduzione.

Definizione di grafica al calcolatore (CG). Illustrazione tramite paradigmi.

Schema di un’applicazione grafica: modellazione, rendering e immagine finale.

CG vs CV (computer vision).

Sviluppo della CG.

Principali elementi hardware e software.

Applicazioni.

Introduzione al rendering.

Cosa significa fare grafica 3D. Sintesi di immagini.

Metafora object vs viewer. Cosa serve per definire un oggetto, una scena, un viewer.

Macchina fotografica virtuale. Parametri pinhole camera.

Architettura di un renderer. La pipeling di rendering. Sistemi di coordinate.

Volume di vista, proiezione ortografica, trasformazioni affini, rigide proiettive.

Strumenti matematici e geometrici.

Spazi vettoriali lineari, affini e euclidei. Differenza tra punti e vettori.

Combinazioni affini e coordinate omogenee.

Richiami sulle matrici. Cambio di sistema di riferimento: matrice di cambiamento di frame.

Trasformazioni passive e attive. Trasformazioni lineari e affini.

Trasformazioni affini: traslazioni, rotazioni attorno agli assi e inverse, scalatura. Composizione di trasformazioni.

Proiezioni e definizione di viste arbitrarie. [2 – cap. 6]

Definizione e classificazione delle proiezioni: piane e non, prospettiche (uno, due e tre punti di fuga), parallele ortografiche e oblique.

Trasformazioni di vista (definizione di viste arbitrarie): piazzare la camera, definire il volume di vista e la legge di proiezione.

Matrici di trasformazione proiettiva, ortogonale, viewport e per mapping del volume di vista.

Simulatore di volo e camera orbitante.

Colore. [2 – cap. 13]

Percezione del colore. Struttura, funzioni e prestazioni del sistema visivo umano: sensori, campo visivo,  visione notturna e diurna, adattamento, contrasto, illusioni, costanza cromatica.

Il colore come fenomeno fisico: luce, onde e spettro.

Onde e oggetti: riflessione, assorbimento e trasmissione.

Codifica del colore e spazi cromatici.

Illuminazione e shading.  [2 – cap. 16]

Lighting e shading. Modelli di illuminazione: locali e globali.

Modello di riflessione locale di Phong: componente emissiva, riflessione diffusa, fattore di attenuazione, riflessione speculare, equazione di illuminazione diretta, componente ambientale.

Shading di superfici: flat shading, shading interpolato, Gouraud shading, Phong shading. Ombre.

Sorgenti luminose: ambiente, puntiforme, distante, spotlight.

Modelli di illuminazione globale. Ray tracing. Radiosità.

Modelli per i materiali. Dettagli sulle superfici. Texture mapping: (s)vantaggi, definizione, proiezioni. Texture mapping procedurale, bump mapping. Mappaggio di immagini in AutoCAD.

Grafica 2D (rasterizzazione). [2 – cap. 3]

Disegno di linee e curve: algoritmi scan-converting-line e Bresenham.

Filling (rasterizzazione di poligoni): algoritmo base, slivers e spessori.

Clipping di segmenti e di poligoni: algoritmi di Cohen-Sutherland e Sutherland-Hodgman.

Antialiasing: sampling pesato e non.

Curve e superfici parametriche. [3 o dispense Giretti a.a. 2001-02]

Equazioni parametriche. Curve parametriche. Curve parametriche cubiche: forma algebrica e geometrica.

Curve di Hermite. Funzioni di miscelamento.

Curve composte: continuità. Coniche. Curve di Bezier.

Curve B-spline. Curve NURBs.

Superfici parametriche: patch bicubici, superfici di Bezier, superfici B-spline, superfici composte, superfici cilindriche, superfici rigate, superfici di rivoluzione.

Modellazione solida. [2 – cap. 12]

Modellazione solida. Operazioni booleane su solidi: operatori regolarizzati e generali.

Rappresentazioni: primitive instancing, sweep, boundary (B-rep) e poliedri, spatial partitioning (cell decomposition, spatial-occupancy enumeration, quadtree e octree, binary space partitioning trees), constructive solid geometry (CSG).

Proprietà rappresentazioni e confronti.

Determinazione delle superfici visibili. [2 – cap. 15]

Tre classi di algoritmi: conservativi (2D bounding box, 3D bounding volume, back-face culling, partizionamento spaziale e gerarchie di volumi), image (z-buffer) e object precision (algoritmi del pittore, depth sort, BSP tree, algoritmi di Warnock e Catmull).

Grafica raster. [dispense Giretti a.a. 2001-02]

Rappresentazione di immagini raster: parametro, risoluzione, profondità e dinamica.

La raster viewing pipeline: trasformazione window-viewport.

Istogrammi. Enhancement. Restauro. Compressione.

Elaborazioni sulle immagini: operazioni puntuali (equalizzazione e stretch dell’istogramma), algebriche (operatori algebrici e booleani, alfa-blending), geometriche e locali (convoluzioni e filtri passa-alto/basso).

 

Parte III – Esercitazioni

Gli strumenti CAD nella rappresentazione e nel progetto. Esercitazioni in laboratorio con AutoCAD®. [4]

AutoCAD 2D.

Gli elementi dell'interfaccia. Modalità di inserimento dei comandi. Creazione di un disegno da zero. I cinque metodi di inserimento coordinate con esempi di disegno. Snap alla griglia e ad oggetti. Puntamento polare e snap polare. Metodi di selezione di oggetti. I layer. Inserimento di testi. Filtri per la selezione di oggetti e gruppi. Creazione e inserimento di blocchi. Quotatura dei disegni.

AutoCAD 3D.

Modellazione 3D: modelli wireframe, di superfici e solidi. Inserimento di coordinate 3D. I sistemi di coordinate WCS (globali) e UCS (utente).

Visualizzazione in 3D: modo ombra e render. Comandi relativi al punto di vista. Sistemi di coordinate utente.

Rendering: creazione del modello 3D (solidi o superfici), scelta del punto di vista, sfondi, nebbia, paesaggi, luci (circostante, puntiforme, distante, spotlight), materiali, scene, tipi di rendering (normale, qualità fotografica, raytracing fotografico), comando render.

3D studio max. [opzionale]

Interfaccia. Creazione e modifica di primitive 2D e 3D. Inserimento di materiali (mappe e tessiture), luci e camere. Rendering.

 

L’immagine digitale e la comunicazione visiva. Esercitazioni in laboratorio con Adobe Photoshop. [5]

Interfaccia. Formati dei file. Metodi di rappresentazione. Dimensione, risoluzione e interpolazioni.

Tecniche di selezione. Menù strumenti. Palette storia. Livelli, canali e istogrammi.

Regolazione di livelli, curve, luminosità, contrasto, tonalità e saturazione. Effetti e filtri. Profili ICC.

 


TESTI DI RIFERIMENTO:

1.      S. Ceri, D. Mandrioli, L. Sbattella. Informatica - arte e mestiere. McGraw-Hill, 1994.

  1. J. Foley, A. van Dam, S. Feiner, J. Hughes, Computer Graphics - Principles and Practice in C, 2nd Ed., Addison Wesley, 2001
  2. M.E. Mortenson, Modelli geometrici in Computer Graphics, McGraw-Hill, 1989.
  3. J.A. Leach, AutoCAD 2002, McGraw-Hill, 2002 o Manuale AutoCAD®
  4. M. Lennox, Adobe Photoshop 5.5 subito e facile, Mondatori informatica, 2000 o Manuale Adobe Photoshop