Issuu on Google+

Corso di Informatica Grafica

UniversitĂ  Degli Studi di Palermo FacoltĂ  di Ingegneria Edile Corso di Informatica Grafica Anno Accademico 2004/2005


Corso di Informatica Grafica 

Ing. Marco Palermo –

palermo@csai.unipa.it

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Corso di Informatica Grafica 

Libro di Testo adottato –



J.D.Foley, A.van Dam, S.K.Feiner, J.F.Hughes – Computer Graphics: Principles and Pratice second edition in C – Addison Wesley Dispense fornite dal docente

Libro 3D Studio Max –

La Grande Guida a 3D Studio Max – E-Book

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Parte I Introduzione 1. 2. 3. 4. 5.

Storia Discipline Grafiche Computer Graphics Image Processing Ambiti di applicazione


Storia  

La Computer Graphics nasce con i primi computer negli anni 50 Sino agli anni 80 resta una disciplina limitata ad un numero ristretto di studiosi a causa – –





Costi elevati di dispositivi hardware Mancanza di strumenti software

L’introduzione di calcolatori basati su grafica Raster (Apple e IBM) hanno reso accessibile la computer graphics ad un numero elevato di utenti Ai giorni d’oggi ogni applicazione software fa un uso intenso di grafica Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Discipline Grafiche 

Le discipline che si occupano di grafica nel mondo dei computer sono due – –

Computer Graphics Image Processing

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Computer Graphics 

La Computer Graphics è la disciplina che studia la rappresentazione pittorica sintetica di modelli reali o immaginari basandosi sulla loro rappresentazione numerica

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Image Processing 

L’Image Processing è la disciplina che analizza le scene reali a partire dalla loro immagine e ricostruisce il modello numerico –

Image enhancement 

Pattern detection 

Insieme delle tecniche che consentono il miglioramento della qualità dell’immagine con metodi numerici (rumore, contrasto) Ricerca di strutture in una immagine al fine di svolgere compiti di sorveglianza, riconoscimento e ispezione di manufatti alla ricerca di guasti

Computer Vision 

Ricostruzione di modelli e scene tridimensionali a partire da una serie di immagini bidimensionali della stessa scene Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Ambiti di applicazione della CG 

Interfacce utente –



Computer Aided Design (CAD) –



Prototipi virtuali (modelli in scala per collaudi, …) Medical imaging (TAC, risonanza magnetica, …)

Intrattenimento – –



Progetto di componenti e sistemi di vario tipo (Meccanici, edili, …)

Visualizzazione scientifica –



PC Desktop

Cinema Videogiochi

Realtà virtuale Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Parte II Hardware Grafico 1. 2. 3. 4. 5. 6.

Dispositivi di input e output Monitor CRT Monitor TFT Stampanti Laser Video Controller Grafica Vettoriale e Raster


Dispositivi di input e output  

L’interazione uomo-macchina richiede dei dispositivi per la visualizzazione e il controllo delle applicazioni Dispositivi di output – – –



Monitor CRT (monocromatico e a colori) Monitor TFT Stampanti

Dispositivi di input –

Mouse

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Monitor CRT monocromatico 

I Monitor CRT per la visualizzazione grafica sono basati su un Tubo a Raggi Catodici – –

Ad un estremo di un tubo a vuoto è posizionato un cannone elettronico (catodo) che emette dei fasci di elettroni Il fascio viene accelerato dalla presenza di una forte carica positiva posizionata sullo schermo posto dall’altra parte del tubo (anodo) e può essere regolato in intensità dal voltaggio di una griglia di controllo Lo schermo è ricoperto da uno strato di fosforo (materiale elettoluminescente) che emette luce quando è caricato elettricamente Il fascio colpisce lo schermo circa 60-70 volte al secondo (frequenza di refresh), la parte colpita si illumina per un intervallo di tempo (10-60 ms)

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Monitor CRT a colori

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Monitor TFT 

