Modelli per i materiali



Похожие документы
Capitolo 6 Interazione luce-materia

Corso di Tecniche Avanzate per la Grafica Texturing

Livello di approfondimento della lezione. Texture mapping di solito spiegato in corsi di CG di base

Tecniche di mappatura

Grafica Computazionale. Texturing. Fabio Ganovelli a.a

Interazione luce - materia

Texture maps come assets

Il texture fetch (o: texture lookup) Operazione molto semplice in GLSL, es: e si memorizza le coord texture (s,t) per ogni vertice

La Pipeline Grafica. Vediamo come avviene il rendering, ovvero la visualizzazione di oggetti. Introduzione. La Pipeline Grafica.

Introduzione alla Computer Graphics

Processo di rendering

Grafica al calcolatore - Computer Graphics

Capitolo V : Il colore nelle immagini digitali

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano

Processo di rendering

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Applicazioni 3D avanzate

3DE Modeling Color. E il modulo che si occupa della costruzione di modelli 3D con tessitura a colori.

IMMAGINE BITMAP E VETTORIALI

Corso di Grafica Computazionale

Sistema operativo: Gestione della memoria

Immagini vettoriali. Immagini raster

Computer Graphics. La disciplina fornisce metodi per creare elaborare memorizzare visualizzare. immagini di oggetti o scene mediante un computer

Introduzione all immagine digitale. Laboratorio di Tecnologie Educative A.A. 2003/04

ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI. (Visione 3D)

Le texture. Informatica Grafica I. Le texture. Le texture. Le texture. Le texture. Le texture

Informatica Grafica. Prof. Massimiliano Dellisanti Fabiano Vilardi. (2a parte) a.a. 2011/2012

Carichiamo il segnale contenuto nel file ecg_es_ mat

Il campionamento. La digitalizzazione. Teoria e pratica. La rappresentazione digitale delle immagini. La rappresentazione digitale delle immagini

Grafica e Geometria Computazionale

Immagini digitali. Paolo Zatelli. Dipartimento di Ingegneria Civile ed Ambientale Università di Trento. Immagini digitali

SISTEMI di PERSONAL COMPUTER

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

OpenGL effects. Texture Mapping. La fase di texture mapping serve a conferire maggiore realismo agli oggetti della scena 3D.

Dal foglio di carta alla multimedialità

RETTE, PIANI, SFERE, CIRCONFERENZE

Sistemi Informativi Territoriali. Vari tipi di immagini

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

Proiezioni Grafica 3d

Corso di Matematica per la Chimica

Luci/Ombre. YAFARAY motore di rendering Open Source. Federico Frittelli aka fredfrittella. SUTURA-studio di progettazione.

ELEMENTI DI GEOMETRIA ANALITICA: LA RETTA.

INFORMATICA. Elaborazione delle immagini digitali. Università degli Studi di Foggia Dipartimento di Medicina Clinica e Sperimentale

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale

Le immagini digitali. Le immagini digitali. Caterina Balletti. Caterina Balletti. Immagini grafiche. Trattamento di immagini digitali.

Rappresentazione di oggetti 3D

DigiCad 3D 8.5. Note di rilascio

Grafica 3D Interattiva

Attualmente esistono sul mercato videoendoscopi sempre più sofisticati con una buona risoluzione di immagine ed estremamente portatili.

Università degli studi di Messina facoltà di Scienze mm ff nn. Progetto Lauree Scientifiche (FISICA) Prisma ottico

