Illuminazione Deteminae le caatteistiche della luce che aiva da un punto della scena all occhio di chi la osseva Poblema computazionalmente oneoso Fenomeni fisici coelati: Realtà Vituale: il pesente, il passato, il futuo
Illuminazione globale e locale Illuminazione globale Illuminazione locale Illuminazione dietta e indietta Solo illuminazione dietta Riflessione Multipla No Riflessione Multipla Rifazione No Rifazione Ombe Ombe possibili Realtà Vituale: il pesente, il passato, il futuo
Equazione di Rendeing Descive il flusso dell enegia enegia luminosa in una scena. Basata sulla consevazione dell enegia. enegia. a luce uscente da un punto nella diezione ωo è pai alla somma della luce emessa in quella diezione e della luce iflessa, nella stessa diezione 1 : oo oo oo a luce emessa è zeo, se il punto non è una sogente di luce. a adianza dà un idea della quantità di luce che viaggia in una ceta diezione. Il endeing può essee visto come il calcolo delle adianze lungo i aggi dietti veso il punto di vista e passanti pe i piel. 1 pe tace della tasmessa Realtà Vituale: il pesente, il passato, il futuo
Equazione di Rendeing a adianza uscente da in diezione ωo è dunque espimibile come somma della componente emessa e della isultante di tutte le componenti iflesse da ogni diezione Ω(n) BRDF Bi-diectional Reflectance Distibution Function Descive le popietà ottiche di un mateiale: misua la fazione di enegia luminosa entante In dalla diezione ωi e iflessa in diezione ωo i Radianza entante nella diezione ωi Ω(n) Semisfea di tutte le possibili ωi entanti in, centata attono a n Realtà Vituale: il pesente, il passato, il futuo
Equazione di Rendeing Peché il coseno? Attono a, il contibuto all enegia luminosa poveniente dalle vaie diezioni non è unifome... n ds = A cos(n ω ) i A ωi θ A dsω dsn Intuitivamente: l aea dell intesezione ta un aggio e la supeficie è minima sulla diezione nomale, dunque l enegia pe unità di supeficie dipende dal coseno dell angolo ta la diezione del aggio e la nomale. Realtà Vituale: il pesente, il passato, il futuo
Modelli di iflessione BRDF... belle ma pesanti! Vogliamo dei modelli di illuminazione ne più semplici, veloci da calcolae, che diano isultati visivi soddisfacenti Vettoi in gioco: Metodo di Phong (da Wikipedia) O (, v) = e (, v) + R (, v) = e (, v) + ( O AMB + O _ DIF + N _ UCI _ O _ SPC ) Realtà Vituale: il pesente, il passato, il futuo
Phong: : Componente ambiente O (, v) = e (, v) + R (, v) = e (, v) + ( R AMB + R _ DIF + N _ UCI _ R _ SPC ) Illuminazione locale: NO illuminazione indietta Nella ealtà c è una gan quantità di luce indietta Se una supeficie non vede alcuna luce, saà endeizzata come nea Teniamo conto della quantità di luce globalmente pesente nell ambiente, che aiva ad un oggetto da tutte le diezioni, con una costante: a (è una adianza). R _ AMB (, v) = k a : costante che dipende dall oggetto k a a Realtà Vituale: il pesente, il passato, il futuo
Phong: : Componente diffusa O (, v) = (, v) + e R (, v) (, v) + ( R AMB + R _ DIF + Molti mateiali appaiono ugualmente illuminati da qualsiasi diezione li si guadi Questo vuol die che la luce è iflessa unifomemente in tutte le diezioni Questo tipo di iflessione è nota come lambetiana = e N _ UCI _ R _ SPC ) In questo caso pe ogni ωi (e in paticolae pe ωi = l) la BRDF è costante, e dunque abbiamo: pe un contibuto finale (vedi eq. di endeing) quantificabile in: R _ DIF (, v) = K d d cos( n, l ) Realtà Vituale: il pesente, il passato, il futuo
Componente speculae - Phong O (, v) = (, v) + e R (, v) Mateiali con compotamento speculae Da consideazioni empiiche, Phong ha poposto di utilizzae come componente speculae: (, v) = K cos(, v) R _ SPC S dove è il aggio speculae a l ispetto a n = ( l n) n l S = e (, v) + ( R AMB + R _ DIF + n s N _ UCI _ R _ SPC ) 2 n Realtà Vituale: il pesente, il passato, il futuo
Componente speculae - Phong Il isultato è plausibile n S : shininess Realtà Vituale: il pesente, il passato, il futuo
Riflessione di Phong Riassumendo e compattando: R = K a a + N_ UCI K d ( n l ) + K Ka, Kd, Ks, ns: : caatteistiche dei mateiali a, d, s: : caatteistiche della sogente luminosa Solitamente sono espessi come tene RGB, ad eccezione della shininess (scalae) d s s ( v ) n s Realtà Vituale: il pesente, il passato, il futuo
Illuminazione globale: Ray Tacing E uno dei più famosi metodi di illuminazione globale Pe ogni piel si taccia un aggio congiungente il piel e il viewpoint Ogni aggio è polungato in tutto il view volume e se ne testa l intesezione con gli oggetti in esso contenuti: se ve ne sono multiple, si sceglie quella con l oggetto l più vicino Raggi pimai: patono dal viewpoint Raggi secondai: patono dalle intesezioni ta aggi pimai e oggetti Peché iflessi (mateiale iflettente) Pechè tasmessi-ifatti ifatti (mateiale taspaenti) Il Ray-Tacing pemette Viewpoint dunque di modellae iflessioni, taspaenze e ombe potate (shadow casting) Viewplane Realtà Vituale: il pesente, il passato, il futuo
Illuminazione globale: eal-time e tecniche di illuminazione globale sono solitamente molto oneose e ichiedono alti tempi di endeing (fino ad oggi ) Se le condizioni di illuminazione sono statiche è peò possibile consevae le infomazioni sull illuminazione, icavate da endeing anche complessi, e iutilizzale in futuo. Senza scendee toppo nei dettagli, ci sono due possibilità: Memoizzae le info sull illuminazione come pe-vete vete-colo, su mesh più complesse di quelle di patenza (tipico delle soluzioni adiosity) Memoizzale su tetue che vengono poi combinate con le alte tetue oiginaiamente pesenti nel modello (lightmaps) Svantaggi: e iflessioni speculai non possono essee simulate Realtà Vituale: il pesente, il passato, il futuo
Radiosity Realtà Vituale: il pesente, il passato, il futuo
ightmaps Realtà Vituale: il pesente, il passato, il futuo
Illuminazione globale: Image Based I metodi finoa visti: Calcolo dell enegia enegia luminosa (adianza): Appossimato Esatto (non eal-time) Campionamento dei coloi isultanti Un metodo ibido consiste nel campionae NON i coloi,, ma le infomazioni sulla adianza da un ambiente veo e memoizzale in apposite mappe (adiance map) che vengono poi usate in tempo eale. Tali mappe possono essee acquisite a divesi livelli di esposizione in modo da copie il massimo ange possibile della dinamica (High Dynamic Range maps). Immagine nomale: Bassa dinamica (appoto fa la zona più scua e quella più Chiaa) Immagine HDR: Alta dinamica Realtà Vituale: il pesente, il passato, il futuo
Illuminazione globale: HDR Pe acquisie le mappe HDR si può usae un light pobe che ifletta l ambiente l cicostante. e mappe possono essee poi mappate su un oggetto fittizio (IB envionment,, es. una sfea o un cubo) che ciconda il VE. HW gafico può fae in modo di endeizzae gli oggetti come se iflettesseo effettivamente la luce ambientale. Realtà Vituale: il pesente, il passato, il futuo
Spazi e Tasfomazioni object space MODEVIEW mati eye space PROJECTION mati clip space Pespective Divide nomalized device coodinates viewpot/depthange scale & bias window space Ognuno di questi spazi ha delle popietà utili pe cete opeazioni Gli attibuti dei vetici sono specificati in object space Il lighting dei vetici avviene tipicamente in eye space Il clipping avviene in clip space a asteizzazione avviene in window space Realtà Vituale: il pesente, il passato, il futuo
Scena in Wold space -z - z Nota: il wold space non è pevisto in OpenG Realtà Vituale: il pesente, il passato, il futuo
Scena in eye space -z - z Realtà Vituale: il pesente, il passato, il futuo
Object Space Object Space di -z Object Space di -z - - z z Realtà Vituale: il pesente, il passato, il futuo
in eye space -z - z Realtà Vituale: il pesente, il passato, il futuo
Tasfomazione delle nomali In OpenG (fied pipeline) il lighting viene eseguito tipicamente in eye space Pe valutae l equazione di illuminazione in eye space,, TUTTE le nomali devono essee tasfomate da object space in eye space e nomali peò non sono tasfomate utilizzando la matice di modelview come le posizioni Realtà Vituale: il pesente, il passato, il futuo
Tasfomazione delle nomali e taslazioni non modificano le nomali -z -z - - z z Realtà Vituale: il pesente, il passato, il futuo
Tasfomazione delle nomali e otazioni si applicano alle nomali come ai vetici -z -z - - z z Realtà Vituale: il pesente, il passato, il futuo
Tasfomazione delle nomali e scalatue unifomi sui vetici non modificano la diezione delle nomali -z -z - - z z Realtà Vituale: il pesente, il passato, il futuo
Tasfomazione delle nomali e scalatue non unifomi modificano la diezione delle nomali In modo opposto a come sono modificati i vetici, ovveo va applicata la matice invesa di quella applicata ai vetici (M v ) -z - z M v M -1 v -z No! - z -z Ok! - z Realtà Vituale: il pesente, il passato, il futuo
Tasfomazione delle nomali avoiamo con coodinate omogenee e matici 44 taslazione posizione T nomale I otazione R R scaling S S -1 Realtà Vituale: il pesente, il passato, il futuo
Tasfomazione delle nomali Ricodando che: S -1 = (S -1 ) T = S -T (matice diagonale) R = (R -1 ) T = R -T (matice otonomale ) Se la matice che tasfoma un vetice da object ad eye space è (non consideiamo le taslazioni): M v = RS alloa (vedi tabella pecedente) ) la matice che tasfoma una nomale da object ad eye space è: M n = RS -1 = R -T S -T = (RS) -T = M -T v Realtà Vituale: il pesente, il passato, il futuo
Object Space Pe-Vete Nulla ci impedisce di eseguie il lighting in object space (se possiamo contollalo diettamente) Se l oggetto viene scalato in modo non unifome si può fae lo stesso ma non è più conveniente non consideiamo questo caso Dobbiamo tasfomae la posizione della luce da eye space a object space l obj = M v -1 l eye local light souce l obj = M vt l eye infinite light souce Il vantaggio è che non dobbiamo tasfomae ogni nomale! Realtà Vituale: il pesente, il passato, il futuo
Scena in object space di -z - z Realtà Vituale: il pesente, il passato, il futuo
Scena in object space di -z - z Realtà Vituale: il pesente, il passato, il futuo
in object space -z h l n - E Ricodasi che i podotti scalai imangono invaiati finchè i vettoi sono tutti nello stesso spazio z Realtà Vituale: il pesente, il passato, il futuo
Pogammable Hadwae Pipeline 1 unlit wold space vete 1 lit clip space vete 1 un-coloed piel Vetices Standad Vete T& Shade Backface Culling Fustum Clipping 1 coloed piel Il clip space è lo spazio del view volume canonico e attuali schede gafiche possono utilizzae sia la fied function pipeline che i vete/piel shades Standad Shading Depth Test Stoe Piel Piel Shade Realtà Vituale: il pesente, il passato, il futuo