I Monitor TFT (Thin Film Transistor) sono basati sulla proprietà dei cristalli liquidi di allinearsi in una direzione dipendente da un campo elettrico nel quale sono immersi –

– –

Sono caratterizzati dalla presenza di una matrice di tre transistor per pixel Ogni transistor regola l’intensità di luce per ogni pixel La sorgente di luce è una sorgente luminosa fluorescente posta sul fondo dello schermo

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Monitor TFT a colori

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Stampanti Laser 



Il principio teorico di costruzione dell’immagine su di una stampante laser è il medesimo di uno schermo CRT a colori Funzionamento: – – – –

Un raggio laser scandisce per righe successive un tamburo e ne carica elettricamente solo i punti da stampare Un foglio di carta passa vicino ad un filo percorso da corrente caricandosi elettrostaticamente Il tamburo pesca toner da una vaschetta che si fissa sul foglio solo nei punti caricati dal raggio laser Il tamburo viene scaricato mente il foglio viene riscaldato e pressato per fondere il toner Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Altri dispositivi di I/O 

Dispositivi di output – –



Stampanti ad aghi Stampanti a getto di inchiostro

Dispositivi di input – – –

Mouse meccanico Mouse ottico Tavoletta grafica

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Il Video Controller   

Il dispositivo hardware responsabile di guidare il fascio di elettroni è il video controller Il suo compito è quello di trasformare informazioni grafiche digitali in impulsi elettrici analogici Può essere di due tipi – –

Vettoriale Raster

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Grafica Vettoriale 

 

Le linee sono rappresentate geometricamente da punto iniziale e finale che vengono tradotti in comandi per la tensione elettrica di deflessione del fascio elettronico. La scena è descritta come sequenze di spostamenti del "pennino" e tracciamenti di linee. Problemi di refresh –



necessità di limitare il numero dei componenti e di ripeterli per mantenere la visibilità sullo schermo.

Soluzione –

Si utilizzano Terminali grafici DVST (Direct View Storage Tube) che sono come i CRT classici, ma i fosfori si trovano all'interno di elementi analogici di memoria che li mantengono accesi per un certo tempo.

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Grafica Vettoriale – Esempio

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Grafica Raster 

  

Si considera lo schermo del monitor come suddiviso in aree elementari d’informazione pittorica che sono dette pixel (picture element) Ad ogni pixel è associata una cella di una matrice bidimensionale: il frame buffer (o refresh buffer) Le immagini sono composte come insiemi di pixel Problemi di trasformazione –

Le immagini devono essere trasformate in combinazioni di primitive geometriche prima di essere disegnate a video Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Grafica Raster – Esempio

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Differenza Vettoriale – Raster

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Differenza Vettoriale – Raster Vettoriale

Raster

Alto

Basso

Qualità

Ottima

Buona

Occupazione in memoria Performance

Minima

Alta

Alta

Bassa

Costo Hardware

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Parte II Colorimetria 1. 2. 3. 4.

Luce acromatica Mezze tinte Luce colorata Modelli di colore


Luce acromatica   

La luce acromatica è quella che viene emessa da un normale televisore in bianco e nero La “quantità di luce” è l’unico attributo di questo tipo di luce (luminanza) Problematiche di implementazione –

L’occhio umano percepisce in maniera non lineare gli intervalli di luminanza Impossibile ottenere il “nero puro” in un monitor per la presenza dei fosfori (impossibili da spegnere completamente) Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Luce acromatica  

La minima intensità luminosa ottenibile su uno schermo CRT varia da 1/200 a 1/40 dell’intensità massima 1.0 Il rapporto tra intensità massima e minima è chiamato Dynamic Range

Dynamic Range

Numero livelli

50-200

400-530

Fotografie

100

465

Diapositive

1000

700

50

400

Monitor CRT

Carta a colori

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Mezze tinte 







