Comenius University > Faculty of Mathematics, Physics and Informatics > Department of Computer Science | |
Dr. Tomas Plachetka |
|
Rocnikove projektyVseobecne informaciePocitacova grafika inakPravidelne stretnutia: pondelok 10:40, M218 Nulta verzia projektu (originalny projekt SunFlow v0.02.2, (c) Christopher Kulla): Pociatocna verzia projektu pg_inak (v Eclipse): V pociatocnej verzii pg_inak sa udiali oproti originalnemu SunFlow v0.02.2 nasledujuce zmeny:
Na tomto mieste ideme projekt pg_inak rozdelit na 2 podprojekty, CONVERTER a RENDERER. Ideou je pouzivat program CONVERTER ako prototyp modelovacieho programu, v ktorom sa vytvara vstupna 3D scena pre program RENDERER (idealnym cielom by bolo vytvorenie modelovacieho a zaroven renderovacieho programu, v ktorom by 3D modelovanie bolo interaktivne, t.j. nieco na sposob 3D Studio ci TrueSpace; tento ciel je vsak zatial utopisticky). Technicky toto rozdelenie znamena, ze skutocne vzniknu dva nezavisle projekty ci programy. (Tieto pravdepodobne neskor zlucime znovu do jedneho programu, ale tomuto zlucovaniu sa budeme venovat neskor.) Oba podprojekty sa tykaju zmeny malej casti povodneho programu SunFlow, ktora zabezpecuje citanie vstupnych dat. Casovy plan je implementovat oba projekty najneskor do piatku 17.3. Cielom projektu CONVERTER je nacitat (povodnym parserom) vsetky povodne vstupne data (subory .sc v sunflow.zip) do pamate a vyrobit novy subor .sr, ktory obsahuje seriovany zoznam geometrickych objektov classu Intersectable. Pritom treba mysliet na to, ze kazdemu geometrickemu objektu je priradeny material (shader). Preto nazov materialu zo suboru .sc treba zapamatat ako string v seriovanej verzii objektu. Po tejto konverzii dat z .sc suboru do .sr suboru ma konvertovaci program skoncit. Cielom projektu RENDERER je nacitat (novo vytvorenym parserom) subor .sr (vyrobeny programom CONVERTER), a taktiez povodny subor .sc, pricom novy parser bude ignorovat konstrukty "object{...}" (tie su totiz v seriovanom .sr subore). Napriek tomuto ignorovaniu treba zabezpecit priradenie materialov (shader) z .sc suboru geometrickym objektom z .sr suboru. Pre tento ucel sa bude vyuzivat string v seriovanych geometrickych objektoch, ktory identifikuje meno materialu v .sc subore. Po tomto citani ma program RENDERER robit presne to, co robi povodny SunFlow program, t.j. vyrobit okno a renderovat don obrazok. V samotnom renderovacom algoritme netreba robit ziadne zmeny, staci ho zavolat. Warningom, ktore su reportovane kompilatorom, netreba zatial venovat pozornost; nemaju ziaden vplyv na funkcnost a zbavime sa ich neskor. Experimentovat doporucujem so suborom cornell-box01.sc (je najmensi a neobsahuje ziadne textury). V cgdiff_20060320.zip je pociatocna verzia projektu CONVERTER, ktora je predsa len totozna s pociatocnou verziou projektu RENDERER. Do menu pribudla polozka Import/Export, pod ktorou su 2 subpolozky, ktore zodpovedaju projektom CONVERTER a RENDERER.CONVERTERProjekt CONVERTER je zaveseny v menu Import/Export/Open and Export. Pre ucely projektu CONVERTER treba dorobit vazbu na materialy (Shader), lebo shaders nechceme (zatial) seriovat, a dorobit seriovanie geometrie, ktora je priradena svetelnym zdrojom (vid napr. TriangleAreaLight). Vsetko ostatne funguje, t.j. pri citani sceny sa vyrobi .sc.sr file (v directory, kde je povodny .sc file).RENDERERProjekt RENDERER treba zavesit do menu Import/Export/Import...Podprojekty CONVERTER+RENDERER ukonceneOba podprojekty, CONVERTER a RENDERER, su uspesne integrovane do jedneho programu. V cgdiff_20060424.zip je aktualna verzia projektu (kompletne menu Import/Export funguje korektne).Pridavanie dalsich geometrickych tvarov do projektuZaverecne prace pozostavaju z 2 uloh: 1.vytvorenie noveho geometrickeho tvaru (treba "odkukat" ako je urobeny napr. class Sphere); 2.vytvorenie sceny, ktora ten novy geometricky tvar pouziva. Pokial ide o vyber noveho tvaru a implementaciu priesecnikov s lucom, doporucujem inspirovat sa implementaciou POV-Ray 3.1g (povray31g.zip).
|