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.
Obrázek 4.9: Umístění vzorků mapy reziduí vzhledem k umístění okolních vrcholů (soused na<br />
stejném prstenci a soused na stejné výseči). Mřížka reprezentuje část ringmapy, šipky ukazují na<br />
odebírané vzorky. Vlevo případ 4 vzorků, vpravo 9 vzorků.<br />
4.3.3 Ořezávání pohledovým jehlanem<br />
Většina algoritmů využívá pro ořezávání scény různé varianty binárních, kvadrant, oktalových a<br />
jiných stromů. Pro terén to platí zvláště v případě použití některého z algoritmů popsaných<br />
v odstavcích Error! Reference source not found. a 2.3.4, které jsou také postaveny nad<br />
hierarchickou strukturou. Často je ořezávání zakomp<strong>on</strong>ováno přímo do metriky LOD algoritmu.<br />
My jsme přišli se zcela odlišným postupem již v návrhu algoritmu pro zobrazování terénu, ve<br />
kterém je účinné ořezávání velmi jednoduchou záležitostí.<br />
V případě trapezmapy dok<strong>on</strong>ce není třeba řešit ořezávání vůbec – tak byla navržena: pokrývá<br />
přibližně ty části terénu, které jsou vidět (s jistým „bezpečnostním přesahem“, neboť je lépe<br />
zobrazit pár trojúhelníků navíc, než aby v obraze chyběly). Jediné, co můžeme vylepšit, je<br />
zkrácení dohledové vzdálenosti tehdy, když se pozorovatel dívá směrem k zemi. V takovém<br />
případě stačí zobrazovat podstatně méně než celou trapezmapu. Tuto optimalizaci jsme<br />
neprováděli, protože jsme brali v úvahu praktické použití. Když se pozorovatel v komplexnější<br />
scéně podívá do země, zobrazuje se velmi malá část scény, a proto není třeba tolik šetřit časem.<br />
Naproti tomu většinu doby se pozorovatel dívá směrem k horiz<strong>on</strong>tu, a tak celková rychlost musí<br />
být stejně stavěna na plnou zátěž.<br />
Také s ringmapou se velmi dobře pracuje. Stačí na ni nahlížet jako na soustavu rozbíhavých<br />
výsečí, namísto soustavy prstenců. Kdybychom brali v úvahu pouze dvourozměrný svět, tvořila<br />
by kruhová výseč oblast, kterou pozorovatel vidí. Naše scéna je sice trojrozměrná, ale zvláště na<br />
terén můžeme pohlížet jako na objekt s více dvourozměrným charakterem. Toho využijeme a<br />
zjednodušíme tedy ořezávání pohledovým jehlanem na ořezávání kruhovou výsečí. Pro aktuální<br />
pozici pozorovatele a směr jeho pohledu takovou výseč musíme najít a ve chvíli, kdy ji máme<br />
spočtenou, je zobrazování terénu užitím ringmapy triviální. Důležité je mít vhodně definovaný<br />
index buffer pro strukturu vnější části ringmapy. Pokud indexujeme vrcholy po jednotlivých<br />
výsečích (tzv. „slice-major-order“), nachází se indexy viditelných vrcholů v index bufferu za<br />
74