Lyskort ( shadow map ; engelsk lightmap ) er en metode til rumbelysning i 3D-applikationer, som består i, at der skabes en tekstur , der indeholder information om belysning af tredimensionelle modeller [1] [2] .
Metoden sparer betydeligt computerressourcer, da applikationen ikke behøver at beregne lysindfaldet i realtid. Med hensyn til realisme er resultatet af brugen af denne metode meget bedre end ved brug af dynamisk belysning, hvor lysets og skyggernes fald beregnes før hvert billede. Dette skyldes, at de fleste 3D-lyskortlægningsapplikationer tager højde for lysrefleksioner og deres yderligere forekomst på andre overflader, svarende til hvordan lys opfører sig i den virkelige verden. Denne metode er dog kun gyldig i tilfælde af statiske objekter. Lyskort til bevægelige modeller oprettes kun, hvis lyskilden er knyttet til en bevægelig model, og resultatet af belysningen er ikke afhængig af dens bevægelse og rotation.
Lightmaps er næsten altid justeret med normale polygon - teksturer , og hver korttexel svarer til 4-32 tekstur-texel. Kortets dimensioner bestemmes af dimensionerne af det minimale polygonafgrænsende rektangel, hvis sider er parallelle med teksturvektorerne.
I en eller anden form bruges lyskort i næsten alle moderne 3D-applikationer i realtid. Denne metode bruges til at skabe al den statiske belysning i en scene. Belysning genereres til statisk geometri før starten af gengivelsescyklussen og er for det meste uændret under gengivelsen . På moderne udstyr er implementeringen af fuldt dynamisk belysning ved hjælp af lyskort umulig på grund af den høje ressourceintensitet i processen med at skabe lyskort. Denne tilgang ses som grundlaget for de fleste andre skyggegengivelsesalgoritmer i realtid.
Når det er oprettet, er kortet fyldt med sorte pixels. Yderligere, for hver texel på lyskortet, findes de tredimensionelle koordinater for et punkt på polygonen. Til dette punkt er det nødvendigt at opbygge en liste over alle lyskilder, der påvirker dens belysning: vektorer fra dette punkt til lyskilder kontrolleres for skæring med scenegeometrien, og hvis skæringen finder sted, så lyser denne lyskilde ikke punktet (i forhold til det er punktet i skygge) . De resterende kilder øger værdien af lightmap texel med en mængde afhængig af den anvendte belysningsmodel og lyskildens position i forhold til punktet. Bilineær filtrering anvendes ofte på lyskort for at forbedre udseendet af et billede . Disse operationer gentages for hver oplyst scenepolygon.
Under gengivelsen kan lyskort overlejres med en anden gennemgang ved hjælp af alfa-blanding . Hvis du har multiteksturudstyr , kan du anvende tekstur- og lyskortet i én omgang.
Denne belysningsmetode understøttes af spilmotorer såsom id Tech , Unreal Engine , Lithtech , GoldSrc , Xash3D , Source , X-Ray , Unity