next up previous contents
Next: A.2 Object Up: A.1 Scene Previous: Definicija Vsebina: contents

Metode

Scene:: Scene()

Konstruktor razreda za opis scene. Nastavi zacetno barvo ozadja, utez pomembnosti zarka, velikost zaokrozitvene napake in najvecjo globino rekurzivnega sledenja zarku.

Scene::~ Scene()

Destruktor razreda zbrise vse alocirane objekte (primitivi, luci).

unsigned char* Scene::Screen ()

Ta metoda generira primarne zarke, ki se rekurzivno odbijajo in lomijo do predpisanega maksimalnega stevila. Rezultat se zapisuje v linearni RGB pomnilnik, ki ga po koncanem sledenju metoda tudi vrne v obliki vektorja nepredznacenih trojic bytov RGB. Uporabnik mora po uporabi sam sprostiti vrnjeni vektor.

int Scene::Shadow( vec3& rayDir, double tMax)

Testira obstoj sencnega zarka iz rayOrg v smeri rayDir. Ce svetloba ni blokirana, vrne 1, sicer je zarek v senci in zato vrne 0. Pri ugotavljanju sencnih zarkov je potrebno za izbrano smer preveriti prav vse objekte, ali obstaja presek. Ker se lahko luc nahaja tudi v notranjosti objektov ali pa obstajajo objekti tudi za lucjo, se z argumentom tMax omeji najvecja dolzina testiranega zarka. tMax torej predstavlja razdaljo od rayOrg do testne luci v smeri rayDir.

int Scene::Trace(int depth, double weight, vec3& rayOrg,
\ RGBColor& color)

Osnovna rekurzivna rutina, ki sledi zarku od izhodisca rayOrg v smeri rayDir. Maksimalno stevilo odbojev in prehodov se kontrolira z depth. Akumulirani prispevek sekundarnih zarkov je podan z weight. Izracunana barva zarka se vrne z vektorjem color. Metoda zdruzuje sencenje tocke po Phongovi metodi in generiranje rekurzivnih zarkov za odbito in prepusceno svetlobo.

void Scene::Describe()

Opise lastnosti scene. Na cerr izpise vsebujoce objekte, lokacije luci in parametre gledanja. Uporablja se pri testiranju in kontroli s stikalom -d pri zagonu programa.



Copyright © 1995 Leon Kos, Univerza v Ljubljani