Università di Roma “La Sapienza” Algoritmi per l’illuminazione interattiva di materiali traslucenti deformabili su GPU Giacomo De Martino Relatore Correlatore Prof. Marco Schaerf Ing. Marco Fratarcangeli Anno accademico 2005/2006 Materiali Traslucenti Esempi: foglie, cera, giada, pelle, polpa della frutta, latte Indizi fenomenologici: - riflessi speculari - Non serve colore - Riaffioramento colore - “riempito” di luce Omogenei Eterogenei Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Illuminazione digitale • Equazione del rendering = trasporto di luce BSDF Lo x, Le x, fr x, , Li x, n d -Conservazione energia -Linearità -Omogeneità spaziale Differenti materiali Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Materiali Volumetrici • • • • Spessore Indice di Rifrazione Coefficiente assorbimento Coefficiente diffusione L x, S 0 S 0 a s e x , x a x Le x dx e x , x s x X 4 Facili da misurare p x , , Li x , d dx e x , x s L x s , Difficile da calcolare Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Diffusione sottosuperficiale (sss) • benche un effetto globale, è sostanzialmente locale a causa del decadimento esponenziale • Diffusione in un oggetto ha un effetto molto piccolo sull’apparenza di un altro oggetto • anche all’interno di uno stesso oggetto, ha piccolo effetto in un altro punto della superficie se la distanza tra i due punti è grande Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Proprietà della pelle 1 - Dominata da diffusione sottosuperficiale ~6% riflessione diretta, 94% sottosuperficiale - Riflessione e Diffusione sono differenti nelle lunghezze d’onda rosse verde e blu - Diffusione modellata male assumendo un singolo livello di materiale quasi uniforme - Cambio dell’indice di rifrazione tra aria e pelle - Hanno luogo riflessione e rifrazione di Fresnel Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Proprietà della pelle 2 - Luce entra in un punto ed esce in un altro (Importante!) - La superficie rugosa e oliosa ha trasmissione non uniforme (sottile) - 1/10 attraverso primo livello – La luce è già diffusa! - Tracciamento luce totale – ignora direzione - Ogni luce rifressa indietro è diffusa (uguale in ogni direzione) Strato olioso sottile Epidermide ~0.25 mm Derma Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Proprietà della pelle 3 • • • • Quanta luce a distanza r? Nome: profilo di diffusione del materiale Differente profilo per canale rosso verde, blu Collezionare luce che arriva in ogni punto e spargerla nei punti vicini Raggio incanalato Quanta luce a distanza r? r Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Spazio tessitura Conoscere quantità di luce per ogni punto dell’oggetto Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino George Borshukov (Matrix Reloaded) Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Esempio Spazio Tessitura Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Piattaforma •Tasso interattivo = 10-30 fps •Evitare pre-computazioni • GPU Observed GFLOPS • CPU Theoretical peak GFLOPS GPU! 1 ordine di grandezza 2 core CPU GPU CPU to GPU CPU to system memory GPU to graphics memory 30 GFLOPS 200 GFLOPS 1 GB/s 8 GB/s 30 GB/s Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Panoramica • • • • Circa 1,400 istruzioni per pixel 13 passate di rendering 11 mappe di colore, maschere, mappe di “disturbo”(5 mappe di dettaglio) Modello di illuminazione basato sulla fisica 5 times Render texture space light start + Shadow mapping blur + Textures horizontal vertical … blur Linear combination Texture mapping Rim & specular Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Irradianza sottosuperficiale 1 Quanta luce (e di che colore) che penetra dentro la superficie Deve essere diffusa? Thin oil layer Detail absorption layer Epidermis Dermis Lambert DL, N N L 5 5 28Rd N L N E 1 Rs 1 1 DL, E , N 1 1 23 2 2 Skin layers Ashikmin-Shirley – Lighting*sqrt(diffuseCol)enter – Lighting*sqrt(diffuseCol)exit Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Irradianza sottosuperficiale 2 • Ombre (alta freq) • Luce indiretta (bassa freq) = AO + Ambiente Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Convoluzione Hierarchical Gaussian blur Combine multiple subsurface irradiance blurred version with Different RGB weights Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Risultati Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Avvertimenti • Cuciture tessitura - Usare buon clearColor - Creare maschera cuciture e usarla nella passata finale • Correzione distorsioni accurata - Un pixel nello spazio tessitura != distanza costante del mondo reale - Troppa sfocatura porta ad “effetto cera” - Calcola mappe distorsione con derivate coord UV Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Aggiungere dettagli (meso-scale) - Dettagli pori, rughe della pelle sono importanti - CReare una mappa unica ad alta risoluzione richiede troppa memoria Bump map 1 + Bump map 2 = Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Uno sguardo da vicino Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Specular (micro-scale) -specular BRDFs have -Roughness parameter “m”(inverse relation to exponent) -Index of refraction (use 1.4) -Phong and Blinn-Phong aren’t ideal for skin Torrance-Sparrow Oily layer Epidermis Extremely small scale Schlick F u f 1 f 1 u 5 Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Correzione Gamma • Il monitor sta mentendo! • luminosità visualizzata = ValorePixel^2.2 • Foto & tessiture disegnate a mano avranno pixel non lineari • Per convertirle a lineari: - C’ = C^2.2 - sRGB se lo supporta l’hardware (Non correggere mappe che codificano informazioni non di colore) • Invertire deformazione prima di scrivere sul framebuffer - C’ = C^1/2.2 Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Evoluzione Solo mappa colore Solo sottosuperficiale finale Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Conclusions & future work • So we have a scalable skin shading tecnique (tune resolution map, render target and #layers composition) • This skin shader is good to reproduce skin in low lit environment such as closed environment or night day time; • Next: – include real-time Ambient Occlusion and real-time environement Irradiance – HDR lighting Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Grazie! Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Sommario • Obiettivo: rendering interattivo fotorealistico pelle volto umano • Studio Materiali Traslucenti • Tecniche illuminazione nelle produzioni digitali • Implementazione interattiva Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Radiant Flux Radiosity B Radiance L Irradiance E Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino BRDF • BRDF: 4D, light reflects same point hits surface L=radiance dLeωe fr ωi,ωe Li ωi cos θi dωi N ωe θi ωi dωi E=irradiance • • Reciprocity Energy conservation Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Materiali Volumetrici • Costruiamo l’equazione di rendering volumetrico Lx, x Lx, Riduzione radianza t Funzione di fase Lx, x px, , L x, d s 4 i Aumento radianza variando g Henyey-Greenstein pcos backscattering isotropic scattering forward scattering 1 g 1 g2 2 2 g cos Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino 32 Diffusione multipla Come calcolarlo? Lo... S ... L... ni i d i dAxi A 2 Lxo, o 1 Ft , o Bxo Bxo E xi Rd xi, xo dxi Facile dato B DIFFICILE!! S E xi L xi, i F , i Ni i d i Banale Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Soluzione analitica per SSS S x , ; x , Lx , n d dAx Lo xo, o i A 2 i o o i i i i i S xi, i; xo, o S 1 xi, i; xo, o Sd xi, i; xo, o i Approssimazione dipolo singolo Sd xi, i; xo, o multiplo Lo 1 1 Ft , i Rd xi xo Ft , o x , Fp , e s sLx , ds d o o i s t o i i i i 2 0 Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Jansen Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Implementazione con mappe profondità 1) I(Xin) 2) E(Xin) B(xout) L(Xout) Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Ancora… Light Depth map do 1 e di z a cos Eye Object Depth peeling per oggetti concavi Depth map Layer 0 a Layer 1 Layer 2 c b 0 depth 1 0 depth 1 0 depth Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino 1 Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino Jansen Multi livello Singolo livello Dip. di Informatica e Sistemistica -Università di Roma "La Sapienza" - Giacomo De Martino