Úkolem je doplnit do existující implementace Mitchellova algoritmu (vzorkování v rovině) vhodnou geometrickou vyhledávací strukturu, aby byl výpočet řádově urychlen. Mitchellův algoritmus nejlepšího kandidáta je popsaný v článku Don P. Mitchell: Spectrally optimal sampling for distribution ray tracing.
Jako základ poslouží projekt 077mitchell z repository grcis. Je připravena aplikace, ve které lze spouštět různé vzorkovací algoritmy v rovině (po dvou variantách náhodného vzorkování a Mitchellova algoritmu). Hustota pravděpodobnosti je buď uniformní, nebo lze vybrat několik možností včetně řízení vstupním rastrovým obrázkem. Aplikace má několik dalších přirozených funkcí, zobrazování a export vygenerovaných souborů vzorků, nastavování základních parametrů vzorkování (počet vzorků N, semínko náhodného generátoru seed nebo rozlišení visualizací).
Vzorkovací algoritmy jsou třídy implementující interface ISampling, jejich ukázky najdete v souborech Samplings.cs a Mitchell.cs. Vstupní řídící hustota pravděpodobnosti je třída s interface IPdf.
Pozornost soustředíme na Mitchellův vzorkovací algoritmus implementovaný ve třídách MitchellSampling (uniformní hustota pravděpodobnosti) a MitchellDensitySampling (libovolná hustota pravděpodobnosti). Po stisku tlačítka Generate se spustí metoda GenerateSampleSet(), výsledkem je sada vzorků požadovaných vlastností. Oblast umisťování vzorků je jednotkový čtverec [0,1]2. Kvůli charakteru Mitchellova algoritmu - generování N.K kandidátů a jejich porovnávání s existujícími vzorky - je algoritmus velmi pomalý.
Všechny úpravy programu jsou soustředěny ve zdrojovém souboru Mitchell.cs. Je potřeba zejména:
Přehledné shrnutí zdrojů informací:
Don P. Mitchell:
Spectrally optimal sampling for distribution ray tracing
Prezentace z přednášky PRG
Pelikán:
Náhodné rozmisťování bodů v rovině (příspěvek na CSGG 2014)
Pelikán:
Náhodné rozmisťování bodů v rovině (prezentace z CSGG 2014)
Odevzdat do: 14. 12. 2014
10 bodů (neadaptivní urychlení pro uniformní hustotu pravděpodobnosti)
10 až 15 bodů navíc za adaptivitu (vzorkování řízené hostotou)
a obecnost (toroid apod.)
Visual Studio 2010 projekt: 077mitchell
Modifikujte a odevzdejte soubor: Mitchell.cs
Do komentáře na první řádce napište své jméno!
Nezapomeňte popsat parametry a alespoň stručně upřesnit metodu.
Copyright (C) 2014 J.Pelikán, last change: 2020-05-16 23:04:24 +0200 (Sat, 16 May 2020)