Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoPiera Valentino Modificato 10 anni fa
1
RADIOSITY Algoritmo di calcolo della luce realistica
DENIS COSSUTTA LAUREA SPECIALISTICA INGEGNERIA INFORMATICA A.A. 2005/2006
2
INTRODUZIONE meccanismo ray tracing utilizzato per modellare la riflessione speculare e la rifrazione senza dispersione, facendo uso di una luce ambientale non direzionale, che tiene conto di tutti i contributi dell’illuminazione globale e le radiazioni e le riflessioni tra oggetti? tutta l’energia emessa o riflessa da ogni superficie è responsabile della sua riflessione e dell’assorbimento da parte di altre superfici radiosity = somma dei rapporti in base ai quali la superficie emette energia, riflettendola e trasmettendola ad ogni altra superficie
3
RADIOSITY le superfici considerate nel metodo di radiosity possono emettere luce, a differenza di quelle considerate nel ray tracing: ognuna di esse può essere modellata come una sorgente luminosa estesa, avente un’area finita Il termine radiosità indica la quantità di energia che lascia una superficie, data dalla somma della quantità di energia che emette essa stessa e la quantità di energia ricevuta da altre superfici che riflette metodo radiosity – modello di illuminazione fisico che assume che tutte le superfici siano dei riflettori di luce diffusa costante e che le interazioni tra di esse si risolvano usando equazioni lineari. La soluzione di questo sistema di equazioni lineari è l’output finale che può essere usato per renderizzare le superfici della scena
4
RADIOSITY Il metodo considera la suddivisione o tessellamento dell’ambiente in un numero finito di elementi di dimensione limitata, chiamati patch, ognuno dei quali emette e riflette luce in modo uniforme sull’intera area una singolo patch emana : luce diretta e/o indiretta luce diretta : luce che l’oggetto riceve direttamente dalla sorgente luminosa luce indiretta : luce riflessa su un oggetto da altri oggetti
5
RADIOSITY : equazione generale
negli altri algoritmi la luce veniva trattata separatamente dalle superfici che illuminava il radiosity permette a qualsiasi superficie di emettere luce, in modo che tutte le sorgenti di luce vengono considerate come se avessero un’area ipotizziamo di suddividere l’ambiente in un numero finito n di patch di area finita, che emettono e riflettono luce uniformemente in tutta la loro area. Si ha che per ogni patch i:
6
RADIOSITY : equazione generale
dove: Bi è la radiosità totale emessa dalla superficie i Ei è la luce emessa propriamente dalla superficie i ρj è un valore adimensionale e corrisponde al valore di riflettenza della superficie che determina la frazione dell’energia totale incidente rflessa dalla superficie i Bj Aj è l’energia totale emessa dalla superficie j con area Aj (radiosità per area) Fj-i è la frazione di energia che lascia la superficie j e che investe la superficie i. Questo valore tiene conto della forma e dell’orientamento di ogni superficie ed è chiamato fattore di forma
7
RADIOSITY : equazione generale
l’equazione indica la relazione esistente tra l’energia emessa da una superficie unitaria e l’energia entrante nella superficie unitaria, vista come somma della luce direttamente emessa e della luce riflessa la luce riflessa viene determinata calcolando, rispetto al coefficiente di riflessione della patch, la somma della luce incidente, che non è altro che la somma della luce che lascia un’unità di area della patch j-esima e che raggiunge la patch i-esima
8
RADIOSITY : equazione generale - semplificazione
In ambienti diffusi vale la seguente relazione di reciprocità tra i fattori di forma Fi-j Fj-i : Fi-j Ai = Fj-i Aj Si ottiene quindi la seguente formula finale:
9
RADIOSITY : equazione generale – forma matriciale
in questo modo, risolvendo il sistema, troviamo la radiosità per ogni patch che può essere resa da qualsiasi punto di vista con un qualsiasi algoritmo di visualizzazione una volta ottenuto il valore di radiosity della patch, si possono calcolare i valori per ogni vertice. I casi sono due: - se un vertice è all’interno di una superficie, gli viene assegnato il valore medio della radiosità delle patch che lo condividono - se il vertice è sui bordi della superficie, si trovano le patch che lo condividono e il vertice interno piu vicino. Poi si confrontano la media della radiosità della patch con la media della radiosità dei due vertici
10
RADIOSITY : esempio Si consideri la figura sottostante:
la radiosità del vertice e è data da : Be =(B1 + B2 + B3 + B4)/4 per calcolare la radiosità del vertice b sui bordi per prima cosa si deve trovare il vertice interno più vicino che in questo caso è e. Poi si impone (Bb + Be)/2=(B1 + B2)/2 da cui si ricava Bb =B1 + B2 - Be per calcolare la radiosità del vertice a sui bordi, prima si deve trovare il vertice interno più vicino che in questo caso è e. Poi si impone (Ba + Be)/2= B1 da cui si ricava Ba =2B1- Be
11
RADIOSITY : calcolo dei fattori di forma
I fattori di forma rappresentano la misura di quanta luce proveniente dalla patch j colpisce una patch i Cohen e Greenberg implementarono un algoritmo per approssimare i form factors
12
RADIOSITY : calcolo dei fattori di forma
Il fattore di forma da un’area differenziale dAi ad un’area differenziale dAj , dove Hij può assumere valori 0 o 1 a seconda che dAj sia visibile o meno da dAi è data da:
13
RADIOSITY : calcolo dei fattori di forma
Per determinare Fdi,j , cioè il fattore di forma da un’area differenziale dAi ad un’area finita Aj , integriamo sull’area della patch j In questo modo il form factor da Ai ad Aj è l’area media dell’equazione precedente sulla patch i
14
RADIOSITY : approssimazione dei form factors
se noi assumiamo il punto centrale di una patch come rappresentante di tutti gli altri suoi punti, possiamo approssimare Fi,j con Fdi,j, computato per dAi nel centro della patch i-esima Alcuni studiosi hanno cercato un modo più semplice per calcolare Fdi,j Nusselt ha mostrato che questa quantità si può calcolare mediante due proiezioni successive: innanzitutto bisogna proiettare quelle parti di Aj che sono visibili da Ai su una semisfera unitaria, centrata in dAi, successivamente quest’area sulla superficie della semisfera viene proiettata ortograficamente sul cerchio unitario che costituisce la base della semisfera
15
RADIOSITY : approssimazione dei form factors - Nusselt
16
RADIOSITY : approssimazione dei form factors – Cohen e Greenberg
Cohen e Greenberg proposero di proiettare Aj nella metà superiore di un cubo centrato su dAi con la faccia superiore parallela alla superficie. Ogni faccia dell’ ‘emicubo’ è divisa in piccole celle quadrate di ugual area Aj viene quindi proiettato sulle facce dell’emicubo Si pensi ad ogni faccia del cubo come una pellicola su cui viene impresso ciò che una patch vede in ognuna delle 5 direzioni (5 facce dell’emicubo)
17
RADIOSITY : approssimazione dei form factors – Cohen e Greenberg
Ad ogni cella p dell’emicubo è associato un valore del fatore di forma: Dato un sistema di riferimento per il semicubo, la cui origine è posta nel centro della faccia inferiore, otteniamo: Da cui si ha che:
18
RADIOSITY : approssimazione dei form factors – Cohen e Greenberg
Per una faccia laterale perpendicolare all’asse x dell’emicubo abbiamo che: Da cui si ha che: Si può approssimare Fdi,j per qualsiasi patch j sommando i valori di ∆Fp associati ad ogni cella p nelle proiezioni sull’emicubo di Aj
19
RADIOSITY : substructuring
Per migliorare il risultato di una soluzione radiosity, si deve incrementare il numero n di patch, ma in questo modo si andrebbe ad aumentare il tempo di calcolo poiché la complessità è O(n2) Per evitare di incrementare in modo quadratico le suddivisioni delle patch si suddivide in modo adattativo le patch in sotto patch solo nelle zone in cui si trova un gradiente di radiosità alto
20
RADIOSITY : substructuring
ogni qualvolta viene suddivisa una patch i, i form factor Fsj da ogni sottopatch s a ogni patch j vengono calcolate mentre ogni form factor delle patch alle sottopatch di i non vengono calcolate dopo che una patch i viene suddivisa, i valori calcolati precedentemente di ogni form factor della patch alle altre sono sostituiti da un valore più accurato calcolato sulle m sottopatch di i la radiosità di ogni sottopatch s di una patch i può essere calcolata come:
21
RADIOSITY : substructuring
l’algoritmo può iterare suddividendo sempre più le patch dove c’è un’alto gradiente di radiosità fino al punto di raggiungere un risultato soddisfacente le radiosità finali delle sottopatch saranno poi usate per determinare la radiosità dei vertici
22
RADIOSITY : raffinamento progressivo
il costo dell’algoritmo di radiosity visto fino a questo momento è molto elevato l’idea di base sarebbe creare una prima immagine non accurata e migliorarla in seguito usando un algoritmo incrementale con la definizione attuale di radiosity questo meccanismo non è realizzabile alcuni studiosi tuttavia hanno sviluppato un algoritmo per il raffinamento progressivo di radiosity, senza la necessità di precalcolare e memorizzare i fattori di forma le equazioni lineari vengono risolte in modo progressivo
23
RADIOSITY : raffinamento progressivo
Le differenze fra i due metodi sono perciò le seguenti: Modello classico Raffinamento progressivo Il calcolo della radiosity della patch i-esima viene basato sulla stima delle altre patch, raccogliendo la luce dell’ambiente Si considera invece la radiosity emanata da una patch verso il resto dell’ambiente, piuttosto che quella ricevuta Ogni termine dell’equazione di radiosity esprime l’effetto della patch j sulla radiosity della patch i Bi dovuto a Bj è uguale a ρjBj Fij , per ogni j Si vuole determinare: Bj dovuto a Bi è uguale a ρjBi Fji , per ogni j
24
RADIOSITY : raffinamento progressivo
Il metodo tradizionale raccoglie la luce del resto dell’ambiente sulla generica patch, mentre l’approccio del raffinamento progressivo emana la radiosità da una patch verso l’ambiente il nuovo calcolo però richiede la conoscenza di Fji ,cioè del fattore di forma dell’area Aj all’area Ai, da calcolare in semicubi separati, sfruttando però la relazione esistente tra fattori di forma reciproci possiamo dedurre che l’effetto su Bj dovuto a Bi è uguale a: per ogni j per risolvere questa equazione per ogni j, sono necessari soltanto i form factors calcolati usando un solo emicubo centrato sulla patch i
25
RADIOSITY : raffinamento progressivo
se i fattori di forma possono essere calcolati velocemente, allora la memoria da essi occupata può essere rilasciata non appena la radiosity da essi emanata viene lanciata nell’ambiente ad ogni passo dell’algoritmo dobbiamo avere a disposizione memoria solo per un singolo semicubo e per i suoi fattori di forma Nell’iterazione, le patch più significative, cioè che contribuiscono ad illuminare maggiormente le altre, vengono calcolate prima mentre quelle con poca energia, cioè che hanno meno impatto sulle altre, sono lasciate per ultime l’algoritmo itera fino a quando non si raggiunge una tolleranza accettabile
26
RADIOSITY : illuminazione ambientale
alcuni studiosi hanno proposto di aggiungere un termine di illuminazione ambientale per compensare la bassa luminosità delle immagini iniziali un modo per stimare questo termine è quello di usare una somma pesata delle patch che ancora non hanno emanato radiosità Per prima viene calcolata una riflessione diffusa media questa equazione viene usata per calcolare un fattore di riflessione complessivo R che tenga conto dei cammini differenti attraverso cui l’energia può viaggiare da una patch all’altra:
27
RADIOSITY : illuminazione ambientale
Infine, una stima del termine ambientale viene eseguita facendo riferimento a quest’ultima quantità R: Questo termine ambientale viene poi utilizzato come argomento per calcolare la radiosità della patch:
28
RADIOSITY : esempi immagine senza radiosity immagine con radiosity
il fascio di luce si ferma alla parte della luce rimbalza prima iterazione, lasciando al illuminando anche gli oggetti buio gli oggetti 2 e e 3 con intensità decrescente con il prolungarsi delle iterazioni
29
RADIOSITY : esempi Queste tre ripetizioni della stessa immagine mostrano lo stato di avanzamento del metodo a raffinamento progressivo di radiosity: la prima immagine viene prodotta alla prima iterazione, la seconda alla seconda iterazione e la terza immagine alla quarta iterazione
30
Riferimenti bibliografici
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.