Gamedev Ordliste Hva er Bump Mapping?

I denne artikkelen vil jeg forklare konseptet om bump kartlegging, med både en praktisk og teknisk forklaring. Jeg vil også sammenligne denne teknikken med forskyvningskart og normale kart.


Hva er Bump Mapping?

Bump kartlegging er en teknikk som brukes i datagrafikk for å generere utseendet på støt og andre slike teksturer på et objekt. Det er faktisk en forfalsket effekt fordi teknikken ikke endrer den faktiske modellen, bare måten lyset beregnes for å reflektere objektet. For eksempel kan du ha et bumpekart som inneholder litt tekst, og dette vil få modellen til å vises som om det er skrevet tekst på det.

En av de største begrensningene når du bruker denne teknikken er at skyggen av objektet ikke vil endre seg, siden den faktiske geometrien forblir den samme. Dette betyr at et bump kart passer best for å legge til flere detalj til en modell. EN forskyvningskart, på den annen side kan bruke samme tekstur for å endre den faktiske geometrien.

Her er et eksempel på de to teknikkene:


Den venstre sfæren bruker et bump kart; den rette bruker et forskyvningskart.

Hva er en bump kart?

Et stødkart er representert av en gråtonestruktur, eller a høyde kart som det kalles, som kan inngå i et materiale (akkurat som andre typer kart: diffus kart, vanlig kart, spekulert kart og så videre).

Et stødkartskort kan opprettes ved hjelp av hvilken som helst fotoredigeringsprogramvare du vil ha (jeg bruker Photoshop) som har en pensel i det eller kan generere støykort. Hvis du for eksempel bruker Photoshop, kan du lage en ny fil og tegne den med en gråtonebørste - jo mørkere du maler, desto større effekt vil det få på tekstur - og lagre det som en JPEG.

Her er to eksempler på bump kart teksturer:


Noise bump kart
Photoshop bump kart

Du lurer kanskje på hva forskjellen er mellom dette og normal kartlegging. De to teknikkene er like; normal kartlegging er faktisk avledet fra bump kartlegging, men den bruker en annen algoritme til å beregne belysningen på modellen. I dag er normal kartlegging den mest brukte metoden, spesielt i spill, men er litt vanskeligere å lage denne typen kart.


Teknisk

Måten dette kartet påvirker belysningen av, er ganske enkelt. Hvert toppunkt på en modell har sitt eget normal vektor (i hovedsak en linje som peker rett utover fra toppunktet), så når du har gjort noe, og du gjør det uten kart, er disse normalene som brukes til å beregne skyggene på objektet ditt.

Når du legger til et stødkart, vil gjengivelsen du bruker, beregne det normale av kryssene som er modifisert av rammene på stødkartet, og prosjektlysstrålene (når lyset sendes ut, prosjekterer det flere stråler). Det kommer til å være forskjellige skygger fordi normalerne har endret seg.

Så her er et bilde for å forklare denne beregningen:


Belysningsberegning

Det første bildet viser to hjørner, hver med en normal (de røde linjene). De svarte linjene representerer objektets maske. Når lysstrålen (den gule linjen) treffer nettverket, vil den hoppe av i en viss vinkel beregnet med det normale.

Hvis jeg lagde bumpkartet med nettverket jeg laget på modellen (som i nedre bilde), vil lyset som hopper av, endres basert på kombinasjonen av de to normale kartene, så gjengivelsen vil se nærmere ut.

Jeg håper du nå føler at du har en bedre forståelse av bump kartlegging! Hvis du har noen spørsmål, vennligst legg inn dem i kommentarseksjonen, og jeg vil prøve å svare på dem.