Vad betyder det att “ baka ljus ”?

Vad betyder det att baka lightmap? Jag hörde detta i Unity3d och hittade återigen detta LightUp-plugin för sketchup som bakar lightmap.

Från vad jag observerar ger lightmap bakat 3D-objektet en mycket mer realistisk känsla. Är syftet med att baka ljus på objektet för att ge det cg-animationsutseendet du ser på för renderade animationer?

Kommentarer

  • Också när du bakar något, oavsett om det är fysik, belysning eller något annat. Det betyder att du har ställt in något som tar lång tid att återge / bearbeta i realtid, eller att du vill att det ska spela på samma sätt varje gång, så du gör det bara en gång och sparar resultaten för senare användning, och eftersom alla beräkningar är klara, att visa vad som har bakats är snabbt och alltid detsamma över alla genomspelningar.
  • AttackingHobo, det är ett bra sätt att uttrycka det. Jag förstår det nu. Men nyfiken, hur skulle fysik bakas? Producerar Luxrender fotorealistiska renderingar eftersom de kan beräkna ljusets fysik?
  • Fysik kan bakas för komplexa scener genom att en gång simulera och lagra alla objektpositioner och rotationer etc för varje tidssteg. Istället för att beräkna alla värden igen live spelas de bara upp från de lagrade värdena.

Svar

När du har ett statiskt (rörligt) ljus i ett spel har du två alternativ för att återge detta ljus. Du kan göra det samma som ett dynamiskt ljus; det vill säga mata den genom skuggpipelinen som beräknar dess effekt på allt runt den, varje ram, på väg till skärmen. Detta är uppenbarligen ganska dyrt. Eller en redaktör kan baka ljuset in i scenen.

Det jag alltid har tänkt på att baka var kanske en enklare version: redaktören tar i princip bara strukturerna på allt runt ljuset, beräknar effekten av ljuset på dessa texturer (lyser upp dem, kanske färgar dem, skuggor etc.) och sparar dem som ersättningstexturer att använda. Så alla texturer runt ”ljuset” ser ut som om de har en ljusgjutning på dem, men vid körtid är det faktiskt inte ljus ur en beräknings synvinkel; det är i grunden en optisk illusion.

Enhet verkar dock generera en lightmap . Detta liknar ovanstående uppfattning , men den bakade belysningen hålls separat istället för att ändra den underliggande strukturen, och jag antar att en skuggning slår samman de två vid körning. ha ljuset bakat direkt in i dem, därför kan de förbli kaklade, och skuggan skulle vara mycket lätt, särskilt jämfört med att behandla ljuset som dynamiskt.

Ett ljus måste uppenbarligen vara statiskt för att detta ska fungera; det vill säga, du kan inte flytta det under spelet, eftersom ljuset har bakats in i texturerna. Dessutom kommer alla dynamiska föremål i rummet (som spelarens karaktär) inte att lysa på dem så det måste vara ett slags undantag, där ljuset återges för dynamiska objekt men inte (åter-) återges på det statiska landskapet.

Kommentarer

  • Och för det mesta eftersom belysningen är mjuk, kan ljuskartan sparas i lägre upplösning än resten av texturerna, ser fortfarande bra ut, men görs snabbare och tar mindre minne.
  • +1, det här är ett riktigt trevligt och omfattande svar, tack. 🙂

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *