Světelná mapa ( shadow map ; anglicky lightmap ) je metoda osvětlení prostoru ve 3D aplikacích, která spočívá v tom, že se vytvoří textura , která obsahuje informace o nasvícení trojrozměrných modelů [1] [2] .
Metoda výrazně šetří počítačové zdroje, protože aplikace nemusí počítat dopad světla v reálném čase. Z hlediska realismu je výsledek použití této metody mnohem lepší než použití dynamického osvětlení, ve kterém se před každým snímkem počítá spád světla a stínů. Většina aplikací pro 3D mapování světla totiž bere v úvahu odrazy světla a jejich další dopad na jiné povrchy, podobně jako se světlo chová v reálném světě. Tato metoda je však platná pouze v případě statických objektů. Světelné mapy pro pohyblivé modely se vytvářejí pouze v případě, že je světelný zdroj připojen k pohyblivému modelu a výsledek osvětlení nezávisí na jeho pohybu a rotaci.
Světelné mapy jsou téměř vždy zarovnány s normálními polygonovými texturami a každý mapový texel odpovídá 4-32 texturovým texelům. Rozměry mapy jsou určeny rozměry minimálního obdélníku ohraničujícího mnohoúhelník, jehož strany jsou rovnoběžné s vektory textury.
V té či oné podobě se světelné mapy používají téměř ve všech moderních 3D aplikacích v reálném čase. Tato metoda se používá k vytvoření veškerého statického osvětlení ve scéně. Osvětlení je generováno pro statickou geometrii před začátkem vykreslovacího cyklu a během vykreslování se většinou nemění . Na moderních zařízeních je implementace plně dynamického osvětlení pomocí světelných map nemožná z důvodu vysoké náročnosti na zdroje procesu vytváření světelných map. Tento přístup je považován za základ většiny ostatních algoritmů vykreslování stínů v reálném čase.
Po vytvoření je mapa vyplněna černými pixely. Dále jsou pro každý texel světelné mapy nalezeny trojrozměrné souřadnice bodu na polygonu. Pro tento bod je nutné sestavit seznam všech světelných zdrojů, které ovlivňují jeho osvětlení: vektory z tohoto bodu do světelných zdrojů jsou kontrolovány na průnik s geometrií scény, a pokud dojde k průniku, pak tento světelný zdroj nesvítí bod (ve vztahu k němu je bod ve stínu) . Zbývající zdroje zvyšují hodnotu texelu světelné mapy v závislosti na použitém modelu osvětlení a poloze světelného zdroje vzhledem k bodu. Bilineární filtrování se často používá na světelné mapy ke zlepšení vzhledu obrazu . Tyto operace se opakují pro každý polygon osvětlené scény.
Během vykreslování lze světelné mapy překrýt druhým průchodem pomocí prolnutí alfa . Máte-li vícetexturové vybavení , můžete texturu a světelnou mapu aplikovat jedním průchodem.
Tuto metodu osvětlení podporují herní enginy jako id Tech , Unreal Engine , Lithtech , GoldSrc , Xash3D , Source , X-Ray , Unity