Le mezze tinte sono usate per riprodurre più livelli di intensità in dispositivi che siano intrinsecamente bilivello (o a pochi livelli). Sono particolarmente utilizzate per le riproduzioni a stampa. Il processo si estende facilmente anche alla stampa di immagini a colori, assumendo che ogni elemento pittorico dell’immagine stampata sia ottenuto sovrapponendo puntini colorati secondo i tre colori di riferimento. Si parla di “risoluzione di stampa” intendendo il numero di puntini che vengono stampati lungo una unità di misura lineare prescelta (di solito pollici, ma anche mm o cm). Per elevati "punti per pollice" (dot per inch - dpi) si ottiene l'effetto di variazione continua: i pattern vicini vengono confusi. – –

Giornali 60-80 dpi Libri 300-600 (o sup.) dpi

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Matrici di dithering 

Nei monitor bilivello (bianco e nero) le mezze tinte si implementano approssimando i pattern di dimensione variabile con con una distribuzione di pixel accesi in un piccolo vicinato. Questa tecnica prende il nome di dithering.

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


La luce colorata 

Per descrivere la luce colorata sono solitamente impiegati tre parametri – –

Tinta (Hue) che distingue i colori Saturazione (Saturation) che indica la distanza tra il colore e il relativo livello di grigio Luminosità (Lightness) che indica il livello di intensità di luce

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Percezione dell’occhio umano 

L’occhio umano percepisce la luce colorata grazie a due differenti tipi di cellule –

Bastoncelli – fotorecettori sensibili alle variazioni di luce Coni – contengono composti chimici (fotopigmenti) di tre tipi (rossi, verdi e blu) la cui attivazione dipende dalla frequenza d’onda della luce che li colpisce

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Effetti ottici 

L’occhio umano è solo un sensore, è il cervello che elabora l’informazione visiva e la trasforma in immagine

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Modelli di colore – RYB 

Modello RYB – – – –

Formato dai tre colori primari (Rosso, Giallo e Blu) Il bianco viene rappresentato come assenza di colore Impossibile creare il nero, si ottiene al massimo un marrone Impossibile ottenere tonalità intense di viola, magenta e azzurro

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Modelli di colore – CYM/CYMK 

Modello CYM/CYMK – – – –

Formato dai tre pigmenti (sostanze sottrattive) primari (Azzurro, Giallo e Magenta) Il bianco viene rappresentato come assenza di colore Difficile trovare nel mondo reale questi innaturali colori intensi L’elemento K (Nero) viene usato esclusivamente nella stampa

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Modelli di colore – ROYGBIV 

Modello ROYGBIV – – –

Quando la luce bianca si rifrange attraverso un prisma, i suoi componenti colorati si separano a formare un arcobaleno. Questo arcobaleno è lo spettro relativo alla luce bianca e alla gamma di colori percepibili dall’uomo. Formato dai colori dell’arcobaleno (Rosso, Arancione, Giallo, Verde, Blu, Indaco e Violetto)

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Modelli di colore – RGB 

Modello RGB – – –

Ricavato dai colori primari del modello ROYGBIV (Rosso, Verde e Blu) Il nero viene rappresentato come l’assenza di colore Il bianco viene rappresentato come la presenza dei tre colori

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Modelli di colore – HSV 

Modello HSV – – – –

Formato dalle tre proprietà dei colori (Tonalità, Saturazione e Valore) Quando si parla del colore di un oggetto, si intende la tonalità. La saturazione definisce in quale proporzione un colore è mescolato con altri. Ogni tonalità varia da molto scura a molto chiara a secondo di un dato valore.

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Differenze tra CYM e RGB    

 

