La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Texturing - Tessiture Daniele Marini. 2 Modellazione geometrica Per ottenere il realismo ricorrere a modelli geometrici complessi non è spesso la soluzione.

Presentazioni simili


Presentazione sul tema: "1 Texturing - Tessiture Daniele Marini. 2 Modellazione geometrica Per ottenere il realismo ricorrere a modelli geometrici complessi non è spesso la soluzione."— Transcript della presentazione:

1 1 Texturing - Tessiture Daniele Marini

2 2 Modellazione geometrica Per ottenere il realismo ricorrere a modelli geometrici complessi non è spesso la soluzione migliore Esempi –Nuvole –Erba –Terreno –Pelle Durand and Cutler

3 3 Il colore degli oggetti Abbiamo visto come calcolare il colore di un oggetto: –dobbiamo definire il modello di illuminazione locale, cioè assegnare i parametri che descrivono come il materiale riflette la luce (parametri che descrivono la riflettanza) –il modello è definito per primitive geometriche: tutte le variazioni delle caratteristiche superficiali devono essere modellate geometricamente

4 4 Texture mapping La tecnica usata per gestire variazioni di riflettanza è memorizzare la riflettanza come una funzione o una immagine e mapparla sulla superficie La funzione o immagine è detta texture map ed il processo di mappatura è detto texture mapping

5 5 Texture mapping Può essere classificato in base a differenti proprietà: –Dimensionalità della funzione di texture –Il tipo di corrispondenza tra punti della superficie e punti della texture map –Se la funzione di texture è procedurale o se è essenzialmente una tabella Il texture mapping non riguarda solo la definizione del colore

6 6 Modellare una arancia Sfera arancione –Troppo semplice Devo modellare lirregolarità della superficie –Quanti poligoni? Troppi Soluzione più efficiente: –prendere una fotografia digitale dellarancia –applicare limmagine alla superficie Texture mapping Sono soddisfatto??

7 7 Modellare una arancia La superficie è comunque ancora liscia –rendiamo localmente irregolare la geometria Bump mapping STRATEGIA: aggiungo dettagli non nella fase di modellazione ma in fase di rendering

8 8 Tipologie di mapping Texture Mapping –Utilizzo di un pattern per determinare il colore di un frammento. I pattern possono essere: Determinati da una procedura di generazione di texture Immagine digitalizzata Bump mapping –Simulazione di irregolarità geometriche superficiali attraverso la perturbazione delle normali –Richiede elaborazione su ciascun frammento

9 9 Tipologie di mapping Displacement mapping –Perturbazione della geometria Environment (reflection mapping) –Come immagine per il texture mapping uso una immagine dellambiente –Simulazione di superfici riflettenti, cerco di ottenere un effetto simile al ray-tracing –E un caso particolare di texture mapping

10 10 Texture Mapping modello geometrico applicazione della texture

11 11 Bump Mapping

12 12 Environment Mapping

13 13 Texture mapping 1D, 2D, 3D Texture mapping Il texture mapping, nella sua forma più usata (color mapping) consiste nellapplicare una immagine su una superficie

14 14 2D Texture mapping Tutte le strategie di mapping comportano mapping tra sistemi di riferimento: Coordinate di texture: utilizzate per identificare i punti sulla immagine da mappare Coordinate parametriche: utilizzate per modellizzare curve e superfici Coordinate object o world: dove avviene il mapping (concettualmente) Coordinate window: dove limmagine finale è prodotta

15 15 Texture mapping Gli elementi della texture map, sono detti texels o texture elements La texture map è una matrice 2D che immaginiamo descritta da una funzione continua T(s,t) –s, t sono le coordinate di texture (normalizzate in [0,1]) –T sono i valori RGB (ma potrebbero essere altro) 1 1

16 16 Come avviene il mapping? Definizione della funzione M che associa un punto della texture p T ad un punto della superficie delloggetto 3D p O Mapping del punto p O nella sua proiezione sullo schermo p S p T (s,t) p O (x,y,z) p S (x s,y s ) Texture map Superficie 3D Schermo M

