Úkolem je implementovat alternativní generátor paprsků (kameru, interface ICamera) do našeho paprskového zobrazovače. Panoramatickou kameru začleňte do ukázkové scény a vyzkoušejte, můžete pro lepší demostraci vyrobit vlastní bohatší scénu.
Jako základ poslouží projekt 048rtmontecarlo-script (nebo 048rtmontecarlo)
z repository grcis.
Je připravena aplikace, která v jednoduchém okně zobrazuje obrázek spočítaný
ray-tracingem. Definice scény je v kódu, tu budete muset pro testování
Vaší nové kamery upravit (minimálně vyměnit tu kameru).
Pro doplnění Vaší implementace použijte zdrojový soubor
MonteCarloRT.cs, do něj budete psát Váš nový kód a nakonec mi jej odevzdáte.
I definici scény (CustomScene.TestScene()) tam najdete. Této konstrukční
funkci se předává též textový parametr Param: z formuláře.
Pokud byste chtěli využít možnosti definovat scénu scriptem, použijte projekt
048rtmontecarlo-script a popis scény vložte do nového .cs
souboru (inspirace viz vestavěné scény z adresáře data/rtscenes/).
I do skriptu je předán textový parametr Param: z formuláře.
Názorný přehled relevantních komponent objektového návrhu našeho ray-traceru najdete také v této prezentaci.
Budete muset vyrobit minimálně jeden panoramatický obrázek, který Vám přijme Facebook nebo Google a půjde prohlížet na WWW v panoramatickém režimu. Přečtěte si podrobný návod, obrázek pošlete na Váš oblíbený server a odevzdejte URL na veřejnou stránku, kde půjde prohlížet.
Válcová perspektiva - přímý výpočet
širokoúhlého (panoramatického) obrázku, místo roviny se promítá do části pláště válce, v extrémním
případě do celého 360° okolí kolem "fotoaparátu".
360°/180° "equirectangular" panorama -
panorama obsahující kompletní pohled do 3D světa z místa pozorovatele.
Pro použití v realtime/HDR počítačové grafice se používá jednoduché mapování [azimut,výška].
Musíte poslat upravený zdrojový soubor MonteCarloRT.cs. Zajímavá nastavení a polohy kamery začleňte do nových definic scén přístupných přes list-box v naší aplikaci.
Pokud chcete, můžete Vaši scénu odevzdat ve formě CS-scriptu (viz projekt 048rtmontecarlo-script), tento script přiložte jako druhý soubor. Formát scriptu: viz vestavěné scény z adresáře data/rtscenes/.
Navíc musíte minimálně jedno panorama dovést do finální podoby - odeslat ho na některý obrázkový server (např. i Google, Facebook, ..) a odevzdat veřejně přístupné URL, kde ho půjde prohlížet v panoramatickém režimu.
Odevzdat do: 21. 4. 2019
Základ: 18 bodů (fungující 360°/180° generátor paprsků, libovolné volitelné rozlišení, panoramatický obrázek na FB/Google),
až 4 body: bonus za parametrizaci zorných úhlů,
dalších až 8 bodů: bonus za vlastní zajímavé demonstrační scény..
Visual Studio projekt: 048rtmontecarlo-script nebo 048rtmontecarlo
Modifikujte a odevzdejte soubor: MonteCarloRT.cs
Do funkce InitializeScenes() zadejte své jméno!
Copyright (C) 2011-2019 J.Pelikán, last change: 2020-05-16 23:04:24 +0200 (Sat, 16 May 2020)