La luce e i pigmenti sono elementi opposti ma complementari. I colori primari di un modello rappresentano i colori complementari dell’altro. Il modello RGB emette luce; il modello CYM la riflette. Il pigmento di un oggetto non può essere visto se la luce non lo colpisce, mentre la luce colorata, per essere percepita, necessita di una superficie opaca da colpire. Se si mescolano tutti i colori della luce si ottiene il bianco, mentre se si mescolano tutti i colori pigmento si ottiene il nero. Il modello RGB mescola i colori aggiungendoli, il modello CYM sottraendoli.

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Parte III Algoritmi Raster 2D 1. 2. 3. 4.

Algoritmi di Drawing Algoritmi di Filling Algoritmi di Clipping Aliasing e Antialiasing


Algoritmi per la Grafica 2D 





Utilizzare grafica raster 2D comporta la necessità di utilizzare degli algoritmi che consentono il passaggio da una geometria descrittiva ad una distribuzione di punti colorati L’obiettivo di un algoritmo consiste nell’effettuare una trasformazione effettuando il minor numero possibile di calcoli Le righe di pixel che compongono una immagine vengono chiamate scan-line, di conseguenza, gli algoritmi si dicono anche di scan-conversion Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Tipi di Algoritmi utilizzati 

Drawing –



Filling –



Riempimento delle forme geometriche disegnate

Clipping –



Disegno di primitive geometriche

Individuazione di porzioni da visualizzare

Antialiasing –

Ammorbidimento delle primitive disegnate Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmi di Drawing 



L’obiettivo di un algoritmo di drawing è quello di determinare quali pixel si devono accendere per rappresentare una primitiva grafica sullo schermo L’implementazione di questi algoritmi è di solito di tipo incrementale –

ad ogni passo il calcolo per decidere se accendere un pixel in una data posizione dipende solo dal valore calcolato al passo precedente non c’è memoria di quanto è stato già tracciato dall’inizio

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Tracciamento di linee 



L’algoritmo deve calcolare le coordinate dei pixel che giacciono sulla linea ideale o che sono più vicino possibile ad essa L’algoritmo usa una metodologia incrementale per minimizzare il numero di calcoli

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Tracciamento di linee

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Tracciamento di linee 

Rasterizzazione di una retta y=mx+B con m<=1 1.

Partire dal pixel con coordinata x minima 1. 2. 3.



Notando che: – –



Incrementare x al passo 1 Per ogni xi calcolare yi come mxi + B Arrotondare quindi yi

yi+1 = mxi+1+B = m(xi+Dx)+B = yi+mDx Con Dx = 1 si ha yi+1 = yi+m

Quindi si ottengono i punti in maniera incrementale – –

xi+1 = xi + 1 yi+1 = yi + m Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo Midpoint

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo Midpoint  



L’obiettivo è quello di cercare di usare soltanto operazioni in aritmetica intera Si sceglie come prossimo pixel dell’iterazione quello che minimizza la distanza dal punto in cui la linea interseca la colonna esaminata Trovato il punto di mezzo M tra i due possibili pixel E-NE, si sceglie quello che sta dalla stessa parte di Q rispetto a M Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo Midpoint  



I candidati, ad ogni passo sono solo i due pixel E(xp+1,yp) ovvero NE(xp+1, yp+1). Si valuterà il passaggio della retta, espressa in forma implicita F(x,y)=ax+by+c=0, per il punto medio M(xp+1,yp+1/2). Quindi ad ogni passo si seguirà la seguente procedura: –

Se F(M)>0 // la retta passa sopra M Accendi NE Altrimenti // F(M)<=0 cioè la retta passa per M o al di sotto Accendi E Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Tracciamento di circonferenze  

 

Il tracciamento delle circonferenze sfrutta la simmetria di queste primitive geometriche. Si applicherà l’algoritmo di tracciamento al più per un quadrante e gli altri punti si otterranno per riflessione, rispetto al centro della primitiva. F(x,y) = x2 + y2 − R2 = 0 si danno incrementi a x nell’intervallo [0,R] e si calcola y con l’impiego di potenze e radici quadrate; si ottengono dei "buchi" via via che x si avvicina ad R.

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo Midpoint per circonferenze

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo Midpoint per circonferenze 



