Hvad betyder det at bage lightmap? Jeg hørte dette i Unity3d og fandt igen dette LightUp-plugin til sketchup, der bager lightmap.
Fra hvad jeg observerer, giver lightmap bagt 3D-objektet en meget mere realistisk fornemmelse. Er formålet med at bage lys på objektet for at give det cg-animationsudseende, du ser på præ-gengivne animationer?
Kommentarer
- Også når som helst du bager noget, hvad enten det er fysik, belysning eller noget andet. Det betyder, at du har oprettet noget, der tager lang tid at gengive / behandle i realtid, eller du vil have det til at spille på samme måde hver gang, så du gør det kun en gang og gemmer resultaterne til senere brug, og fordi alle beregningerne er færdige, og det, der er bagt, er hurtigt og altid det samme i alle playthroughs.
- AttackingHobo, det er en fantastisk måde at sige det på. Jeg forstår det nu. Men nysgerrig, hvordan ville fysik bages? Frembringer Luxrender fotorealistiske gengivelser, fordi de kan beregne lysets fysik?
- Fysik kan bages til komplekse scener ved en gang at simulere og gemme alle objekternes positioner og rotationer osv. For hvert tidspunkt. I stedet for at genberegne alle værdier igen live, afspilles de bare fra de lagrede værdier.
Svar
Når du har et statisk (ikke-bevægende) lys i et spil, har du to muligheder for at gengive dette lys. Du kunne gengive det samme som et dynamisk lys; det vil sige, fodre den gennem skyggepipelinen, som beregner dens virkning på alt omkring den, hver ramme, på vej til skærmen. Dette er naturligvis ret dyrt. Eller en redaktør kan bage lyset ind i scenen.
Det, jeg altid har tænkt på at bage, var måske en mere simpel version: dybest set tager editoren bare teksturerne af alt omkring lyset, beregner effekten af lyset på disse teksturer (lyser dem, måske farver dem, skygger osv.), og gemmer dem som erstatningsteksturer til brug. Så alle teksturerne omkring “lyset” ser ud som om de har et lys kastet på dem, men ved runtime der faktisk ikke er lys fra et beregningsmæssigt synspunkt; det er i det væsentlige en optisk illusion.
Enhed ser imidlertid ud til at generere en lightmap . Dette svarer til ovenstående opfattelse , men den bagte belysning holdes separat i stedet for at ændre den underliggende tekstur, og jeg antager, at en skygge fletter de to ved kørsel. Dette ville have fordelen ved at bevare fordelen ved flisebelagte teksturer (dvs. lavt hukommelsesforbrug), da de ikke ville få lyset bagt lige ind i dem, derfor kunne de forblive flisebelagt, og skyggen ville være meget let, især sammenlignet med at behandle lyset som dynamisk.
Et lys skal naturligvis være statisk for at dette kan fungere; det vil sige, du kan ikke flytte det under gameplay, fordi lyset er bagt ind i teksturerne. Også dynamiske objekter i rummet (som f.eks. spillerens karakter) vil ikke have lyset, der skinner på dem, så der er brug for være en slags undtagelse, hvor lyset gengives til dynamiske objekter, men ikke (gengives) på det statiske landskab.
Kommentarer
- Og fordi belysningen er blød, kan lyskortet gemmes i lavere opløsning end resten af teksturerne, ser stadig godt ud, men gengives hurtigere og tager mindre hukommelse.
- +1, dette er et rigtig flot og omfattende svar, tak. 🙂