Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org



Documenti analoghi
Il rendering fotorealistico. Conferimento ad oggetti 3D di un aspetto particolarmente fotorealistico

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

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

UNIVERSITÀ DEGLI STUDI DI SIENA

Rendering & ray tracing. Implementazione e applicazione pratica

Le luci. L'illuminazione diretta. Informatica Grafica per le arti. L'illuminazione diretta. L'illuminazione diretta. L'illuminazione diretta

STUDIO DEL MOTORE GRAFICO OGRE 3D PER L'INTEGRAZIONE DI UNO SHADER DI GESTIONE DELL'ILLUMINAZIONE

Interazione luce - materia

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

IR(3): Illuminazione Globale

LE FUNZIONI A DUE VARIABILI

Proiezioni Grafica 3d

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

AddCAD per ZWCad. Passa alla progettazione 3D rimanendo sul tuo Cad famigliare

Strutturazione logica dei dati: i file

Corso di Grafica Computazionale

Spline Nurbs. IUAV Disegno Digitale. Camillo Trevisan

3D e Realtà Virtuale

Open Source 3D Engine. OpenGL Rendering System. Il Framework

Capitolo V : Il colore nelle immagini digitali

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

Fasi di creazione di un programma

Lezione 2: Immagini digitali (1)

I NUMERI DECIMALI. che cosa sono, come si rappresentano

Grafica al Calcolatore Fotorealismo - 1. Introduzione

Processo di rendering

SISTEMI di PERSONAL COMPUTER

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

DISEGNO 3D IN AutoCad.

Processo di rendering

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

Un nuovo metodo di elaborazione per rappresentazioni tecniche del modello ancora più realistiche

ShareGrid Una piattaforma di calcolo condivisa per Grid Computing

Animazioni 3D. Informatica Grafica I. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D

Grafica 3D Interattiva

Principi e Metodologie della Progettazione Meccanica

RADIOSITY TUTORIAL. versione originale su:

Fondamenti di Grafica Tridimensionale

Soluzione di equazioni quadratiche

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

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

Introduzione al 3D con Autocad

Facoltà di Ingegneria

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

OpenGL: visualizzazione 3D

Rette e piani con le matrici e i determinanti

Informatica per la comunicazione" - lezione 7 -

simulatore di ponti termici e condensazione

Tecniche di Simulazione: Introduzione. N. Del Buono:

TECNICHE DI SIMULAZIONE

Un prototipo di 3D scanner

3DE Modeling Professional

Piani di input e piani di calcolo reale in FaTA-e

3DCARTO: GESTIONE DEL MONDO VIRTUALE IN 3D

IMMAGINE BITMAP E VETTORIALI

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

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

FASCI DI RETTE. scrivere la retta in forma esplicita: 2y = 3x + 4 y = 3 2 x 2. scrivere l equazione del fascio di rette:

ELEMENTI DI ALGEBRA LINEARE E GEOMETRIA Corso di Laurea Ingegneria Edile-Architettura

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

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

Informatica Generale 02 - Rappresentazione numeri razionali

Autostereoscopy as a Representation Criteria for Distributed Simulation

LEAD GENERATION PROGRAM

Lezione 19: Grafica in tempo reale. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time

la scienza della rappresentazione e della elaborazione dell informazione

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

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

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

Università di Siena Sede di Grosseto Secondo Semestre Macroeconomia. Paolo Pin ( pin3@unisi.it ) Lezione 4 20 Aprile 2011

VC-dimension: Esempio

Rendering air show e verifica della sincronizzazione

SISTEMI DI NUMERAZIONE E CODICI

Finalmente anche in Italia il partner del 3D semplice e intuitivo più diffuso al mondo. Modellazione 3D intuitiva

Operazioni binarie fondamentali

RETTE, PIANI, SFERE, CIRCONFERENZE

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

DEFINIZIONE di CARTA. Carta di Mercatore Schermata ArcView. Generalità sulle carte e sui GIS 1

IL CODICE BINARIO. Il codice binario. Codifica posizionale. Aritmetica binaria

Compagnia delle Ombre.

Applicazioni lineari

ARCHITETTURA. Rubrica Infografica

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Imprese multinazionali e outsourcing

La propagazione delle onde luminose può essere studiata per mezzo delle equazioni di Maxwell. Tuttavia, nella maggior parte dei casi è possibile

Studente: SANTORO MC. Matricola : 528

Introduzione a 3ds Max

PROGETTO ESCAVATORE VIRTUALE

HDRI (High Digital Range Images)

Lezione 6. Manipolare la Realtà: il video mapping

13. Campi vettoriali

CORSO DI FONDAMENTI DI DISEGNO TECNICO LEZIONE 2 PROIEZIONI ORTOGONALI

Corso di Economia degli Intermediari Finanziari

Sistemi video per il monitoraggio

Attività 9. La città fangosa Minimal Spanning Trees

Cenni al rendering di ombre

Informazione analogica e digitale

Modellare una poltrona

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Plate Locator Riconoscimento Automatico di Targhe

Transcript:

Le ombre in OpenGl Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org

Punto di partenza In OpenGl le luci non proiettano ombre 2

Perché si introducono le ombre Le ombre aumentano il realismo della scena Spesso nel mondo reale non ce ne accorgiamo,, ma in una scena 3D ne notiamo subito l assenza Le ombre permettono di realizzare effetti grafici particolari Spesso l aspetto di alcuni videogames 3D non è realistico solo a causa di uno shadowing imperfetto 3

Tecniche di rappresentazione delle ombre nella grafica 3D 4

