Hva betyr det å bake lightmap? Jeg hørte dette i Unity3d, og fant igjen dette LightUp-pluginet for sketchup som baker lightmap.
Fra det jeg observerer, gir lightmap bakt 3d-objektet en mye mer realistisk følelse. Er formålet med å bake lys på objektet for å gi det cg-animasjonsutseendet du ser på forhåndsgjengitte animasjoner?
Kommentarer
- Også når som helst du baker noe, enten det er fysikk, belysning eller noe annet. Det betyr at du har satt opp noe som vil ta lang tid å gjengi / behandle i sanntid, eller at du vil at det skal spille på samme måte hver gang, så du gjør det bare en gang, og lagrer resultatene for senere bruk, og fordi alle beregningene er ferdige, det som er blitt bakt er raskt, og alltid det samme på tvers av alle gjennomspill.
- AttackingHobo, det er en fin måte å si det på. Jeg forstår det nå. Men nysgjerrig, hvordan ville fysikk bli bakt? Produserer Luxrender fotorealistiske gjengivelser fordi de kan beregne lysets fysikk?
- Fysikk kan bakes for komplekse scener ved å simulere og lagre alle objektenes posisjoner, og rotasjoner osv. For hvert tidspunkt. Så i stedet for å beregne alle verdiene igjen live, blir de bare spilt av fra de lagrede verdiene.
Svar
Når du har et statisk (ikke-bevegelig) lys i et spill, har du to muligheter for å gjengi dette lyset. Du kan gjengi det samme som et dynamisk lys; det vil si mate den gjennom skyggeledningen som vil beregne effekten på alt rundt den, hver ramme, på vei til skjermen. Dette er åpenbart ganske dyrt. Eller en redaktør kan bake lyset inn i scenen.
Det jeg alltid har tenkt på å bake, var kanskje en mer enkel versjon: i utgangspunktet tar redaktøren bare teksturene til alt rundt lyset, beregner effekten av lyset på teksturene (lyser dem, kanskje farger dem, skygger osv.), og lagrer dem som erstatningsteksturer å bruke. Så alle teksturene rundt «lyset» ser ut som om de har et lys kastet på seg, men på kjøretid det faktisk ikke er noe lys fra et beregningsperspektiv; det er egentlig en optisk illusjon.
Enhet ser imidlertid ut til å generere et lightmap . Dette ligner på oppfatningen ovenfor , men den bakte belysningen holdes separat i stedet for å endre den underliggende teksturen, og jeg antar at en skygge slår sammen de to i løpetid. Dette vil ha fordelen av å beholde fordelen med flisete teksturer (dvs. lavt minnebruk), siden de ikke ville ha lyset bakt rett inn i dem, derfor kan de forbli flislagte, og skyggen vil være veldig lett, spesielt sammenlignet med å behandle lyset som dynamisk.
Et lys må åpenbart være statisk for at dette skal fungere; det vil si at du ikke kan flytte det under spillingen, fordi lyset er bakt inn i teksturene. Også dynamiske gjenstander i rommet (for eksempel spillerkarakteren) vil ikke ha lyset som skinner på dem, så det må være et slags unntak, der lyset gjengis for dynamiske objekter, men ikke (gjengis) gjengis på det statiske landskapet.
Kommentarer
- Og fordi belysningen er myk, kan lysbildet lagres i lavere oppløsning enn resten av teksturene, fremdeles ser bra ut, men gjengis raskere og tar mindre minne.
- +1, dette er et veldig hyggelig og omfattende svar, takk. 🙂