Sunteți pe pagina 1din 17

Andrei Dnescu

Descrierea

fenomenului. Algoritmi existeni:


RayMarching Construirea volumului luminat

Postprocesare
Implementare. Rezultate.

realitate, God Rays sunt coloane de aer luminate de soare ce ptrund printre nori sau alte obiecte.

Eantionarea

volumului de lumin.

Se calculeaz volumul de lumin (mesh) i harta de

umbre din perspectiva luminii.


Se

eantioneaz scena n volumului, acumulnd culorile.

punctele

interioare

Eantioanele se compar cu harta de umbre, doar

punctele luminate afectnd culoarea final.

Avantaje: Efect apropiat de realitate. Nu necesit prezena sursei de lumin n cadru. Pot fi create volume de lumin foarte complexe

(e.g. lumina strbtnd crpturi ntr-un zid).

Dezavantaje: Foarte costisitor. Raportul calitate/performan depinde de numrul

de eantioane.

Desenarea

volumului de lumin n scen.

Se creaz harta de umbre din perspectiva luminii. Se randeaz scena din perspectiva camerei.

Se construiete mesh-ul ce reprezint volumul

iluminat direct.
Se randeaz acest mesh cu blending-ul activat

peste imaginea desenat anterior.

Crearea

mesh-ului pe baza hrii de umbre.

Avantaje:

Apropiat calitativ de raymarching.


Nu necesit prezena sursei de lumin n cadru. Pot fi create volume de lumin foarte complexe.
Dezavantaje:

Greu de implementat. Necesit optimizri pentru a rula n timp real. Dependent de rezoluia hrii de umbre.

Simularea

volumului de lumin prin postprocesare n fragment shader.


Se execut i se salveaz o pre-randare a scenei, cu

sursa de lumin colorat i restul obiectelor negre.


Se randeaz scena normal in framebuffer.
Se activeaz fragment shader-ul prelucrnd prima

imagine.
Rezultatul este suprapus prin blending peste imaginea

din framebuffer i apoi este afiat.

Avantaje: Uor de realizat cu consum minim al resurselor CPU-

ului. Rezultat convingtor. Independent de geometrie.


Dezavantaje: Raportul calitate/performan depinde de numrul de

eantioane. Necesit prezena sursei de lumin n cadru. Nu este precis.

Implementarea

efectului este realizat prin metoda postprocesrii.


La pasul 1 se randeaz scena ntr-un FBO i se

calculeaz poziia luminii n spaiul ecranului.

La pasul 2 se randeaz scena normal n frame

buffer, aplicnd culorile i texturile aferente.

La pasul 3 se trece n proiecia ortografic, se

deseneaz un quad pe tot ecranul i se aplic textura salvat la pasul 1. Imaginea randat se trece prin fragment shader, mbinndu-se apoi cu imaginea din framebuffer.

n cadrul fragment shader-ului se aplic fiecrui

fragment urmtoarea transformare:

=
=0

__

Distana ntre eantioane este controlat de

factorul densitate din formula:


1 = _

Efectele

obinute sunt foarte bune, metoda fiind folosit n prezent n multe jocuri 3D.

M. Billeter, E. Sintorn, U. Assarsson - Real Time Volumetric Shadows using Polygonal Light Volumes
http://www.cse.chalmers.se/~uffe/volumetricshadows.pdf

Kenny Mitchell - Volumetric Light Scattering as a PostProcess, GPU Gems 3


http://http.developer.nvidia.com/GPUGems3/gpugems3_ch13.html

Wikipedia Volume Ray Casting

http://en.wikipedia.org/wiki/Volume_ray_casting

S-ar putea să vă placă și