17 17 Difficoltà Definizione di un mapping tra una superficie rettangolare (texture map) e una superficie arbitraria (es.: sfera) Assegnamo il colore nella fase di rendering....il mapping è tra coordinate window e coordinate texture: che effetto ha la proiezione prospettica?

18 18 Supponiamo di avere una superfice parametrica Dato il pixel dellimmagine che devo assegnare lo retroproietto sulla superficie, ottengo una patch quadrangolare Difficoltà

19 19 M-1M-1 Dai valori u,v della patch determino s,t Ottengo un quadrilatero Quale valore assegno al pixel? Difficoltà

20 20 Difficoltà Aliasing : texture periodica

21 21 Aliasing Oppure posso fare una media pesata dei texel adiacenti Ma dove sono finite le strisce??

22 22 Texture mapping Il mapping può essere diretto o inverso Mapping diretto: lalgoritmo opera in texture space. Ogni texel viene mappato in world coord. poi trasformato e proiettato

23 23 Mapping diretto Definiamo una funzione che associa un texel con un punto delloggetto, che a sua volta verrà mappato sul piano immagine s t (x,y,z) M Difetto: posso avere dei buchi o delle sovrapposizioni, non è usato

24 24 Mapping inverso In realtà ci servirebbe procedere in senso opposto: nel momento in cui assegnamo il colore al pixel dellimmagine finale vogliamo sapere quali sono i valori RGB da considerare La funzione di mapping deve quindi essere invertibile

25 25 Mapping inverso Il calcolo è eseguito in screen space. Per ogni pixel si calcola la pre-immagine del pixel individuando le sue coordinate (s,t)

26 26 Maglie poligonali : Definizione della texture nello spazio bidimensionale (s,t): coordinate di texture In fase di modellazione associare ad ogni vertice di ciascun triangolo (x i,y i,z i ) il corrispondente punto nello spazio (s,t) In fase di rendering associare ad ogni frammento generato allinterno di una faccia il colore del corrispondente punto nello spazio (s,t) Texture mapping

27 27 Texture rendering di maglie poligonali

28 28 Si può definire facilmente la funzione di mapping se ho la superficie descritta in forma parametrica Basta specificare una corrispondenza tra u,v e s,t (può essere lidentità con un fattore di normalizzazione) Texture mapping

29 29 Texture mapping lineare Mapping semplice ed invertibile Non tiene conto della curvatura della superficie descritta da u,v Va bene per mappare su un piano

30 30 Texture lineare Esempio: un cilindro di altezza h E se ho superfici complesse? r y x u=0u=0.5

31 31 Pipe-line di texturing Calcola posizione nello spazio mondo Usa una funzione di proiezione MAPPING Usa una funzione di corrispondenza Applica funzione di trasformazione dei valori Modifica valore di illuminazione (x,y,z) Es: proiezione ortografica (proiettare una slide) (u,v) in (0,1) Da (0,1) a es. (256x256), trova valore in array R,G,B Es. moltiplica R,G,B per 1.1 per evitare valori troppo scuri Applica modello illuminazione con terna R,G,B

32 32 Funzioni di corrispondenza Altre funzioni di corrispondenza possono essere: –Wrap, repeat, tile: limmagine viene ripetuta come una piastrella –Mirror: limmagine viene ripetuta riflettendola verticalmente o orizzontalmente –Clamp: i valori esterni a (0,1) sono forzati agli estremi, il bordo dellimmagine si prolunga su tutta la superficie –Border: i valori esterni a (0,1) sono resi con un colore proprio, va bene per decalcomanie

33 33 Funzioni di modifica Replace: rimpiazza i valori R,G,B della texture agli r,g,b del modello di illuminazione - chiamato anche glow texture Modulate: moltiplica r,g,b per R,G,B

34 34 Image texture Mappare una immagine es. 256 x 256 su una superficie piana; se la superficie proiettata supera o è inferiore alla risoluzione dellimmagine: –Magnification –Minification

