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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Prvním z návrhů je pokládání ringmapy do předem definovaných pozic. Tyto pozice můžeme<br />

definovat pomocí diskrétní mřížky, nebo pomocí vztahu k poslední pozici ringmapy. Důležité je,<br />

aby se ringmapa neposouvala spojitě s pozorovatelem, ale aby se pohybovala v diskrétních<br />

krocích. Kdybychom toho dosáhli, můžeme pomocí triviálního morfování zajistit plynulý přechod<br />

z jedné geometrie na druhou. To by silně ovlivnilo poměr texturových a aritmetických instrukcí.<br />

Problém tohoto přístupu vyplývá z nepravidelné struktury ringmapy. Jednotlivým vrcholům<br />

ringmapy v jednom umístění je totiž potřeba nalézt odpovídající vrcholy v druhém umístění,<br />

mezi kterými se morfování provede. Tento úkol se ukázal být značně netriviální, neboť síť<br />

ringmapy má v různých částech různou hustotu a my potřebujeme vytvořit párovací schéma (ne<br />

nutně bijekci), které by každému vrcholu přiřadilo nějakého reprezentanta nacházejícího se<br />

blízko ve smyslu světového souřadného systému. Takové schéma by navíc muselo být<br />

generalizované, aby šlo použít na různé situace, případně by se takových dala vytvořit sada a<br />

párování pro každé z nich by se uložilo v podobě textury. Vyřešení tohoto úkolu by mohlo mít<br />

velmi pozitivní vliv na kvalitu zobrazování, resp. rychlost při dané kvalitě.<br />

Není těžké si povšimnout, že nepříjemný efekt se projevuje především na siluetách. Proto naším<br />

dalším návrhem je provést dodatečné dělení struktury ringmapy v geometry shaderu, kde podle<br />

normály vrcholů trojúhelníku můžeme provést násobné dělení hrany podezřelé z podílení se na<br />

siluetě. Pokud budeme podávat trojúhelníky grafické kartě s informacemi o sousedech, můžeme<br />

siluety dok<strong>on</strong>ce označit přesně. Kromě toho můžeme adaptivně dělit i jiné trojúhelníky podle<br />

rozdílu výšek jejich vrcholů. Otázkou je, jakého výk<strong>on</strong>u bychom dosáhli v souladu s našimi<br />

experimenty popsanými v odstavci 4.2.3.2. Výk<strong>on</strong> by mohl být ještě nižší než při velmi<br />

intenzivním převzorkování mapy reziduí.<br />

Další možností řešení aliasu je použití imposterů, tj. dvourozměrných zástupných objektů,<br />

kterými nahradíme vzdálené části terénu. Impostery se vytváří zobrazením nějakého objektu<br />

nebo skupiny objektů do textury. V našem případě by se do textury zobrazila vzdálená část<br />

terénu v nějakém úhlu kolem pozorovatele. Na pokrytí plného úhlu by nám mohlo stačit 8 až 16<br />

imposterů, neboť by byly použity až pro větší vzdálenosti. Při zobrazování se objekt nebo<br />

skupina objektů, která se dříve zobrazila do imposteru, nahradí jediným velkým čtyřúhelníkem,<br />

na který se promítne získaný imposter. Protože imposter se nemusí vytvářet každý snímek<br />

znovu, je možné věnovat jeho tvorbě větší množství času, takže skýtá možnost lepších vizuálních<br />

výsledků než přímé zobrazování. Pro terén by nám to mohlo přinést hned několik vylepšení.<br />

Předně bychom naprosto potlačili vlnění geometrie v dálce, zobrazený terén by mohl být<br />

detailnější a k<strong>on</strong>ečně bychom tak mohli zvýšit dohledovou vzdálenost bez újmy na rychlosti<br />

zobrazování. Pokud předpokládáme rychlost pohybu chodce nebo běžce, můžeme udržet jeden<br />

imposter platný po dobu stovek až tisíců snímků. Problémy s impostery bývají často spojeny se<br />

správným napojením na objekty, které jsou zobrazovány přímo. Plně funkční implementace<br />

nemusí být snadná, ale zcela určitě představují impostery možnost dalšího postupu a rozšíření<br />

naší metody.<br />

4.7.3 Mapování textury na terén<br />

Prozatím používáme na terén barvu, kterou načteme z jednorozměrné textury na základě výšky<br />

terénu v daném místě. Je to tedy obdoba barvení používaná v kartografii. Tento postup však<br />

93

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

Saved successfully!

Ooh no, something went wrong!