Terrain Processing on Modern GPU - Computer Graphics Group ...
Terrain Processing on Modern GPU - Computer Graphics Group ...
Terrain Processing on Modern GPU - Computer Graphics Group ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Rozdíl mezi TIN a výškovou mapou je zřejmý – zatímco TIN jsme uvedli jako implicitní funkci,<br />
výšková mapa je skutečná funkce definovaná na dvourozměrné doméně, a tedy každému prvku<br />
domény odpovídá pouze jedna funkční hodnota. Z toho je patrné velké omezení výškových map –<br />
nemůžeme jejich pomocí vyjádřit některé prvky ve skutečné krajině běžné – převis, jeskyně<br />
apod. S tímto nedostatkem se vývojáři a designéři zpravidla vypořádávají pomocí objektů<br />
„připojených“ k terénu, reprezentovaných obecnější datovou strukturou. Stejně jako hlavní<br />
nedostatek výškových map, je snadné uvidět i výhody, které s sebou tato struktura nese. Předně<br />
je pravidelná, proto se s ní lépe pracuje – lépe se prochází, ukládá i komprimuje. Dále si<br />
uvědomme, že na zadání jednoho bodu v TIN potřebujeme 3 hodnoty (souřadnice<br />
v trojrozměrném prostoru), ale na zadání bodu ve výškové mapě pouze jednu, a to její funkční<br />
hodnotu (souřadnice v námi zvolené souřadné soustavě). Hodnoty a jsou dány implicitně<br />
dotazem.<br />
Dalším významným rozdílem TIN a výškové mapy je přesnost aproximace reprezentovaného<br />
terénu, která závisí na geometrii vzorových dat. Rozlišení výškové mapy je k<strong>on</strong>stantní po celé její<br />
ploše, zatímco pro TIN je možno dosáhnout adaptivního chování podle geometrie dat. Budeme-li<br />
kupříkladu reprezentovat krajinu obsahující vysoká pohoří i velké rovné planiny, budeme se<br />
v případě výškové mapy muset rozhodnout pro nějaký kompromis mezi ztrátou informace<br />
v oblasti hor kvůli podvzorkování, a ukládání přebytečných dat v ostatních oblastech kvůli<br />
nadvzorkování rovných ploch. Paralelu obrazové funkce jsme již použili, takže na ni můžeme<br />
navázat, představit si terén jako spojitou funkci a využít termínů a tvrzení z teorie zpracování<br />
obrazu nebo signálu obecně. Víme-li, že původní data jsou frekvenčně omezená, a to zpravidla<br />
jsou, pokud zrovna nepracujeme s daty generovanými nějakým fraktálovým generátorem, pak ze<br />
Shann<strong>on</strong>ova vzorkovacího teorému 7 umíme určit velikost výškové mapy potřebné<br />
k bezchybnému zachycení původních dat. Tato velikost však může být zbytečně nadsazená právě<br />
proto, že nezohledňuje lokální chování, ale pouze celek. Můžeme si tedy představit různé terény,<br />
které půjdou reprezentovat lépe pomocí TIN, jiné pomocí výškových map, obecný závěr však<br />
dělat nebudeme. Intenzivnímu srovnání se věnuje například (2), kde je závěr k našemu podivu<br />
kladný pro výškové mapy, neboť pro zadanou velikost dostupné paměti aproximují obecný terén<br />
přesněji než TIN. Nutno však dodat, že přesnost reprezentace závisí velmi na algoritmu, kterým<br />
vznikla při zpracování původních dat.<br />
Doplníme ještě, že existuje i tzv. izometrická verze výškové mapy. Tato alternativa představuje<br />
mřížku definovanou na dvou osách svírajících úhel 60 stupňů (viz Obrázek 2.2). Triangulace<br />
povrchu pomocí pravoúhlé mřížky silně trpí změnami geometrie prováděnými přes diag<strong>on</strong>ály.<br />
Použitím izometrické mřížky dospějeme obecně k vizuálně hladším povrchům. Nevýhodou<br />
takovéto mřížky je nutný přepočet souřadnic, neboť textury jsou ukládány jako pravoúhlé<br />
mřížky. McGuire a Sibley (3) navrhují posunout liché řádky o polovinu délky hrany. Ve svých<br />
měřeních zmiňují o 25 % přesnější stínování než při použití běžné mřížky s diag<strong>on</strong>ální<br />
triangulací.<br />
7 Shann<strong>on</strong>ův teorém říká, že bezchybná rek<strong>on</strong>strukce spojitého, frekvenčně omezeného signálu je možná<br />
tehdy, pokud jej vzorkujeme s alespoň dvojnásobnou frekvencí, než je maximální frekvence<br />
vzorkovaného signálu.<br />
13