35 35 Texture mapping in due fasi Si può applicare sia a superfici descritte da coordinate geometriche che parametriche Non richiede la conoscenza dellequazione parametrica della superficie Mapping della texture su una superficie intermedia semplice (sfera, cilindro, cubo) in modo che la corrispondenza superficie-texture sia immediata (S- mapping) Mapping della superficie intermedia sulloggetto finale (O- mapping)

36 36 Texture mapping in due fasi S-mappingO-mapping

37 37 Per la curvatura si segue un approccio a due passi: –Mappare su una sfera o un cilindro o un cubo - S mapping –Mappare la struttura ottenuta sulloggetto finale - O mapping Secondo passo:

38 38 Fase 1: mapping sferico u e v sono i parametri che descrivono la sfera unitaria, con u,v in [0,1]

39 39 Seconda fase Mapping verso loggetto reale. Tre possibili strategie: –Lungo le normali dalla forma intermedia alla finale –Lungo le normali dalla forma finale alla intermedia –Lungo i vettori dal centro della forma intermedia intermedia finale

40 40 Mapping cilindrico C. Weigle

41 41 Mapping sferico C. Weigle

42 42 Box mapping

43 43 Texture sampling Quando mappiamo le coordinate texture sullarray di texel difficilmente otteniamo un punto che corrisponde al centro di un texel Una possibilità è scegliere il texel più vicino (point sampling) Posso ottenere notevoli effetti di aliasing

44 44 Texture sampling Posso decidere di fare una media dei texel adiacenti con un filtraggio bilineare: Trovare i 4 vicini del texel (floor e ceiling di s e t) Interpolare i texel in un parametro (s) Interpolare il risultato nellaltro parametro (t) Usare il risultato per assegnare il colore al pixel

45 45 Aliasing Minification: un pixel corrisponde a molti texel. La texture viene campionata: posso avere un effetto di mancanza di dettagli Magnification: un texel corrisponde a molti pixel. La texture viene ingrandita sullimmagine

46 46 Texture aliasing Cosa succede se un pixel copre molti texel (minification)? Se uso il point sampling posso avere artefatti tipo seghettature e pattern nelle immagini statiche In animazione posso avere un effetto di migrazione della texture Il filtraggio bilineare va bene se non ho una minificazione eccessiva Dovrei considerare tutti i texel che vengono coperti dal pixel (area averaging, si fa la media dei pixel adiacenti) Per ridurre i tempi di calcolo della media uso delle strutture a piramide

47 47 Mipmapping Si calcola limmagine a bassa risoluzione, detta mipmap MIP-Multum in parvo (molte cose in poco spazio): occupa 4/3 della memoria delloriginale.

48 48 Mipmapping Per una texture di dimensioni 2 n x 2 n, ho un totale di n texture: Livello 0: Loriginale Livello i: ½ della risoluzione del livello i-1, ciascun texel è la media di unarea 2x2 dal livello i-1 Livello 0: 1 texel

49 49 Mipmapping Ciascun livello della mipmap è una versione filtrata della texture originale: A livello n, ciascun texel è la media di 4 n texel originali Al momento del rendering, dato un pixel da colorare, si sceglie la texture nella mipmap al livello di dettaglio che corrisponde alla copertura del pixel

50 50 Mipmapping Se un pixel ingloba più texel si scende di livello d individua il livello, la terna (u,v,d) individua il texel

51 51 Mipmapping Posso poi adottare strategie di: Point sampling nella mipmap Bilinear filtering nella minimap: Interpolazione dei texel sul livello d della minimap Trilinear filtering: –Determinare i due livelli tra cui si posiziona la minificazione (d-1 e d+1) –Eseguire un filtraggio bilineare indipendente su ciascun livello –Interpolare tra i due valori filtrati

52 52 Mipmapping a)Point sampling: si vedono le seghettature e i pattern moirè b)Linear filtering: riduco le seghettature

53 53 Mipmapping c) Mipmapping point sampling d) Mipmapping linear filtering

54 54 Esempio Without MIP-mapping With MIP-mapping

