Corso di Elementi di Grafica Digitale Massimo De March

Slides:



Advertisements
Presentazioni simili
Facciamo Luce Il Cuneo D'Aria.
Advertisements

Circonferenza e cerchio
x+x=2x Consideriamo la seguente frase:
Ombre e riflessioni in tempo reale
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
GLUT & OpenGL Ing. Tommaso Coviello Politecnico di Bari
Esercizio 1 Un filo indefinito è costituito da due semirette AB e BC formanti un angolo retto, come in figura Il filo è percorso da una corrente I = 10.
Formati e caratteristiche di digitalizzazione
Problema diretto Problema inverso
I VETTORI di Federico Barbarossa
Dallalgoritmo minimax allalgoritmo alfa-beta. MINIMAX int minimax(stato, livello) { if((livello == max_livello) || condizione_uscita(stato)) { CAMMINO.
Lezione 4 IL MERCATO DEI BENI
Grafica Raster La grafica in 2D con coordinate intere viene detta grafica raster. In questa parte tratteremo le operazioni fondamentali per disegnare su.
Corso di Informatica grafica 1 Introduzione Quando si rappresentano modelli di oggetti 3D costituiti da facce poligonali secondo delle proiezioni alcune.
LE EQUAZIONI.
[Iriad Kumbuli] OpenGL Framebuffer
Texture Mapping.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 prove.
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 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.
EQUAZIONI E PROBLEMI DI 1° GRADO
DISEQUAZIONI Chiedersi quando un trinomio dato è positivo significa ricercare per quali valori di x la variabile y è positiva; in altre parole si devono.
Un tocco di blu non guasta …
Unintroduzione a HTML (II). 4-2 Includere figure con i tag immagine Le immagini possono essere usate come link utilizzando i tag àncora Formato del tag.
Bump Mapping & Under-Water Effects
Le funzioni.
Texturing - Tessiture Daniele Marini.
Smoothing Daniele Marini.
1 Effetti impressionistici Daniele Marini. 2 Tecniche discrete di manipolazione del frame buffer: –Texture mapping –Antialiasing –Compositing –Alpha blending.
Javascript 6 Funzioni. Una funzione sarà eseguita in risposta ad un evento o ad una chiamata diretta. Le funzioni possono essere inserite comodamente.
Infomatica Grafica a.a DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Environment Mapping.
Progetto competenze asse matematico.
CODIFICA DI INFORMAZIONI MULTIMEDIALI:
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Illuminamento e Shading
Cominciamo a parlare di tangenti.
Studente: Banovaz Diego Trieste, 15/12/2008AA: 2008/2009.
Effetti fotorealistici
Daniele Marini, Maurizio Rossi
Texturing - Tessiture Daniele Marini.
Le ombre proiettate Daniele Marini.
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
Corso Di Programmazione Grafica
Macchine per osservare, riprodurre e simulare il colore Liceo Scientifico Tecnologico “L. e A. Franchetti”
Informatica Avanzata Trattamento di Foto e Immagini Digitali UNI3 - NICHELINO Lez. N Gennaio 2009 di Pautasso Luciano Lez. N.
1 Struttura di un sistema grafico e frame buffer Daniele Marini.
Codifica dei dati in un elaboratore elettronico
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2006/2007.
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2005/2006.
Modelli di Illuminazione Modelli locali
Primitive OpenGL Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Colori e Font in java.
Circonferenza e cerchio
Principi di grafica BMP , Jpeg , Tif , GIF:
Vettori, indirizzi e puntatori Finora abbiamo usato gli indirizzi nel chiamare  la funzione scanf()  le altre funzioni per riferimento Tuttavia la vera.
Introduzione a Javascript
Computer Graphics Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Scuola Interuniversitaria Campana di Specializzazione all’Insegnamento S.I.C.S.I. III Ciclo 2° Anno A.A Ambito tecnologico- Classe A042 Informatica.
Computer Graphics Marco Tarini Università dell’Insubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2005/06 Lezione.
Schermi o Display al plasma
Informatica 6 Tipi di dato. Nelle celle di memoria di un calcolatore ci sono solo “0” e “1”, fisicamente realizzati tramite due diversi livelli di tensione.
1 Smoothing Daniele Marini. 2 Calcoli sui vettori Vettore normale equazione del piano: ax+by+cz+d=0; si può anche scrivere come luogo: e p è un qualunque.
EVENTI Gli eventi sono delle azioni che possono essere identificate da javascript. 1 - onMouseOver, che viene messo in atto quando l'utente fa scorrere.
Prof. Dario Scalini. Luce e Colore FOTORECETTORI  coni (colori) e bastoncelli (luminosità)
Di Matteo Arenga Manuela Bonaccorso Giulia Diprossimo.
Operazioni con le frazioni
Gestire la navigazione. Creare un’app multi Controller La quasi totalità delle app è suddivisa in più ViewControllers, ognuno con specifiche funzionalità.
Transcript della presentazione:

Corso di Elementi di Grafica Digitale Massimo De March Blending Corso di Elementi di Grafica Digitale Massimo De March Blending

Introduzione È usato per unire il colore di un dato pixel che sta per essere disegnato con il pixel che è già sullo schermo Esistono vari tipi di blending Additivo (Pixel Finale=PixelLayer1+PixelLayer2) Sottrattivo (Pixel Finale=PixelLayer1-PixelLayer2) Modulativo (Pixel Finale=PixelLayer1*PixelLayer2) Blending

Alpha Blending È un caso particolare di blending Si usa per gestire la trasparenza È il caso più usato e che esporrò Si basa sull’uso della componente Alpha del colore Blending

Alpha È il quarto componente del colore, specificato solitamente per ultimo GL_RGB viene usato per specificare il colore con 3 componenti GL_RGBA può essere usato per specificare anche l'alfa Si può usare glColor4f() anziché glColor3f() La maggior parte della gente pensa ad Alpha come all'indice di opacità del materiale 0.0 materiale completamente trasparente 1.0 materiale completamente opaco. Blending

Equazione Di Alpha Blending (Rs Sr + Rd Dr, Gs Sg + Gd Dg, Bs Sb + Bd Db, As Sa + Ad Da) r ed s specificano i pixel sorgenti e di destinazione Le componenti di D ed S sono i fattori di blending I valori più comuni per la S e la D sono (As, As, As, As) (cioè Alpha source) per la S e (1, 1, 1, 1) - (As, As, As, As) (cioè Alpha meno uno) per D Il risultato sarà: (Rs As + Rd (1 - As), Gs As + Gd (1 - As), Bs As + Bs (1 - As), As As + Ad (1 - As)) Blending

Blending in OpenGL – La Norma Si crea un colore con fattore Alpha usando: glColor4f(1.0f, 1.0f, 1.0f, 0.5f) Si applica l’equazione per il calcolo del colore: glBlendFunc(sfactor, dfactor) specifica i fattori moltiplicativi che devono essere utilizzati dalla funzione di blending. sfactor: specifica come devono essere considerate le componenti Red, Green, Blue e Alpha dei pixels sorgenti dfactor: specifica come devono essere considerate le componenti Red, Green, Blue e Alpha dei pixels di destinazione Si disattiva il depth buffer in quanto gli oggetti dietro la figura trasparente si devono vedere glDisable(GL_DEPTH_TEST) Si attiva il blending glEnable(GL_BLEND) Blending

Metodo Operativo Disegnare tutti i poligoni trasparenti (con Alpha < 1.0) dopo aver disegnato l' intera scena Disegnare nell' ordine di profondità inverso (l'oggetto più lontano per primo) Blending

Metodo Operativo - Dettagli Eseguendo il blending su due poligoni (1 e 2) in ordine differente, fornisce risultati differenti Ipotizzando che il poligono 1 è più vicino all'osservatore, il modo corretto dovrebbe disegnare prima il poligono 2 e poi il poligono 1 La luce che arriva da dietro questi due poligoni deve passare prima attraverso il poligono 2, quindi attraverso il poligono 1, prima di arrivare all'occhio dell'osservatore Blending

Metodo Operativo – L’Ottimo Ordinare i poligoni trasparenti a seconda della profondità (Depth) e disegnarli dopo che l’intera scena sia stata disegnata, col Depth Buffer attivato Blending

Blending & Texture Map Nel texture mode modulato, ogni pixel texturizzato è moltiplicato per il colore corrente. Se il colore che deve essere disegnato è (0.5, 0.6, 0.4), lo si moltiplica tante volte per il colore ottenendo (0.5, 0.6, 0.4, 0.2) (alpha si assume che sia 1.0 se non specificata). Blending

Blending & Texture Map II Il valore di Alpha che viene usato per la trasparenza può essere letto da texture map proprio come il colore. Basta inserire il componente colore Alpha nell' immagine da caricare e quindi usare GL_RGBA per il formato di colore nelle chiamate a glTexImage2D() Blending

Blending DEMOS Blending

IDirect3DDevice9, SetRenderState, State, Value Blending in Direct 3D9 Il metodo Operativo rimane lo stesso, cambiano solo le funzione per abilitare tale funzione Tutti i parametri sono impostabili tramite il metodo SetRenderState IDirect3DDevice9, SetRenderState, State, Value State: variabile da impostare (D3DRENDERSTATETYPE) Value: valore da assegnare alla variabile Blending

Blending in Direct 3D9 II D3DRENDERSTATETYPE D3DRS_ALPHABLENDENABLE D3DRS_ALPHABLENDENABLE = 27 Attiva blending D3DRS_SRCBLEND = 19 Fattori per sorgente D3DRS_DESTBLEND = 20 Fattori per destinazione D3DRS_BLENDOP = 171 Operazione di blending D3DRS_ALPHABLENDENABLE FALSE = 0 Disabilita il blending TRUE = 1 Abilita il blending D3DRS_SRCBLEND e D3DRS_DESTBLEND D3DBLEND_ZERO = 1 (0, 0, 0, 0) D3DBLEND_ONE = 2 (1, 1, 1, 1) D3DBLEND_SRCCOLOR = 3 (As, Rs, Gs, Bs) D3DBLEND_INVSRCCOLOR = 4 (1-As, 1-Rs, 1-Gs, 1-Bs) D3DBLEND_SRCALPHA = 5 (As, As, As, As) D3DBLEND_INVSRCALPHA = 6 (1-As, 1-As, 1-As, 1-As) D3DBLEND_DESTALPHA = 7 (Ad, Ad, Ad, Ad) D3DBLEND_INVDESTALPHA = 8 (1-Ad, 1-Ad, 1-Ad, 1-Ad) D3DBLEND_DESTCOLOR = 9 (Ad, Rd, Gd, Bd) D3DBLEND_INVDESTCOLOR = 10 (1-Ad, 1-Rd, 1-Gd, 1-Bd) D3DRS_BLENDOP D3DBLENDOP_ADD = 1 Somma D3DBLENDOP_SUBTRACT = 2 Sottrae D3DBLENDOP_REVSUBTRACT = 3 Sottrae fattori con ordine inverso (Dst - Src) D3DBLENDOP_MIN = 4 Min (Src, Dst) D3DBLENDOP_MAX = 5 Max (Src, Dst) Blending

Grazie per l’attenzione Blending Texture Grazie per l’attenzione Blending