Úkolem je navrhnout a implementovat jeden nebo více vhodných demo-doplňků do našeho paprskového zobrazovače.
1. nejvhodnější by bylo ukazovat paprsky ve vedlejším okně, spolu s vlastní
scénou nakreslenou z jiného pohledu. Kromě paprsků a průsečíků se mohou zobrazovat
normálové vektory. Kresba scény z vedlejšího pohledu může být neúplná, např.
založená na již dříve spočítaných průsečících (point-based graphics).
2. hloubková mapa z pohledu pozorovatele nebo jako 3D graf/cloud
interaktivně otáčený v sousedním okénku.
3. .. cokoli, co lze vytěžit z aktuálně vypočítaných objektů
Intersection
4. bude potřeba si alespoň nějaký triviální adaptivní renderer napsat, nebo
počítat jen celkový počet paprsků na pixel
5. aplikace bez formuláře schopná např. běžet na Linuxu pod Mono.
Scéna by byla nejlepší načítaná (viz 6.), parametry zadávané v nějakém scriptu
a/nebo v command-line argumentech.
6. vymyslet a implementovat systém na persistenci scén pro Ray-Tracing
(IRayScene). Možná by stačilo použit mechanismy reflexe z C#, nejlepší
by bylo přidat též možnosti nastavení parametrů ray-traceru (rozlišení,
anti-aliasing, nastavení času Time, .. viz formulář projektu
048rtmontecarlo).
Nejlepší by bylo vymyslet nějaký systém, jak by se váš program dal napojit (přes delegáty) do libovolného paprskového zobrazovače z naší knihovny. Aby nebyl závislý na konkrétním projektu. Samozřejmě malé úpravy kódu všech projektů by se musely udělat, ale jen např. přidání tlačítka do formuláře, kterým by se vyvolal nový formulář s nastavením parametrů apod.
V příslušném projektu modifikujte ty soubory, které bude potřeba změnit. Snažte se, aby jich bylo co nejméně (ale samozřejmě design formulářů se asi musí změnit/přidat..).
Pro jistotu pošlete kompletní VS projekt. Přiložte návod a příp. nějaké ukázky.
Odevzdat do: 3. 7. 2016
6 až 30 bodů
Nanvrhovaný startovací projekt: 048rtmontecarlo.
Copyright (C) 2015-2016 J.Pelikán, last change: 2020-05-16 23:04:24 +0200 (Sat, 16 May 2020)