55 55 2D Texture mapping Dobbiamo poi indicare come gestire i valori di s,t che vanno fuori range (Es.: ripetere, arrotondare....)

56 56 Texture mapping e shading Il valore di colore ottenuto dal texture mapping può essere usato come tale per assegnare il colore al pixel o può essere composto al valore di riflessione diffusa del modello di Phong. Constant Diffuse Color Diffuse Texture Color Texture used as Label Texture used as Diffuse Color Durand and Cutler

57 57 Texture mapping e shading Giannitrapani e Fusiello

58 58 Bump mapping Tecnica per far apparire corrugate superfici lisce senza alterare il modello geometrico Basata sulla alterazione della normale alla superficie prima che venga applicato il modello di shading Andries van Dam

59 59 Bump mapping Giannitrapani e Fusiello

60 60 Bump mapping Vogliamo alterare la normale in modo che essa corrisponda alla normale ad una superficie opportunamente deformata Consideriamo un punto su una superficie parametrica p (u,v), la cui normale è definita da: Sia d(u,v) la funzione di displacement (o bump function). Ciò che vogliamo ottenere è:

61 61 Bump mapping Ma in realtà non vogliamo alterare la superficie. La nuova normale sarebbe: Se calcoliamo le derivate parziali: Supponendo che d() sia piccola

62 62 Bump mapping Cylinder w/Diffuse Texture Map Bump Map Cylinder w/Texture Map & Bump Map Durand and Cutler Il bump mapping non determina occlusioni e ombre

63 63 Bump mapping Devo variare la normale per ciascun frammento. Lo posso realizzare nella pipeline?? –SI, programmando un fragment shader –SI, effettuando varianti del bump mapping (normal mapping) Il bump mapping non è supportato in OpenGL perchè la texture è applicata dopo il calcolo dellilluminazione

64 64 Normal mapping Variante di bump mapping. I texel rappresentano la normale (normal map). z y x B R G

65 65 Phong shading

66 66 Texture mapping

67 67 Bump mapping

68 68 Displacement mapping Utilizzo la texture map per variare la geometria I texel rappresentano degli offset da applicare alla geometria

69 69 Displacement mapping Pharr & Hanrahan

70 70 Texture procedurali Utile per definire laspetto di elementi naturali che presentano una certa regolarità Generatore di numeri casuali (rumore bianco) Algoritmo di correlazione

71 71 Esempio f(x,y,z)->color

72 72 Texture 3D Il metodo di generazione di texture può essere utilizzato per definire texture 3D. Non ho più il problema del mapping: devo mappare un punto (s,t,r) in (x,y,z) Equivalente a fare una scultura con un materiale non uniforme (definizione di una funzione T(s,t,r) che rappresenta il materiale, es.: marmo o granito)

73 73 Esempio Image by Henrik Wann Jensen

74 74 Environment mapping Le superfici altamente riflettenti riflettono lambiente circostante La simulazione di questi effetti richiede informazioni globali sulla scena –Ray tracing Come rendere questi effetti avendo a disposizione un modello di illuminazione locale? Attraverso le mappe di riflessione (environment map o reflection map).

75 75 Confronto Notare la mancanza di auto riflessioni nellenvironment map

76 76 Environment mapping Blinn, J. F. and Newell, M. E. Texture and reflection in computer generated images. Communications of the ACM Vol. 19, No. 10 (October 1976), Il primo oggetto con environment-map è stato la Utah Teapot con una immagine di una stanza realizzata con un programma di disegno.

77 77 Environment mapping Miller and Hoffman, 1984

78 78 Environment mapping La tecnica è stata utilizzata per realizzare effetti speciali in film degli anni 80 e 90.

79 79 Environment mapping Primo passo: –Rendering della scena con la camera nella posizione dello specchio Visione degli oggetti nella scena visti dallo specchio Secondo passo: –Utilizzare la scena generata come texture

80 80

