10.08.2013 Views

Terrain Processing on Modern GPU - Computer Graphics Group ...

Terrain Processing on Modern GPU - Computer Graphics Group ...

Terrain Processing on Modern GPU - Computer Graphics Group ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!