Lâ&#x20AC;&#x2122;algoritmo di Midpoint per le circonferenze sfrutta la simmetria ottantale, quindi lo si applicherĂ  solamente al II ottante Ottenuto un punto si calcoleranno i suoi sette simmetrici.

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo Midpoint per circonferenze

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo Midpoint per circonferenze 

  

Partendo dal punto di valutazione della circonferenza P=(xP,yP) si sceglie il successivo pixel da accendere sulla base dell'analisi del punto medio (xP + 1, yP - 1/2) tra i pixel E ed SE di P. La variabile di decisione sarà definita come l’equazione implicita della circonferenza valutata in M d = F(xm,ym) = (xp+1)2 + (yp-1/2)2 – R2 Quindi ad ogni passo si seguirà la seguente procedura: –

Se F(M)>=0 // M giace o è esterno alla circonferenza Accendi SE Altrimenti // F(M)<0 cioè M è interno alla circonferenza Accendi E

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmi di Filling 

Il filling (riempimento) di una primitiva geometrica è un problema di fondamentale importanza per la grafica bidimensionale. Possono pensarsi come problemi di riempimento: – – – – –

la coloritura delle figure geometriche la decorazione di una forma piana con un motivo o trama ripetititva il tracciamento di primitive geometriche di spessore non unitario il tracciamento di linee con stile variabile (tratto, tratto e punto e così via) il disegno grafico di caratteri di stampa Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmi di Filling 

Regole di riempimento – –

I punti di bordo di un poligono dovranno essere sempre rigorosamente interni all’area ideale del poligono stesso. Si devono stabilire delle regole di appartenenza di un lato ad un poligono per poter stabilire con certezza secondo quale stile di riempimento deve essere tracciato un lato condiviso. Poiché il riempimento va effettuato per linee di scansione si deve individuare una regola per sapere se si è all’interno o all’esterno di un poligono per sapere se si deve procedere al riempimento (accensione dei pixel lungo la linea) oppure no. La regola precedente deve comprendere come caso particolare il tracciamento dei lati orizzontali.

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmi di Filling

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


ET ed AET 

Queste due strutture dati sono utilizzate per tenere traccia di tutti i punti di intersezione per tutti gli spigoli dei poligoni di cui viene effettuata la scan-conversion â&#x20AC;&#x201C;

â&#x20AC;&#x201C;

Nella struttura dati Actice Edge Table si trovano gli estremi delle span che formano il poligono Nella struttura dati Edge Table si inseriscono tutti gli spigoli ordinati sulla y minima UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo scan-conversion 1. 2. 3.

Settare y al minimo y non vuoto della ET Inizializzare la AET Ripetere fino allo svuotamento di AET e ET 1. 2. 3. 4. 5.

Muovere dal bucket di ET al corrispondente di AET gli spigoli per cui ymin = y, quindi fare sorting su AET per x Disegnare i pixel della scan-line pescando coppie di coordinate x della AET Rimuovere dalla AET gli spigoli per cui ymax = y Incrementare y di 1 Per ogni spigolo non verticale nella AET aggiornare x per il nuovo y UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Primitive con spessore 

Esistono diversi modi per disegnare primitive con spessore –

Durante la scan-conversion si possono disegnare più pixel per riga o per colonna Utilizzare l’algoritmo originale tenendo conto che ad ogni coppia di coordinate viene associata, ad esempio, una maschera rettangolare

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Clipping 



Il clipping può definirsi come il problema di troncare una primitiva geometrica rispetto alla sua intersezione con un’altra primitiva geometrica Algoritmi per il Clipping 2D – –

Algoritmo di Cohen-Sutherland Algoritmo di Sutherland-Hodgman

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo di Cohen-Sutherland 