81 81 Environment mapping Difetti: –Limmagine che generiamo nel primo passaggio non è molto corretta perchè è generata senza la presenza dello specchio –Su quale superficie proiettiamo la scena nel primo passo? Vorrei avere una informazione completa sulla scena in modo da poterla applicare se muovo lo specchio

82 82 Environment mapping Lapproccio classico è fare la proiezione su una sfera Nella versione originale dellenvironment mapping la superficie della sfera veniva poi convertita in un rettangolo

83 83 Environment map Il texel dipende dalla posizione dellosservatore superficie eye Environment map v n r

84 84 Sphere mapping OpenGL supporta una variazione dellapproccio classico detto sphere mapping Lapplicazione deve fornire una immagine circolare Limmagine si può ottenere con un angolo di vista molto ampio o rimappando altri tipi di proiezione

85 85 Sphere mapping Ciascun pixel dellimmagine corrisponde ad una direzione di osservazione

86 86 Box mapping Per ambienti chiusi, è naturale mappare lambiente in una scatola Servono 6 proiezioni, corrispondenti ad una camera che punta verso alto, basso e ai 4 lati Le sei immagini vengono trattate come ununica environment map e da essa ricavate le informazioni di texture

87 87 Box mapping

88 88 Environment Maps Durand & Cutler

89 89 Environment Maps Cubical Environment Map Cylindrical Panoramas

90 90 Blending RGBA: A=canale alfa, indica la trasparenza A=1 indica superficie opaca, A=0 indica superficie trasparente Variando il valore di A possiamo assegnare una data opacità (o trasparenza, 1-A) alle superfici

91 91 Blending Colore del frammento (source) Colore nel frame buffer (destination) b e c sono i fattori di blending sorgente e destinazione I valori che risultano fuori range vengono clippati

92 92 Fog Possiamo utilizzare il blending per assegnare il colore in modo dipendente dalla distanza f = fattore di nebbia (fog factor) funzione esponenziale o lineare; modifica il colore come coefficiente di alphablending:

93 93 Blending La maggior difficoltà è il fatto che lordine con cui renderizziamo i poligoni altera il risultato finale Funziona bene con algoritmi depth-sort (algoritmo del pittore) Non dobbiamo attivare la rimozione dei poligoni nascosti perchè è necessario che tutti vengano renderizzati se sono dietro un poligono trasparente Soluzione con z-buffer: Abilitare la rimozione dei poligoni nascosti e rendere lo z- buffer read-only per i poligoni traslucidi

94 94 Composizione di immagini Uno dei maggiori utilizzi del blending è per la composizione di più immagini (es.: risultati di rendering indipendenti) Devo definire opportunamente il fattore di blending per ciascuna immagine altrimenti il clipping porta a risultati insoddisfacenti Per una composizione uniforme di n immagini potrei definire dei fattori 1/n

95 95 Accumulation buffer Se facciamo la composizione di più immagini con la tecnica del blending possiamo perdere risoluzione colore se il frame buffer memorizza in interi Si definisce un buffer (buffer di accumulazione, di solito è in SW) con le stesse dimensioni del frame buffer, ma con maggior risoluzione (floating point)

96 96 Il texturing è fatto durante la rasterizzazione della primitiva mappa punti 3D in locazioni (pixel) sul display Ciascun frammento generato viene testato per la visibilità (z-buffer) e se visibile viene calcolato lo shading Durante linterpolazione di shading si calcola il valore di texture usando ancora interpolazione tra vertici estremi

97 97 Simula riflessioni a specchio senza ray tracing, chiamato anche reflection map Si calcola la proiezione dellambiente su una forma determinata (sfera o cubo nel caso di ambienti chiusi) La proiezione viene trattata come una texture, ma la texture viene proiettata dal punto vista dellosservatore Il programma applicativo deve calcolare la proiezione dellambiente sulla superficie intermedia (sfera o scatola)


Scaricare ppt "1 Texturing - Tessiture Daniele Marini. 2 Modellazione geometrica Per ottenere il realismo ricorrere a modelli geometrici complessi non è spesso la soluzione."

Presentazioni simili


Annunci Google