Model distribucije reflektiranog svjetla
Izvedba
 

Uvod
Teorija
Izvedba
Rezultati
Literatura
Datoteke

 

 

 

 

 


Izvedba

Kao jezik za programsku implementaciju korišten je C++, dok je za pisanje programa za sijenčanje korišten HLSL. Od tehnologija, za iscrtavanje se koristi Direct3D, za izradu GUI-a korišten je DXUT dok su ostali zahtjevi pokriveni s Win32 API-jem i STL-om. Struktura samog programa proizlazi iz algoritma čiji su osnovni korac:

1. Generiranje uzoraka.

2. Računanje koeficijenata prijenosne funkcije ili koeficijenata BRDF-a.

3. Računanje koeficijenata funkcije distribucije svjetla.

4. Iscrtavanje scene.

 

 

Generiranje uzoraka

Generiranje uzoraka izvedeno je preko klase SampleGenerator. Od klase se očekuje da za zadani broj uzoraka generira nasumične točke na jedinicnoj sferi prema uniformnoj razdiobi. Uz generiranje samih točaka klasa također računa vrijednosti funkcije sfernih harmonika u danim točkama za zadani broj pojaseva.

 

 

Raćunanje koeficijenata prijenosne funkcije ili BRDF-a

Potrebno je naglasiti da je ovaj korak opcionalan. Ako se koristi Ramamoorthi– Hanrahan riješenje ovaj korak je suvišan jer kako je pokazano prijenosna funkcija se računa u lokalnom koordinatnom sustavu što omogucava jednostavno izracunavanje integrala koristeci Byerly-vu formulu. Za klasičnu metodu s druge strane, potrebno je izračunati prijenosnu funkciju. Izračun se vrši tako da se normala množi sa svakom točkom uzorka, taj proces je izuzetno vremenski zahtjevan ali omogućava izvedbe složenih prijenosnih funkcija koje npr. ukjučuju funkciju vidljivosti. Kako se koeficijenti razlikuju za svaki vrh klasa takoder upisuje podatke o koeficijentima u strukturu vrhova. Uz računanje jednostavene prijenosne funkcije oblika cosTheta.JPG, klasa omogucuje računanje produkta brdfFunc.JPG.

 

 

Računanje koeficijenata funkcije distribucije svjetla

Za ovaj zadatak zadužena je klasa LightProbe. Prvo je potrebno učitati teksturu u kojoj se spremjeni podatci o osvjetljenju scene u tu svrhu se koriste sferne mape. Koordinate točaka uzoraka preslikavaju se u koordinate slikovnih elemenata teksture  gdje se boja preračunava u koeficijente sfernih harmonika.

 

 

 

© Marko Bačić, lipnja 2010.