Ljuskarta

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 18 oktober 2017; kontroller kräver 6 redigeringar .

Ljuskarta ( shadow map ; engelska  lightmap ) är en metod för rymdbelysning i 3D-applikationer, som består i att det skapas en textur som innehåller information om belysning av tredimensionella modeller [1] [2] .

Beskrivning av metoden

Metoden sparar avsevärt datorresurser, eftersom applikationen inte behöver beräkna ljusinfallet i realtid. När det gäller realism är resultatet av att använda denna metod mycket överlägset att använda dynamisk belysning, där ljusets och skuggornas fall beräknas före varje bildruta. Detta beror på att de flesta 3D-ljuskartläggningstillämpningar tar hänsyn till ljusreflektioner och deras ytterligare infall på andra ytor, liknande hur ljus beter sig i den verkliga världen. Denna metod är dock endast giltig för statiska objekt. Ljuskartor för rörliga modeller skapas endast om ljuskällan är fäst vid en rörlig modell och resultatet av belysningen inte beror på dess rörelse och rotation.

Ljuskartor är nästan alltid justerade med normala polygontexturer , och varje karttexel motsvarar 4-32 texturtexturer . Kartans dimensioner bestäms av dimensionerna för den minsta polygonbegränsande rektangeln vars sidor är parallella med texturvektorerna.

I en eller annan form används ljuskartor i nästan alla moderna 3D-applikationer i realtid. Denna metod används för att skapa all statisk belysning i en scen. Belysning genereras för statisk geometri före start av renderingscykeln och är för det mesta oförändrad under renderingen . På modern utrustning är implementeringen av helt dynamisk belysning med ljuskartor omöjlig på grund av den höga resursintensiteten i processen att skapa ljuskartor. Detta tillvägagångssätt ses som grunden för de flesta andra skuggåtergivningsalgoritmer i realtid.

När kartan skapas är den fylld med svarta pixlar. Vidare, för varje texel på ljuskartan, hittas de tredimensionella koordinaterna för en punkt på polygonen. För denna punkt är det nödvändigt att skapa en lista över alla ljuskällor som påverkar dess belysning: vektorer från denna punkt till ljuskällor kontrolleras för skärning med scengeometrin, och om skärningen äger rum, lyser inte denna ljuskälla punkten (i förhållande till den ligger punkten i skuggan) . De återstående källorna ökar värdet på ljuskartans texel med ett belopp beroende på vilken belysningsmodell som används och ljuskällans position i förhållande till punkten. Bilinjär filtrering används ofta på ljuskartor för att förbättra utseendet på en bild . Dessa operationer upprepas för varje upplyst scenpolygon.

Under renderingen kan ljuskartor överlagras med ett andra pass, med hjälp av alfablandning . Om du har multitexturutrustning kan du applicera textur- och ljuskartan i ett pass.

Denna belysningsmetod stöds av spelmotorer som id Tech , Unreal Engine , Lithtech , GoldSrc , Xash3D , Source , X-Ray , Unity

Anteckningar

  1. Villkor (cnews.ru) . Hämtad 9 augusti 2008. Arkiverad från originalet 23 augusti 2011.
  2. Ljuskarta på Valve Developer  Wiki . Arkiverad från originalet den 23 augusti 2011.

Se även