INTRODUZIONE ALLA COMPUTER GRAPHICS

Computer graphics: riguarda tutti gli aspetti di produzione di immagini mediante elaboratore.

Cominciamo con una breve storia.

Sviluppo della Computer Graphics

Origini della C.G. circa 40 anni fa: utilizzo di tubi a raggi catodici (CRT) come dispositivi di output grafico.
Un tubo a raggi catodici e' un dispositivo che trasforma impuldi elettrici in immagini.

Primi dispositivi entrati in commercio (dagli anni '60 fino a meta' degli anni '80) basati sul concetto di grafica vettoriale: fascio di elettroni che colpisce superficie del CRT puo' muoversi da una posizione all'altra (random scan).

Dagli anni '70 diffondersi di sistemi a grafica raster. Un'immagine e' rappresentata mediante una matrice (detta "raster") di elementi (detti "pixel" = "picture element"). Ogni pixel corrisponde ad un piccolo area dell'immagine, di forma quadrata.

Un CRT a scansione raster percorre con il suo fascio di elettroni la matrice di pixel. La scansione dell'immagine viene fatta sequenzialmente e l'intensita' del fascio di elettroni viene regolata in modo tale da riflettere l'intensita' di ciascun pixel.

Questo ha permesso introduzione del colore, controllando tre fasci di elettroni per i tre colori primari (rosso, verbe, blu).

Lo sviluppo di processori e memorie a basso costo ha portato a sviluppo di interfacce grafiche su PC (sottosistemi in grado di visualizzare animazioni 3D da inserire anche su PC).

Altri sviluppi tecnologici importanti: dispositivi di input quali joystick, mouse, tavoletta magnetica (tablet) hanno dato all'utente la possibilita' di comunicare con l'elaboratore facendo un uso minimale della tastiera.

Sviluppo del software grafico

1977: specifica del primo sistema grafico tridimensionale (CORE Graphic System)

1985: primo pacchetto grafico ufficialmente standardizzato per grafica 2D (GKS Graphical Kernel System)

1988: standard grafico tridimensionale PHIGS (Programmer's Hierarchical Interactive Graphics System)

Standard industriale Open GL (Graphic Library) della Sylicon Graphics.

Applicazioni della Computer Graphics

Quattro aree principali:

1. Visualizzazione di informazioni

Importanza della comunicazione visuale rispetto al linguaggio parlato o scritto.
Esempi: cartografia, dati statistici

Visualizzazione di dati medici prodotti da apparecchiature quali tomografia computerizzata (CT), immagini per risonanza magnetica (MRI), tomografia a ultrasuoni e ad emissione di positroni (PET).

Visualizzazione scientifica: strumenti visuali per aiutare interpretazione di dati generati da simulazione mediante elaboratore di fenomeni fisici.
Esempi: fluido dinamica, biologia molecolare, matematica

2. Progettazione

Uso di strumenti grafici interattivi nella progettazione assistita da calcolatore (CAD).

Progettazione di circuiti (VLSI -CAD)

3. Simulazione

Nasce dalla capacita' degli odierni sistemi grafici di generare immagini sofisticate in tempo reale.
Esempi:

4. Interfacce utente

Interazione con l'elaboratore dominata da un paradigma visuale che include finestre, menu', icone e un dispositivo di input (mouse).

Esempi: X Window, Microsoft Windows, Macintosh OS, Netscape

Un sistema grafico

Cinque componenti principali: Schema generale:

Immagine viene convertita in matrice (o raster) di pixel.

Pixel sono codificati nel frame buffer, area di memoria in genere implementata con chip di memoria speciali (Video Random-Access Memory, VRAM, o Dynamic Random-Access Memory, DRAM).

Contenuto del frame buffer (= rappresentazione in memoria dell'array di pixel) detto pixmap (pixel map) o bitmap.

Dimensioni del frame buffer in x,y corrispondono a larghezza ed altezza della finestra.

In genere il frame buffer e' composto da piu' buffer, fra cui

Processore

Processore nel sistema grafico svolge normale elaborazione + elaborazione grafica.

Funzione grafica principale:

Conversione di primitive geometriche in assegnazioni ai pixel e' detta rasterizzazione o scan conversion.

Alcuni sistemi grafici hanno hardware specializzato per specifiche funzioni grafiche.

Dispositivi di output

Display a raggi catodici (CRT).

I pixel del frame buffer nel sistema grafico sono visualizzati come punti sulla superficie del display.

Velocita' con cui il contenuto del frame buffer e' trasferito nel display = refresh rate.

Due metodi fondamentali con cui i pixel sono visualizzati sul CRT:

Oltre agli schermi CRT, vi sono schermi a cristalli liquidi (LED) usati nei computer portatili.

Dispositivi di input

In genere tastiera + almeno un altro dispositivo di input (mouse, joystick, penna, tavoletta magnetica).

Un paradigma per creare immagini e una architettura per implementare tale paradigma

Due entita' fondamentali alla base del processo di formazione delle immagini: Oggetti in computer graphics: specificati attraverso le posizioni di primitive geometriche quali punti, linee e poligoni (in genere un insieme finito di posizioni spaziali, dette vertici, sono sufficienti).

E' necessario un processo per la formazione di immagini a partire da oggetti: l'osservatore forma l'immagine degli oggetti.

Sorgenti luminose: senza sorgenti luminose, gli oggetti sarebbero bui e non ci sarebbe alcunche' di visibile nell'immagine.

Luce = forma di radiazione elettromagnetica che rientra nello spettro visibile (= lunghezza d'onda fra 350 e 780 nanometri).

Si usano leggi dell'ottica geometrica in cui

Si considerano sorgenti puntuali: emette energia da una singola locazione in modo eguale in tutte le direzioni.

In generale luce monocromatica = sorgente di una unica frequenza.

Processo di formazione dell'immagine

Secondo un paradigma che separa due stadi:

Modellazione: progettazione e posizionamento degli oggetti nella scena + aggiunta di specifiche di materiale, luci, ecc. per immagini di alta qualita'.

Interfaccia: file prodotto dal modellatore contenente geometria della scena e altre informazioni (sorgenti luminose, posizione dell'osservatore, proprieta' dei materiali)

Indipendenza fra parte di modeling e parte di rendering.

Architettura a pipeline

Quattro fasi fondamentali nel processo di creazione di un'immagine:

Trasformazioni

Una parte determinante del processo di visualizzazione e' la conversione di rappresentazioni da un sistema di coordinate ad un altro.

Ad esempio, dal sistema in cui gli oggetti sono definiti ad un sistema di coordinate della macchina fotografica.

Clipping

"Taglio" dalla scena delle parti che non sono "inquadrate", in quanto non e' possibile vedere l'intero mondo contemporaneamente (es. macchina fotografica).

Proiezione

Oggetti 3D sono mantenuti in tre dimensioni passando attraverso il pipeline. A questo punto devono essere proiettati in oggetti 2D.

Rasterizzazione

Oggetti proiettati devono essere rappresentati come pixel nel frame buffer. Da qui la necessita' di convertire in insiemi di pixel primitive quali segmenti di linea e poligoni.