Si basa sull’uso di un test per effettuare l’accettazione o la reiezione delle linee che siano interamente visibili o interamente invisibili Il piano viene diviso in 9 regioni dalle 4 rette che la delimitano – –

La zona centrale è quella visibile Ogni zona è contraddistinta da un codice a 4 bit Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo di Cohen-Sutherland

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo di Cohen-Sutherland 

Si valutano i codici degli estremi – – –

Entrambi nulli => Linea interamente visibile (AB) AND diverso da 0000 => Linea interamente invisibile (CD) Altrimenti (EF e IL) si cerca quale dei due punti giace fuori dal rettangolo, si suddivide il segmento in due parti di cui una può essere scartata, calcolando l’intersezione del segmento con una delle 4 rette che delimitano il rettangolo (quella che corrisponde ad uno dei bit 1 del punto) Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo di Sutherland-Hodgman 

L’idea è di applicare una strategia del tipo divide et impera –

 

il problema viene ricondotto a quello di calcolare il clipping di un poligono rispetto ad una qualsiasi retta

L’algoritmo riceve in ingresso una serie di vertici che definiscono gli spigoli del poligono Dopo aver fatto il clipping su una retta ritorna in output un’altra serie di vertici che vengono ripassati come input Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Algoritmo di Sutherland-Hodgman

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Aliasing 

Problema: –



Conseguenza: –



Ogni pixel dello schermo può essere illuminato con il colore della primitiva o è spento Il disegno di una immagine presenta delle seghettature

A questo fenomeno si da il nome di aliasing

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Risoluzione dell’Aliasing 

Due metodi per ridurre l’aliasing 1. 2.

Aumentare la risoluzione dello schermo Inserire uno spessore fittizio

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Risoluzione dell’Aliasing  

Soluzione 1 Viene aumentata la risoluzione dello schermo – – – –

I pixel sono più piccoli Serve una memoria maggiore Problema dell’aliasing risolto in parte Tempo di applicazione dell’algoritmo relativamente veloce Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Antialiasing  



Soluzione 2 Inserire uno spessore fittizio che fa accendere i pixel circostanti con una intensità variabile rispetto all’area occupata dallo spessore stesso L’ultima soluzione proposta prende il nome di Antialiasing e segue le seguenti regole – – –

L’intensità del pixel intersecato diminuisce all’aumentare della distanza tra il pixel e la linea La linea non influenza il pixel se non interseca il tassello corrispondente Ad aree uguali corrispondono intensità uguali

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Antialiasing

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Parte IV Elementi di geometria 1. 2. 3. 4.

Trasformazioni 2D Coordinate omogenee Trasformazioni composte Trasformazioni 3D


Elementi di geometria 

Per definire una qualunque primitiva geometrica si hanno a disposizione tre entità elementari – – –

Scalari Punti Vettori

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Trasformazioni geometriche 2D 

Trasformazioni geometriche di base – – –



Traslazioni Scalature Rotazioni

Trasformazioni geometriche non standard – –

Riflessione rispetto ad un asse o ad un punto Deformazione

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Traslazione 





La traslazione è la trasformazione per cui un punto P(x,y) nel piano viene spostato in un nuovo punto P(x’,y’) lungo un segmento rettilineo definito dai due scostamenti (dx,dy) dell’ascissa e dell’ordinata Forma analitica della traslazione – x’ = x + dx – y’ = y + dy Forma matriciale della traslazione – P’ = P + T 

dove P = [x y]T e T = [dx dy]T

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Scalatura  

La scalatura è la trasformazione che ridefinisce le coordinate di P moltiplicandole per dei valori costanti Forma analitica della scalatura – –



x’ = sx * x y’ = sy * y

Forma matriciale della scalatura –



Se sx è uguale a sy si parla di scalatura uniforme, altrimenti di scalatura non uniforme Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Scalatura

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Rotazione 



