Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.

Slides:



Advertisements
Presentazioni simili
MATLAB.
Advertisements

GEOMETRIA EUCLIDEA PROF. CASALINO MARIA.
MATLAB.
MATLAB.
MATLAB.
Elettrostatica 3 23 maggio 2011
programmazione lineare: un esempio
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Laboratorio di Linguaggi lezione IV: tipi definiti dallutente Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 prove.
Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Laboratorio di Linguaggi lezione IX Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 prove generali.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Laboratorio di Linguaggi lezione III Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Costruzione di Interfacce Lezione 4 Nozioni di geometria per la grafica
Costruzione di Interfacce Lezione 4 Geometria per la grafica
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
M a r c o T a r i n i C o m p u t e r G r a p h i c s / 0 6 U n i v e r s i t à d e l l I n s u b r i a - 1/40 Esercizio Rasterizzazione (risultato.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Laboratorio di Linguaggi lezione IV Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
Laboratorio di Linguaggi lezione IX: Dentro le Librerie Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Lezione 7: rasterizzazione la fabbrica dei frammenti Università dellInsubria Facoltà di Scienze MFN - Varese Corso di Laurea.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Laboratorio di Linguaggi lezione V: puntatori (1/3) Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Laboratorio di Linguaggi lezione III Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Laboratorio di Linguaggi lezione IX: tipi ricorsivi Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in Informatica Anno Accademico 2007/08.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
MATLAB.
LA SCOMPOSIZIONE DI UN VETTORE
Modelli e Algoritmi per la Logistica
Composizione di vettori
Daniele Santamaria – Marco Ventura
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Prof. Cerulli – Dott.ssa Gentili
Laboratorio di Linguaggi lezione VII: variabili Globali e Locali Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali.
Prof. Cerulli – Dott.ssa Gentili
Prof. Cerulli – Dott.ssa Gentili
Texturing - Tessiture Daniele Marini.
1 Scan conversione di poligoni Daniele Marini. 2 Test interno-esterno Scan conversione di un poligono = decidere se pixel interno Test di intersezione:
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Il Triangolo.
Sottospazi vettoriali
Complessità degli algoritmi (cenni) CORDA – Informatica A. Ferrari.
PROIEZIONI ORTOGONALI
Computer Graphics Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Computer Graphics Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Sistemi Multimediali II Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
GEOMETRIA PIANA: ASSIOMI E POSTULATI
Prof. Cerulli – Dott. Carrabs
Transcript della presentazione:

Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione 8: attributi per vertice asdad asdsad fadf asdf asdf asdf asd asdfasdf asd fasdf asdasdf asd asdf asd asdad asdsad fadf asdf asdf asdf asd asdfasdf asd fasdf asdasdf asd asdf asd asdad asdsad fadf asdf asdf asdf asd asdfasdf asd fasdf asdasdf asd asdf asd

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Preambolo: Le coordinate baricentriche

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Cosa è un segmento? V1V1 V2V2 con o o

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Cosa è un segmento? V1V1 V2V2 posso definirlo cosi': un segmento di vertici v 1 e v 2 é l'insieme di tutti i punti x esprimibili come x = a v 1 + b v 2 a e b scalari positivi con a + b = v v v v v v 2 1 v v v v v v 2 x è una interpolazione di v1 e v2

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Parentesi notazione V1V1 V2V2 x = a v 1 + b v 2 a e b scalari positivi con a + b = 1 x interpolazione: V1V1 V2V2 x = a v 1 + b v 2 a e b scalari positivi con a + b = 1 x estrapolazione: (quindi 0 a 1 e 0 b 1 )

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Cosa è un triangolo? V1V1 V2V2 con o o V3V3 é l'insieme di tutti i punti x tali che...

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Cosa è un triangolo? V1V1 V2V2 V3V3 p q q = k 1 v 1 + k 2 v 2 k 1 + k 2 = 1 k 1,k 2 > 0 p = h 1 v 3 + h 2 q h 1 + h 2 = 1 h 1,h 2 > 0 esercizio: sostituiamo e...

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Cosa è un triangolo? V1V1 V2V2 V3V3 un triangolo di vertici v 1 v 2 v 3 é l'insieme di tutti i punti x esprimibili come x = a 1 v 1 + a 2 v 2 + a 3 v 3 a 1 a 2 a 3 scalari positivi a 1 + a 2 + a 3 = 1

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Per esempio... V1V1 V2V2 V3V3 0 v v v 3 0 v v v v v v 3 (il baricentro del triangolo) 0.5 v v v 3 (punto in mezzo al lato v 1 v 2 ) 0.65 v v v 3

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Ebbene... V1V1 V2V2 V3V3 dati a 1 a 2 a 3 scalari tali positivi con a 1 + a 2 + a 3 = 1 x = a 1 v 1 + a 2 v 2 + a 3 v 3 é un punto del triangolo

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Ma anche... V1V1 V2V2 V3V3 dato un punto p nel triangolo esistono unici a 1 a 2 a 3 tali che p = a 1 v 1 + a 2 v 2 + a 3 v 3 e a 1 a 2 a 3 sono positivi e a somma 1 diciamo che a 1 a 2 a 3 sono le coordinate baricentriche di p

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Le coordinate baricentriche Concetto F O N D A M E N T A L E V1V1 V2V2 V3V3 p p ha coordinate baricentriche (a 1 a 2 a 3 ) sse p = a 1 v 1 + a 2 v 2 + a 3 v 3

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a a 3 Kg a 2 Kg Le coordinate baricentriche Interpretazione fisica (storica) (buffa) V1V1 V2V2 V3V3 p ha coordinate baricentriche (a 1 a 2 a 3 ) sse é il baricentro di: p a 1 Kg

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Le coordinate baricentriche Interpretazione geometrica V1V1 V2V2 V3V3 p 1 1 p = v 1 + h ( v 2 -v 1 ) + k ( v 3 -v 1 ) h k

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Coordinate baricentriche: improtante proprietà V1V1 V2V2 V3V3 p f(p) f( v 1 ) f( v 2 ) f( v 3 ) trasformazione affine f p ha coord. baricentriche a,b,c nel triangolo v 1 v 2 v 3 f(p) ha coord. baricentriche a,b,c nel triangolo f(v 1 ) f(v 2 ) f(v 3 )

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Le coordinate baricentriche come rapporti fra aree Quali sono le coord baricentriche di un punto p? V1V1 V2V2 V3V3 p p = a 1 v 1 + a 2 v 2 + a 3 v 3 A2 A3 A1

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Preambolo: Le coordinate baricentriche

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Attributi nel pipeline Frammenti & attributi interpolati Vertici & loro attributi pixel finali (nello screen-buffer) Vertici proiett & attributi computati rasterizer triangoli computazioni per frammento set- up rasterizer segmenti set- up rasterizer punti set- up computazioni per vertice rasterizer triangoli set- up associamo degli attributi ai vertici che mandiamo es: colore RGB qui gli attributi possono subire varie compuatzioni ogni frammento avrà una valore interpolato degli attributi per vertice qui gli attributi vengono interpolati

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Attributi nella rasterizzazione Quindi il rasterizer deve fare DUE cose: 1 trovare i frammenti che compongono la primitiva e.g. i frammenti interni al triangolo 2 interpolare gli attributi per questi frammenti tramite le coordinate baricentriche Il rasterizer produce frammenti CON attributi associati

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Attributi nella rasterizzazione Idea: –lavoriamo su R 2 V1V1 V2V2 V3V3 p f(p) f( v 1 ) f( v 2 ) f( v 3 ) trasformazione affine f p ha coord. baricentriche a,b,c nel triangolo v 1 v 2 v 3 f(p) ha coord. baricentriche a,b,c nel triangolo f(v 1 ) f(v 2 ) f(v 3 ) NOTA: vero solo per le trasformazioni affini. E' solo una approssimazione per la distorsione prospettica

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Scan-line rasterizer & attributi Otteniamo gli attributi per frammento interpolando gli attributi per vertice lungo segmenti (linearmente) Equivalente ad usare le coordinate baricentriche del frammento come pesi

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Scan-line rasterizer & attributi Interpoliamo gli attributi: –linearmente sui bordi –e in ogni scanline, tra gli estremi dello span v0v0 v2v2 v1v1 p q f p interpolato fra a 2 e a 1 q interpolato fra a 0 e a 1 f interpolato fra p e q a2a2 a1a1 a0a0

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Scan-line rasterizer & attributi Lo stesso per tutti gli attributi v0v0 v2v2 v1v1 p q f a 2, b 2, c 2... a 1, b 1, c 1... a 0, b 0, c 0... Ottimaizzatione: si puo' calcolare incrementalme. vediamo come

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Scan-line rasterizer & attributi a2a2 a1a1 a0a0 Primo frammento prodotto: ha come attributo a 0 ogni volta che mi sposto 1 pixel a dx: aumento di una costante d x ogni volta che mi sposto 1 pixel in alto: aumento di una costante d y

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Scan-line rasterizer & attributi a2a2 a1a1 a0a0 Primo frammento prodotto: ha come attributo a 0 ogni volta che mi sposto 1 pixel a dx: aumento di una costante d x ogni volta che mi sposto 1 pixel in alto: aumento di una costante d y 9 d x + 8 d y = a 1 - a 0 8 passi 9 passi

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Scan-line rasterizer & attributi a2a2 a1a1 a0a0 Primo frammento prodotto: ha come attributo a 0 ogni volta che mi sposto 1 pixel a dx: aumento di una costante d x ogni volta che mi sposto 1 pixel in alto: aumento di una costante d y 9 d x + 8 d y = a 1 - a 0 11 passi 1 passo d x + 11 d y = a 2 - a 0 risolvo nella fase di SET-UP di quel triangolo

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a Edge functions e attributi Per i rastertizzatori basati su edge-functions: –useremo la regola delle aree: V1V1 V2V2 V3V3 p p = a 1 v 1 + a 2 v 2 + a 3 v 3 A2 A3 A1

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a il "diviso due" lo possimo ignorare. Tanto ci interessano solo i rapporti fra le aree Parentesi: area di un triangolo In R 3 posso calcolarla con il prodotto esterno A V1V1 V2V2 V3V3 d1d1 d2d2 A = | d 1 x d 2 | /2 = | (v 3 – v 1 ) x (v 2 – v 1 ) | /2 e nel caso particolare di R2 ? proviamo...

M a r c o T a r i n i C o m p u t e r G r a p h I c s / 0 7 U n i v e r s i t à d e l l I n s u b r i a FlashBack: Edge functions SI NO La funzione il cui segno ci dice in quale semipiano siamo n q v 0 =(x 0, y 0 ) v 1= (x 1, y 1 ) n = ( - ( y 1 -y 0 ), x 1 -x 0 ) p = (x 0, y 0 ) f(q) = nq - np v2v2 totale: l'edge function per un lato è la coord baricentrica ralativa al vertice opposto (dopo aver diviso per la somma delle 3 edge functions)