Normal map vs bump map: vad är skillnaden?
Både normal maps och bump maps ger illusionen av ytdetalj — repor, porer, spår — utan att lägga till polygoner. Skillnaden ligger i hur mycket information de lagrar, och därmed hur övertygande de ser ut.
Av Mixos
Det korta svaret
En bump (height) map är en gråskalebild där ljusstyrkan betyder höjd — enkel, men den trycker bara detaljen rakt in eller ut. En normal map är en RGB-bild som lagrar en fullständig ytriktning per pixel, så den kan fejka detalj som fångar ljus från sidan. Normal maps är rikare och är standard i modern PBR; bump/height maps är fortfarande användbara för displacement och parallax.
Hur en bump map fungerar
En bump map är gråskala — vitt är högt, svart är lågt. Renderaren läser ljusstyrkegradienten och knuffar ytans normal upp eller ned för att fejka relief.
Den är billig och intuitiv, men eftersom den bara kodar höjd längs en axel kan den inte representera detalj som vetter åt sidan — så avfasad eller vinklad detalj ser mjukare och mindre definierad ut än den borde.
Hur en normal map fungerar
En normal map använder de röda, gröna och blå kanalerna för att lagra en X/Y/Z-riktning för ytan i varje pixel — vilket är varför de mest ser blå-lila ut. Det låter den luta den synbara ytan i vilken riktning som helst.
Den extra informationen gör att avfasade kanter, vinklade repor och fin detalj fångar ljus realistiskt från sidan, inte bara framifrån. En normal map bär betydligt mer ytinformation än en gråskale-bump map, vilket är varför den blev standard.
Där height maps fortfarande passar
Gråskale-”bump map” lever vidare som height/displacement-kartan i PBR — den är inte föråldrad. Den driver verklig displacement och parallax occlusion, och ger verkligt eller skenbart djup som en normal map ensam inte kan.
Många material levereras med båda: en normal map för fin riktningsdetalj och en height map för parallax och silhuettförändrande displacement. De kompletterar varandra snarare än konkurrerar.
Källor och vidare läsning
Vanliga frågor
Är en bump map samma sak som en height map?
I princip ja — en klassisk gråskale-bump map är en height map, där ljusstyrkan kodar höjd. I PBR kallas den oftast height- eller displacement-karta.
Ska jag använda en normal map eller en bump map?
För det mesta av ytdetaljen, använd en normal map — den är rikare och är den moderna standarden. Använd en height map vid sidan av den för parallax eller verklig displacement.
Varför är min normal map blå?
Därför att en platt yta pekar rakt upp i tangent space, vilket kodas som en blåaktig färg. Röda och gröna toner uppstår där ytan lutar.