Úloha 047: Demo-doplňky pro ray-tracing

Úkolem je navrhnout a implementovat jeden nebo více vhodných demo-doplňků do našeho paprskového zobrazovače.

Náměty

  1. Vizualizace stromu odrazu paprsku při výpočtu jednoho pixelu (levé tlačítko myši na obrázek)
  2. Spočítání a zobrazení hloubkové mapy
  3. Visualizace normálových vektorů, texturových souřadnic, materiálových konstant, atd.
  4. Spočítání a zobrazení regionů adaptivního vzorkování (hash hodnota), vyhodnocení adaptivního převzorkování, počet paprsků potřebných pro jednotlivé pixely
  5. Command-line interface k Ray-traceru
  6. Systém ukládání a načítání scén

Detaily

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.

Co modifikovat

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..).

Co odevzdat

Pro jistotu pošlete kompletní VS projekt. Přiložte návod a příp. nějaké ukázky.

Termín

Odevzdat do: 3. 7. 2016

Body

6 až 30 bodů

Projekty

Nanvrhovaný startovací projekt: 048rtmontecarlo.


Copyright (C) 2015-2016 J.Pelikán, last change: 2016-05-18 12:17:06 +0200 (Wed, 18 May 2016)