Světelná mapa - Lightmap

Složitá scéna s odpovídající světelnou mapou (zobrazena vpravo).
Kostka s jednoduchou světelnou mapou (zobrazena vpravo).

Lightmap je datová struktura použita v lightmapping , forma povrchové ukládání do mezipaměti , ve kterém je jas ploch ve virtuální scény předem vypočítá a uloží do texturové mapy pro pozdější použití. Světelné mapy se nejčastěji používají na statické objekty v aplikacích, které používají 3D počítačovou grafiku v reálném čase , jako jsou videohry , za účelem poskytnutí světelných efektů, jako je globální osvětlení, za relativně nízké výpočetní náklady.

Dějiny

John Carmack je Quake byl první počítačová hra používat LightMaps rozšířit vykreslování . Než byly vynalezeny světelné mapy, aplikace v reálném čase spoléhaly čistě na Gouraudovo stínování, aby interpolovaly vrcholové osvětlení povrchů. To umožnilo pouze informace o nízkofrekvenčním osvětlení a mohlo by vytvářet ořezové artefakty blízko kamery bez interpolace správné perspektivy. Síť diskontinuity byla někdy používána zejména u řešení radiozity k adaptivnímu zlepšení rozlišení informací o osvětlení vrcholů, nicméně dodatečné náklady v primitivním nastavení pro rastrování v reálném čase byly obecně neúnosné. Softwarový rasterizér Quake používal povrchové ukládání do mezipaměti k použití výpočtů osvětlení v prostoru textur jednou, když se polygony zpočátku objevily v zorném poli (efektivně vytvářely dočasné „osvětlené“ verze aktuálně viditelných textur, když divák vyjednával scénu).

Vzhledem k tomu, že spotřebitelský 3D grafický hardware schopný multitexturování , mapování světla se stalo populárnějším a motory začaly kombinovat světelné mapy v reálném čase jako sekundární vrstvu textury s vícenásobným prolnutím ...

Omezení

Světelné mapy se skládají z lumelů ( Lumining elements), analogických s texely v Texture Mapping . Menší lumeny poskytují světelnou mapu s vyšším rozlišením a poskytují jemnější detaily osvětlení za cenu sníženého výkonu a většího využití paměti. Například měřítko světelné mapy 4 lumeny na světovou jednotku by poskytlo nižší kvalitu než stupnice 16 lumenů na světovou jednotku. Při používání této techniky tedy musí designéři úrovní a 3d umělci často dělat kompromisy mezi výkonem a kvalitou; pokud se světelné mapy s vysokým rozlišením používají příliš často, může aplikace spotřebovávat nadměrné systémové prostředky, což negativně ovlivňuje výkon. Rozlišení a škálování světelné mapy může být také omezeno množstvím diskového úložného prostoru, šířkou pásma/časem stahování nebo pamětí textur, kterou má aplikace k dispozici. Některé implementace se pokoušejí sbalit více světelných map dohromady v procesu známém jako atlasování, aby pomohly tato omezení obejít.

Rozlišení a měřítko světelné mapy jsou dvě různé věci. Rozlišení je plocha v pixelech dostupná pro uložení jedné nebo více povrchových světelných map. Počet jednotlivých povrchů, které se vejdou na světelnou mapu, je určen měřítkem. Nižší hodnoty měřítka znamenají vyšší kvalitu a více místa na světelné mapě. Vyšší hodnoty stupnice znamenají nižší kvalitu a méně místa. Povrch může mít světelnou mapu, která má stejnou plochu, tedy poměr 1: 1 nebo menší, takže se světelná mapa natáhne tak, aby odpovídala.

Světelné mapy ve hrách jsou obvykle barevné texturové mapy nebo barvy vrcholů. Obvykle jsou ploché, bez informací o směru světla, zatímco některé herní motory používají více světelných map, které poskytují přibližné směrové informace pro kombinaci s normálními mapami. Světelné mapy mohou také ukládat oddělené předpočítané složky informací o osvětlení pro polodynamické osvětlení pomocí shaderů, jako je okolní okluze a stínování slunečního světla.

Stvoření

Při vytváření světelných map lze použít jakýkoli model osvětlení, protože osvětlení je zcela předpočítané a výkon v reálném čase není vždy nutností. Různé techniky, včetně okolní okluzi , přímé osvětlení se stínem hran vzorku, a plnou radiozity odraz světelných řešení se obvykle používají. Moderní 3D balíčky obsahují specifické doplňky pro aplikaci UV-souřadnic světelné mapy, atlasování více povrchů do jednotlivých texturních listů a vykreslování samotných map. Alternativně mohou kanály herních motorů zahrnovat vlastní nástroje pro vytváření světelné mapy. Další úvahou je použití komprimovaných textur DXT, které podléhají blokovacím artefaktům - pro dosažení nejlepších výsledků se jednotlivé povrchy nesmějí srazit na kusy 4x4 texelu.

Ve všech případech jsou možné měkké stíny pro statickou geometrii, pokud se používají jednoduché okluzní testy (jako je základní sledování paprsku ) k určení, které lumeny jsou viditelné pro světlo. Skutečný měkkost stínu je dána tím, jak je motor interpoluje data Lumel po povrchu, a může mít za následek Zrnitá vzhled, pokud lumels jsou příliš velké. Viz filtrování textur .

Světelné mapy lze také vypočítat v reálném čase pro kvalitní barevné světelné efekty, které nejsou náchylné k vadám Gouraudova stínování, ačkoli vytváření stínů musí být stále prováděno jinou metodou, jako jsou objemy stínových vzorků nebo stínové mapování , jako paprsek v reálném čase -trasování je na moderní hardware ve většině 3D motorů stále příliš pomalé.

Fotonové mapování lze použít k výpočtu globálního osvětlení pro světelné mapy.

Alternativy

Vrcholové osvětlení

Při osvětlení vrcholů se informace o osvětlení počítají podle vrcholů a ukládají se do atributů barev vrcholů . Tyto dvě techniky lze kombinovat, např. Hodnoty barev vrcholů uložené pro sítě s vysokými detaily, zatímco světelné mapy se používají pouze pro hrubší geometrii.

Mapování diskontinuity

V mapování diskontinuity může být scéna dále rozdělena a oříznuta podél velkých změn světla a tmy, aby se lépe definovaly stíny.

Viz také

Reference

  1. ^ Abrash, Michaeli. „Quake's Lighting Model: Surface Caching“ . www.bluesnews.com . Citováno 2015-09-07 .
  2. ^ Channa, Keshav (21. července 2003). „flipcode - Light Mapping - teorie a implementace“ . www.flipcode.com . Citováno 2015-09-07 .
  3. ^ "White Atlasing Whitepaper" ( PDF ) . nvidia.com . NVIDIA . 2004-07-07 . Citováno 2015-09-07 .
  4. ^ Jason Mitchell, Gary McTaggart, Chris Green, stínování ve zdrojovém motoru Valve . ( PDF ) Citováno 07.06.2019.
  5. ^ 16. listopadu 2003. Dynamické světelné mapy v OpenGL . Joshbeam.com Citováno 07.07.2014.