Creare superfici. Le superfici. Informatica Grafica ][ Le superfici. Le superfici. Le superfici. Le superfici

LEZIONI CON I PAD Docente scuola secondaria IC Moglia Carla Casareggio Classi seconde 2014/2015 Proprietà triangoli e quadrilateri con Sketchometry

Trasformazioni 2D. Grande differenza rispetto alla grafica raster!

Ricostruzione stereo. Il nostro obiettivo. Ricostruzione del Cenacolo Vinciano. Ricostruire la profondità. d Y

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

Introduzione Computer Graphics

C M A P M IONAM A E M NT N O

Scheda di approfondimento gioco I pixel

Marta Capiluppi Dipartimento di Informatica Università di Verona

LE FUNZIONI A DUE VARIABILI

4. Proiezioni del piano e dello spazio

Politecnico di Milano - Facoltà del design - Laboratorio di computer grafica C2 Michele Zannoni Giovanni Gigante Tutorial 05: Materiali in Maya

Interpolazione ed approssimazione di funzioni

Fondamenti di Grafica Tridimensionale

IL SISTEMA CARTOGRAFICO NAZIONALE

Elaborazione testi: immagini

Relazioni statistiche: regressione e correlazione

Un gioco con tre dadi

Rette e piani con le matrici e i determinanti

Lezione 2: Immagini digitali (1)

Lunghezza ocale. Donato Di Bello

Si sa che la via più breve tra due punti è la linea retta. Ma vi siete mai chiesti, Qual è la via più breve tra tre punti? o tra quattro punti?

La distribuzione Normale. La distribuzione Normale

La Visione Artificiale. La vis ione delle macchine La vis ione umana Acquis izione di immag ine

PDF created with pdffactory trial version

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

GestVetrine 1.1 versione novembre 2014

Texture mapping. Davide Gadia Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica a.a. 2014/2015

SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO

Sistema di ripresa con fotocamera digitale fissa Calibrazione

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Grafico della parabola

3D e Realtà Virtuale

Corso di Visione Artificiale. Immagini digitali. Samuel Rota Bulò

Corso di Informatica

Транскрипт:

Texture mapping 1

Modelli per i materiali Il realismo visivo può essere ottenuto mediante i modelli di illuminazione e dei materiali Per modellare i materiali si possono utilizzare delle immagini dette immagini di texture da incollare sulla struttura geometrica dell oggetto Durante la fase di shading Dopo la fase di shading perturbandone il risultato 2

Immagini di texture o mappe Sono esempi di texture: color-map: ogni pixel è un colore (componenti: R- G-B, o R-G-B-A) l intensità di colore di un punto della superficie dipende dal colore del punto corrispondente della immagine di texture alpha-map: ogni pixel è un valore di trasparenza alpha normal-map o bump-map ogni pixel è una normale (componenti: X-Y-Z): le variazioni dei livelli di grigio della mappa daranno luogo a variazioni di altezza sulla superficie shininess-map: ogni pixel contiene un valore di specularità 3

Mapping di immagini sulla geometria + = geometria 3D (mesh di quadrilateri) RGB texture (color-map) 4

Mapping di immagini sulla geometria 5

Mapping di immagini sulla geometria + = 6

Storia Ed Catmull 1974 introdotto da Ed Catmull nella sua Phd Thesis Solo nel 1992 si ha texture mapping in hardware Silicon Graphics RealityEngine Dal 92 a oggi ha avuto aumento rapidissimo della diffusione Oggi è una delle fondamentali tecniche di rendering La più utilizzata tecnica image based 7

512 texels 1.0 v Notazione Texture Space (o spazio parametrico o spazio u-v ) Texture 2D 1.0 u texel 1024 texels Una Texture è definita nella regione [0,1] x [0,1] dello spazio parametrico 8

Texture mapping Consideriamo una texture come una matrice di nxm elementi, il texture mapping è una funzione che Associa i texel ad i punti della superficie di un oggetto geometrico Proietta i punti sullo schermo E una funzione matematica che trasforma Coordinate texture (u,v) in coordinate del mondo (X,Y,Z) in coordinate schermo (x s,y s ) 9

Texture Mapping Texture mapping consiste di 3 passi Definire la texture nello spazio (u,v) Associare durante la fase di modellazione a ciascun vertice di ciascun triangolo (X i,y i,z i ) il corrispondente punto nello spazio (u,v) Calcolare durante la fase di rendering per ogni pixel generato all interno di una faccia il valore di tessitura per interpolazione 10

Mapping inverso Il calcolo è effettuato nelle coordinate dello schermo, per evitare il calcolo su frazioni di pixel E necessario considerare la trasformazione inversa dalle coordinate dello schermo (x s,y s ) alle coordinate della texture (u,v): Per ogni pixel dello schermo si calcola mediante trasformazione inversa il punto corrispondente (X i,y i,z i ) sulla superficie Il punto (X i,y i,z i ) viene mappato nello spazio della texture (u,v) 11

Texture mapping e modello di illuminazione Il valore di texture ottenuto sia in maniera diretta che inversa - può essere utilizzato Per attribuire direttamente il colore al pixel Oppure per attribuire il colore al pixel dopo essere stato composto con il valore di riflessione diffusa di Phong I f = (1 - α t ) I t + α t I I f - valore finale I t - valore di texture I - valore di illuminazione Phong α t - valore di trasparenza per la texture (0..1) 12

Proiezioni per il texture mapping Come trasformare le coordinate di una mappa di texture 2D in una superficie 3D generica. Si utilizzano: Trasformazione piana ( ad es. bilineare) Proiezione cilindrica Proiezione sferica 13

Texture Mapping Ad ogni vertice (di ogni triangolo) si associa un punto di coordinate u,v nello spazio della v texture u 1,v 1 u 0,v 0 x 1,y 1 u 1,v 1 posizione del 1mo vertice x 0,y 0 u 0,v 0 attributi del 1mo vertice u 2,v 2 u x 2,y 2 u 2,v 2 Texture Space Screen Space 14

Texture Mapping Si definisce cioè un mapping fra il triangolo e un triangolo di tessitura Screen Space Texture Space 15

Texture Mapping Ad ogni vertice (di ogni triangolo) si associa un punto di coordinate u,v nello spazio della texture texture look-up Screen Space Texture Space 16

V 3 Interpolazione delle coordinate R p 3 V 2 texture f( v 3 ) proiezione f R f(p) 2 f( v 2 ) V 1 f( v 1 ) p ha coordinate baricentriche a,b,c nel triangolo v 1 v 2 v 3 f(p) ha coordinate baricentriche a,b,c nel triangolo f(v 1 )f(v 2 ) f(v 3 ) La proiezione è una approssimazione utile per colori e normali ma non funziona quando si interpolano le coordinate di texture... 17

Interpolazione delle coordinate v 1 texture Esempio: u,v= (1,0) 1 u u1,v1= (1,1) u1,v1= (0,0) u1,v1= (0,1) 18

Correzione Prospettica p ha coordinate baricentriche c 0 c 1 c 2 V 1 A 1,B 1... p = c 0 v 0 + c 1 v 1 + c 2 v 2 V 2 A 2,B 2... p V 0 A 0,B 0... = ( x 0, y 0, z 0, w 0 ) attributi di p: (senza considerare la correzione prospettica) A p = c 0 A 0 + c 1 A 1 + c 2 A 2 B p = c 0 B 0 + c 1 B 1 + c 2 B 2 19

Correzione Prospettica p ha coordinate baricentriche c 0 c 1 c 2 V 1 p A 1,B 1... V 0 A 0,B 0... = ( x 0, y 0, z 0, w 0 ) p = c 0 v 0 + c 1 v 1 + c 2 v 2 attributi di p: (con la correzione prospettica) V 2 A 2,B 2... Ap = A 0 A A p = c 0 A 0 + c 1 1 A 1 + c 2 A 2 w 2 0 w 1 w 2 1 A p = c 0 A 0 + c 1 A 1 1 + c 2 A 1 w 2 0 w 1 w 2 20

Correzione Prospettica Senza Con 21

u-v mapping Assegnare una coppia di coordinate di texture ad ogni vertice della rete di pologoni v v u u Texture atlas 22

Mapping lineare Si utilizza un mapping lineare da (x,y,z) a (u,v) Esempi: 23

Esempio environment mapping Environment map: una texture che memorizza il colore dell ambiente riflesso da ogni normale della semisfera. 24

Environment mapping: sferico simula oggetto a specchio che riflette uno sfondo lontano simula un materiale complesso (condizioni di luce fisse) 25

Environment mapping: cubico above left front right back below 26

Texture fuori dai bordi: modo clamp v 1 1 u (u<0) u 0; if (u>1) u 1; (v<0) v 0; if (v>1) v 1; 27

Texture fuori dai bordi: modo repeat v 1 1 u u u [ u ] v v [ v ] 28

Tessiture ripetute Tipico utilizzo: Molto efficiente in spazio: una sola texture mappa su molti triangoli 29

Texture Look-up Un frammento ha coordinate texture look-up non intere (in texels) Screen Space Texture Space 30

Texture Look-up pixel texel un pixel = meno di un texel magnification Screen Space Texture Space pixel un pixel = più di un texel minification 31

Caso Magnification v Soluzione 1: Si sceglie il texel più vicino Questo equivale ad arrotondare le coordinate all intero più vicino 7.5 6.5 5.5 4.5 3.5 2.5 "Nearest Neighbour" 1.5 0.5 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 32 u

Caso Magnification Nearest Neighbour : risultato visivo texture 128x128 "si vedono i texel!" 33

v 7.5 Soluzione 2: i prende il valore medio dei quattro texel più vicini Caso Magnification 6.5 5.5 4.5 3.5 2.5 Interpolazione Bilineare 1.5 0.5 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 34 u

Caso Magnification Bilinear Interpolation: risultato visivo texture 128x128 35

Caso Magnification Modo Nearest: si vedono i texel va bene se i bordi fra i texel sono utili più veloce Modo Interpolazione Bilineare di solito qualità migliore può essere più lento rischia di avere un effetto "sfuocato" 36

Caso Minification Nearest Neighbour Bilinear interpolation non risolve il problema 37

Caso Minification: MIP-mapping MIP-mapping: multum in parvo MIP-map level 1 MIP-map level 2 MIP-map level 3 MIP-map level 4 (un solo texel) MIP-map level 0 Si considera una gerarchia di mappe di texture a risoluzione diversa piramide di immagini L occupazione di memoria della piramide è circa il doppio della occupazione della singola imamgine 38

Mipmap Si definisce un fattore di scala: ρ= texel/pixel come valore massimo fra ρ x e ρ y, che può variare sullo stesso triangolo Il livello di mipmap da utilizzare è: log 2 ρ dove il livello 0 indica la massima risoluzione Il livello non è necessariamente un numero intero e può quindi essere arrotondato 39

Caso Minification: MIP-mapping Bilinear interpolation non risolve il problema MIP-mapping 40

Caso Minification: MIP-mapping 5 4 3 2 1 0 altro esempio 41

Bump mapping Un ulteriore modifica all apparenza del rendering può essere effettuata usando il bump mapping 42

Bump mapping Il metodo prevede di variare la normale alla superficie pixel per pixel utilizzando la formula: I texel in questo caso sono utilizzati ad uno stadio diverso rispetto ai color texel, prima del calcolo dell'equazione di illuminazione 43

Bump mapping L effetto che si ottiene è un perturbazione del valore delle normali che altera il rendering senza modificare la geometria 44

Bump mapping 45

Displacement mapping Nel displacement mapping si modifica effettivamente la geometria dell oggetto spostando i punti della superficie: Il displacement mapping è eseguito in fase di rendering e non modica stabilmente la geometria della scena Rispetto al bump mapping anche la silhouette del modello mostra le corrette deformazioni 46

Displacement mapping 47

Texture mapping e schede grafiche La grande diffusione del texture mapping è dovuta anche al largo utilizzo nei videogiochi La struttura di un video gioco è caratterizzata da Uso di geometrie semplici con livello di approssimazione delle forme basso Utilizzo di sofisticate tessiture 48

Architettura del processo di rendering Il sistema di rendering si può suddividere in Sottosistema geometrico si occupa del calcolo delle trasformazioni geometriche ed illuminazione dei vertici delle primitive geometriche Sottosistema raster si occupa della rasterizzazione e calcolo della texture delle primitive 49

Memoria RAM nelle schede grafiche setup setup Frammenti & attributi interpolati setup rasterizer punti rasterizer triangoli rasterizer segmenti Screen buffer (RGBA) Screen buffer 2 (RGBA) Depth buffer 50 Vertici & loro attributi computazioni per vertice Vertici poriettati & attributi computati computazioni per frammento Texture RAM

Texture Mapping Nelle operazioni per frammento nelle coordinate dello schermo si può accedere ad una RAM apposita: la Texture RAM strutturata in un insieme di Textures ( tessiture ) Ogni tessitura è un array 1D, 2D o 3D di Texels (campioni di tessitura) dello stesso tipo 51

Texture Mapping setup setup Screen buffer 52 Vertici & loro attributi Vertici poriettati & attributi computati Frammenti & attributi interpolati setup rasterizer punti rasterizer triangoli rasterizer segmenti Texture RAM computazioni per vertice computazioni per frammento compreso: coordinate texture (per vertice!) interpolo coordinate texture coordinate texture interpolate texture look-up

Texture Mapping setup setup Screen buffer 53 Vertici & loro attributi Vertici poriettati & attributi computati Frammenti & attributi interpolati setup rasterizer punti rasterizer triangoli rasterizer segmenti Texture RAM computazioni per vertice computazioni per frammento compreso: coordinate texture (per vertice!) interpolo coordinate texture coordinate texture interpolate texture look-up