La rotazione è la trasformazione che applicata ad un punto nel piano lo fa ruotare rigidamente attorno all’origine degli assi Forma analitica della rotazione –



Forma matriciale della rotazione – Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Rotazione

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Coordinate omogenee 



Le coordinate omogenee consentono di rappresentare formalmente le tre trasformazioni nello stesso modo Un punto P(x,y) del piano in coordinate omogenee viene fatto corrispondere ad una retta 3D passante per lâ&#x20AC;&#x2122;origine degli assi di un sistema di coordinate OXTW di cui il piano OXY costituisce il piano coordinato per W=0 UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Coordinate omogenee 



Quindi, in coordinate omogenee, un punto P(x,y) del piano viene rappresentato dalla tripla (x,y,w) Se w è diverso da 0 si può riportare la tripla nella forma canonica –



(x,y,w) => (x/w,y/w,1)

In particolare, se w = 1 –

(x,y,w) => (x,y,1) Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Traslazione in coordinate omogenee 

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Scalatura in coordinate omogenee 

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Rotazione in coordinate omogenee 

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Trasformazioni geometriche composte  

Ogni matrice di trasformazione è una matrice 3x3 premoltiplicata al vettore P Se al punto P si vogliono effettuare, nell’ordine, le trasformazioni T1, T2, T3 …. Tn bisogna creare la matrice di trasformazione T = Tn * … * T3 * T2 * T1 per otterene il punto P’ risultante secondo l’espessione P’ = T * P Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Casi particolari di composizioni 

Rotazione attorno ad un punto P 1. 2. 3.



Traslazione che porti P nell’origine Rotazione attorno all’origine Traslazione che porti l’origine in P

Scalatura attorno ad un punto P 1. 2. 3.

Traslazione che porti P nell’origine Scalatura attorno all’origine Traslazione che porti l’origine in P Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Trasformazione window to viewport 



Una delle trasformazioni piÚ comuni è quella da coordinate del mondo a coordinate del dispositivo di output Questa trasformazione si effettua definendo una porzione rettangolare del mondo (window dopo clipping) e mappandola su un rettangolo dello schermo (viewport)

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Trasformazione window to viewport 1. 2. 3. 

La window specificata dai due suoi vertici (sup dx e inf sx) è traslata nell’origine del sistema di coordinate La dimensione della window è scalata sino ad essere uguale alla dimensione della viewport La viewport è traslata per essere portata nella sua posizione finale nel dispositivo La matrice di trasformazione è la seguente

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Trasformazioni geometriche 3D 



L’estensione delle trasformazioni geometriche in coordinate omogenee al caso tridimensionale è immediata Il generico punto tridimensionale P(x,y,z) verrà fatto corrispondere al vettore colonna: P = [x y z 1]T e le matrici di trasformazione saranno di ordine 4

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Trasformazioni geometriche 3D

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Parte V Illuminazione e shading


L’illuminamento 



L’illuminamento è quel processo che simula la riflessione sulla superficie degli oggetti della luce proveniente da una distribuzione di sorgenti luminose nello spazio. Le sorgenti luminose possono essere – –



puntiformi (una lampada, il sole) di dimensioni finite (fari, spot)

I raggi luminosi che provengono dalle sorgenti luminose: – – –

subiscono riflessioni multiple tra gli oggetti possono essere in parte assorbiti incontrano superfici trasparenti che li trasmettono, filtrandoli.

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Modello di Phong 



Un modello di illuminazione può essere espresso in termini matematici da una equazione di illuminazione Le formule dellâ&#x20AC;&#x2122;equazione di illuminazione sono state elaborate da Phong e si riferiscono al caso monocromatico

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Modello di Phong 

I modelli presi in esame sono i seguenti – – –

Luce ambientale Riflessione diffusa Riflessione speculare

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Luce ambientale 

La luce ambientale è – –



una luce diffusa e non direzionale il prodotto del riflesso della luce sulle molteplici superfici presenti nell’ambiente

