A fénytérkép ( shadow map ; angolul lightmap ) a tér megvilágításának egyik módja a 3D alkalmazásokban, amely abból áll, hogy olyan textúrát hoznak létre, amely a háromdimenziós modellek megvilágítására vonatkozó információkat tartalmaz [1] [2] .
A módszer jelentősen megtakarítja a számítógép erőforrásait, mivel az alkalmazásnak nem kell valós időben számolnia a fény beesését. Ami a valóságot illeti, ennek a módszernek az eredménye sokkal jobb, mint a dinamikus világítás alkalmazása, amelyben minden képkocká előtt kiszámítják a fény és az árnyék esését. Ennek az az oka, hogy a legtöbb 3D-s fénytérképező alkalmazás figyelembe veszi a fényvisszaverődéseket és azok további beesését más felületekre, hasonlóan ahhoz, ahogy a fény a való világban viselkedik. Ez a módszer azonban csak statikus objektumok esetén érvényes. A mozgó modellek fénytérképei csak akkor jönnek létre, ha a fényforrás egy mozgó modellhez van rögzítve, és a megvilágítás eredménye nem függ a mozgásától és forgásától.
A fénytérképek szinte mindig a normál sokszög textúrákhoz igazodnak, és minden térképtextel 4-32 textúratextelnek felel meg. A térkép méreteit a minimális sokszöget határoló téglalap méretei határozzák meg, amelynek oldalai párhuzamosak a textúra vektorokkal.
A fénytérképeket ilyen vagy olyan formában szinte minden modern valós idejű 3D alkalmazásban használják. Ezzel a módszerrel létrehozható egy jelenet összes statikus megvilágítása. A megvilágítás a statikus geometriához a renderelési ciklus kezdete előtt jön létre, és a renderelés során többnyire változatlan . A modern berendezéseken a fénytérképek segítségével teljesen dinamikus világítás megvalósítása lehetetlen a fénytérképek létrehozásának folyamatának nagy erőforrás-intenzitása miatt. Ezt a megközelítést tekintik a legtöbb más valós idejű árnyékleképezési algoritmus alapjának.
Létrehozásakor a térkép fekete képpontokkal lesz tele. Továbbá a fénytérkép minden texeléhez megtaláljuk a sokszög egy pontjának háromdimenziós koordinátáit. Ehhez a ponthoz létre kell hozni egy listát az összes fényforrásról, amely befolyásolja a megvilágítását: az ettől a ponttól a fényforrásokhoz vezető vektorokat ellenőrzik a jelenet geometriájával való metszéspontra, és ha a metszés megtörténik, akkor ez a fényforrás nem világít. a pont (hozzá képest a pont árnyékban van) . A fennmaradó források növelik a fénytérkép texel értékét a használt világítási modelltől és a fényforrás ponthoz viszonyított helyzetétől függően. A bilineáris szűrést gyakran alkalmazzák a fénytérképeken a kép megjelenésének javítása érdekében . Ezeket a műveleteket minden egyes megvilágított jelenetpoligonnál megismétlik.
A renderelés során a fénytérképeket egy második lépéssel lefedheti alfa-keveréssel . Ha több textúrájú berendezése van, egy menetben alkalmazhatja a textúra- és fénytérképet.
Ezt a világítási módszert olyan játékmotorok támogatják, mint az id Tech , Unreal Engine , Lithtech , GoldSrc , Xash3D , Source , X-Ray , Unity