Problemi legati alle principali tecniche di shadowing Light maps inutilizzabili per costruire ombre dinamiche Shadow volumes non è sempre semplice determinare il volume da ombreggiare Projected planar shadows funzionano bene solo su superfici piatte In generale non c è una tecnica che funzioni con ogni tipo di scena 5

Le light maps (o shadow maps) (1) Le light maps sono delle particolari texture in cui ogni singolo pixel possiede la proprietà illuminazione Tale proprietà usualmente va da 0 a 1 Viene calcolata in base alla texture da applicare all oggetto e alla distanza dal punto di illuminazione della scena 6

Le light maps (o shadow maps) (2) Light maps con ombre soft possono essere calcolate velocemente grazie ad algoritmi di convoluzione, accelerati mediante Fast Fourier Transform Tali algoritmi sono standard in OpenGl (tecnica stencil buffering ) e in DirectX9 Visto che le light maps sono in pratica textures statiche, questa tecnica è utile per immagini offline statiche, ma non è applicabile su scene dinamiche 7

Shadow volumes (1) Tecnica usata nella grafica 3D dal 1977 per aggiungere le ombre a una scena E la tecnica più comune per rappresentare le ombre calcolandole in real time Ogni scheda video 3D odierna supporta questa tecnica L idea di base di questa tecnica è quella di dividere la scena in 2 parti: i volumi che sono nell ombra e quelli che non lo sono 8

Shadow volumes (2) Per costruire uno shadow volume si va a calcolare la retta che passa dal punto di illuminazione attraverso ogni vertice degli oggetti rappresentati. L insieme di queste proiezioni forma il volume di ombreggiatura. Tutto quello che è presente nel volume di ombreggiatura è in ombra, mentre tutto il resto è colpito direttamente dalla luce. 9

Shadow volumes (3) -1 - Determinazione dell oggetto -2 - Determinazione delle proiezioni dell oggetto -3 - Determinazione dello Shadow Volume -4 - Intersezione dello Shadow Volume con il piano 10

Ombre proiettive planari (Projected planar shadows) Classic computer graphics trick Blair MacIntyre 11

Ombre proiettive planari Dati: l equazione del piano, ax + by + cz + d = 0 la posizione della luce, (x, y, z, w) si va a calcolare la proiezione dei vertici dell oggetto sul piano in base alla posizione della luce si effettua separatamente il rendering dell oggetto dell ombra sul piano di proiezione 12

Dettagli tecnici Ombre proiettive planari Le ombre devono essere calcolate rispetto a piani infiniti Se il piano è coperto con una texture, è difficile calcolare il blending di una o più ombre (problemi di double blending) L ombra può dare problemi se calcolata senza tener conto del volume interno dell oggetto (Zfighting attributes) 13

Ombre proiettive planari Problemi legati a questa tecnica 14

Dettagli di implementazione Fase 1: Definizioni La shadowmatrix è un vettore che conterrà la matrice di ombreggiatura La lightposition definisce la posizione della luce all interno della scena float g_shadowmatrix[16]; float g_lightposition[] = { 2.0f, 6.0f, 0.0f, 1.0f }; 15

Dettagli di implementazione Fase 2: Rendering dell oggetto rendersolidteapot ( 1.0 ); 16

Dettagli di implementazione Fase 3: Calcolo della matrice d ombreggiatura 17

Dettagli di implementazione Fase 3: Calcolo della matrice d ombreggiatura Si calcola il prodotto scalare (dot product) tra il vettore parallelo al piano e quello dal punto di luce al piano: fplane[] è un vettore che contiene i 4 parametri (a, b, c, d) del piano flightpos[] è un vettore che contiene la posizione della luce definiti con 4 parametri (x, y, z, w) ; (x,y,z) è il punto sorgente di luce w è un parametro che determina se la luce è direzionale (w = 0.0) oppure posizionale (w > 0.0) 18

Dettagli di implementazione Fase 3: Calcolo della matrice d ombreggiatura Quindi si effettua il calcolo della matrice di ombreggiatura 4 x 4, che contiene i parametri con cui andremo a modificare la matrice modelview attuale Ogni parametro della matrice è il prodotto degli elementi di flightpos, di fplane e del prodotto scalare calcolato prima 19

Dettagli di implementazione Fase 4: Rendering dell ombra calcolata glmultmatrixf((glfloat *)g_shadowmatrix); gltranslatef( 0.0f, 2.5f, 0.0f ); glrotatef( -g_fspiny_r, 1.0f, 0.0f, 0.0f ); glrotatef( -g_fspinx_r, 0.0f, 1.0f, 0.0f ); rendersolidteapot ( 1.0 ); Si moltiplica la matrice di visualizzazione attuale con la ShadowMatrix Si applicano le stesse trasformazioni dell oggetto Si effettua il rendering dell ombra 20

La tecnica delle ombre proiettive Vantaggi Permette di tracciare ombre su un piano con effetti abbastanza realistici Molto veloce per scene non troppo complesse e con un numero ridotto di fonti di luce 21

La tecnica delle ombre proiettive Svantaggi Non permette di tracciare ombre di oggetti concavi sugli oggetti stessi Produce hard shadows : i contorni delle ombre sono netti (per avere ombre soft si introducono algoritmi di jittering e blending) Di un singolo oggetto si possono creare tante ombre quante sono le fonti di luce, ma il costo computazionale aumenta rapidamente La stessa cosa vale per un numero elevato di piani: se dobbiamo calcolare ombre che cadono su decine di piani diversi, le performances ne soffrono notevolmente 22