L’equazione di illuminazione della luce ambientale è data da –

I = Ia ka  



Ia rappresenta l’intensità della luce ambientale ka (compreso nell’intervallo [0,1[) rappresenta il coefficiente di riflessione da parte della superficie dell’oggetto

Gli oggetti risultano uniformemente illuminati su tutta la loro superfice Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Riflessione diffusa  



La riflessione diffusa è dipendente solo dall’orientamento locale della superficie rispetto alla direzione di illuminazione. Poiché non c’è dipendenza dalla posizione dell’osservatore, allora una superficie che rifletta solo in maniera diffusa (superficie lambertiana) appare egualmente brillante da tutte le direzioni di osservazione (es. la gomma). L’equazione di illuminazione della riflessione diffusa (o legge di Lambert) è data da –

I = Ip kd cosθ   

Ip rappresenta l’intensità della sorgente luminosa kd (compreso nell’intervallo [0,1[) rappresenta il coefficiente di riflessione diffusa del materiale θ (compreso tra 0°e 90°) rappresenta l’angolo formato dalla direzione del raggio luminoso e la normale alla superficie nell’angolo di incidenza Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Riflessione diffusa

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Riflessione diffusa 

Riflessione puramente diffusa al crescere del coefficiente di riflessione kd



Aggiunta della luce ambientale

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Riflessione diffusa 

Se N e L sono normalizzati la legge di Lambert diviene –

I = Ip kd (N x L) 



L’energia radiante da una sorgente luminosa decresce con la distanza dalla sorgente stessa. –

I = fatt Ip kd (N x L) 



Dove con x si è indicato il prodotto scalare tra i vettori N e L

Dove con fatt si è indicato il fattore di attenuazione che solitamente ha la forma: min(1/(c1 + c2 d + c3 d2) , 1)

Se la sorgente luminosa è posta a distanza infinita l’angolo tra i raggi di luce e tutti le superfici parallele è costante. In questo caso la sorgente luminosa si dice direzionale e la L è una costante della sorgente

Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Riflessione diffusa 

Esempio di illuminazione ambientale e diffusa, con fattore di attenuazione crescente

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Riflessione speculare 

 

La luce, in un materiale totalmente lucido, viene riflessa solo nella direzione di riflessione (simmetrico del raggio luminoso rispetto alla normale alla superficie nell’angolo di incidenza) La componente speculare crea l’effetto di una macchia luminosa che si sposta con l’osservatore L’equazione di illuminazione della riflessione speculare è data da –

I = fatt Ip ks cosnα = (normalizzando) = fatt Ip ks (R x V)n    

Ip rappresenta l’intensità della sorgente luminosa ks (compreso nell’intervallo [0,1[) rappresenta il coefficiente di riflessione speculare del materiale α (compreso tra 0°e 90°) rappresenta l’angolo formato dalla direzione di riflessione e la direzione di osservazione n rappresenta l’esponente di riflessione speculare proprio del materiale Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Riflessione speculare

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Riflessione speculare 

Riflessione speculare (n crescente da sx a dx, ks dallâ&#x20AC;&#x2122;alto al basso)

UniversitĂ  degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


Modello di Phong finale 

L’equazione di illuminazione diviene –



Con i vettori normalizzati –



I = Ia ka + fatt Ip (kd cosθ + ks cosnα) I = Iaka+min(1/(c1+c2d+c3d2),1) Ip (kd(NxL)+ks(RxV)n)

Proprietà del modello di Phong – – – –

le sorgenti luminose sono puntiformi le componenti speculare e diffusiva sono modellate solo in modo locale il colore della riflessione speculare si assume indipendente dalle caratteristiche del materiale la componente ambientale viene modellata come una costante Università degli Studi di Palermo - Corso di Informatica Grafica A.A. 2004/05 Docente Ing.Marco Palermo


corso informatica grafica