Terrain Processing on Modern GPU - Computer Graphics Group ...
Terrain Processing on Modern GPU - Computer Graphics Group ...
Terrain Processing on Modern GPU - Computer Graphics Group ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
získávaných přes silně limitovaný datový kanál. Návrh implementace je možné nalézt v (19),<br />
ačkoli zdrojový kód není dostupný, neboť se stal součástí rozšíření Direct3D.<br />
2.3.3 Kvadrantový strom<br />
Kvadrantový či jiný strom se zpravidla používá pro hierarchické rozdělení zobrazované scény, ve<br />
které potřebujeme často eliminovat velké množství objektů, jež prostorově splňují nějakou<br />
podmínku (například nejsou vidět). Je přirozené využít již existující struktury a aplikovat ji<br />
v modifikované podobě i na terén, zvláště pokud je reprezentovaný výškovou mapou – přirozeně<br />
pravidelnou strukturou. Vznikla proto celá řada algoritmů pro zobrazování terénu, které v nějaké<br />
podobě využívají kvadrantový strom (ale také například binární strom, jak si ukážeme v odstavci<br />
2.3.4).<br />
Povaha kvadrantového stromu jej předurčuje k horším výsledkům, než jakých jsme schopni<br />
dosáhnout méně svázanými strukturami, jako je například progressive mesh, u kterého se při<br />
zjednodušování bere v úvahu celý objekt. Pravidelné struktury se však snáze implementují a<br />
výrazně lépe se v nich přistupuje ke k<strong>on</strong>krétním datům. Generování stromu je velice snadné –<br />
dělíme plochu terénu rekurzivně na čtyři stejné části tak dlouho, dokud nesplňuje zpracovávaná<br />
oblast podmínku danou zvolenou metrikou. Příklad dělení takovým stromem ukazuje Obrázek<br />
2.7.<br />
Obrázek 2.7: Obecný kvadrantový strom (vlevo) a omezený kvadrantový strom vytvořený nad<br />
stejnými daty (vpravo)<br />
Pro kvadrantový strom je zásadní především způsob triangulace výsledného útvaru. Algoritmem<br />
pro dělení totiž získáme pouze informace o tom, jak věrně je třeba kterou část terénu<br />
reprezentovat. Zde se otevírá obecný problémem s napojováním různých částí modelu, které byly<br />
triangulovány s jiným nastavením. Je to ideální příležitost pro vznik prasklin a T-spojů, kterým se<br />
chceme vyhnout. Jednou možností je tzv. omezený kvadrantový strom (restricted quadtree), což je<br />
varianta klasického kvadrantového stromu vázaná podmínkou na dělení jednotlivých částí. Tato<br />
podmínka stanovuje maximální rozdíl v úrovních dělení dvou sousedních oblastí na 1. Tedy<br />
jestliže jednu oblast rekurzivně rozdělíme třikrát, žádného jejího souseda nesmíme rozdělit více<br />
než 4x nebo méně než 2x (viz Obrázek 2.7).<br />
I pro omezený kvadrantový strom je nutné řešit triangulaci oblasti s ohledem na okolní oblasti,<br />
avšak situace je daleko snazší. Rozdělíme čtverec pomocí diag<strong>on</strong>ál na čtyři pravoúhlé<br />
24