Normal map vs bump map: wat is het verschil?
Zowel normal maps als bump maps voegen de illusie van oppervlaktedetail toe — krassen, poriën, groeven — zonder polygonen toe te voegen. Het verschil zit in hoeveel informatie ze opslaan, en dus in hoe overtuigend ze eruitzien.
Door Mixos
Het korte antwoord
Een bump (height) map is een grijswaardenafbeelding waarin helderheid hoogte betekent — simpel, maar hij duwt detail alleen recht in of uit. Een normal map is een RGB-afbeelding die per pixel een volledige oppervlakterichting opslaat, zodat hij detail kan faken dat licht van opzij vangt. Normal maps zijn rijker en de standaard in moderne PBR; bump/height maps zijn nog nuttig voor displacement en parallax.
Hoe een bump map werkt
Een bump map is grijswaarden — wit is hoog, zwart is laag. De renderer leest het helderheidsverloop en duwt de oppervlaktenormal omhoog of omlaag om reliëf te faken.
Hij is goedkoop en intuïtief, maar omdat hij hoogte maar langs één as codeert, kan hij geen detail weergeven dat zijwaarts gericht is — dus afgeschuinde of hoekige details ogen zachter en minder scherp dan zou moeten.
Hoe een normal map werkt
Een normal map gebruikt de rode, groene en blauwe kanalen om per pixel een X/Y/Z-richting van het oppervlak op te slaan — daarom zien ze er meestal blauwpaars uit. Daarmee kan hij het schijnbare oppervlak in elke richting kantelen.
Die extra informatie betekent dat afgeschuinde randen, schuine krassen en fijn detail realistisch licht van opzij vangen, niet alleen van voren. Een normal map draagt veel meer oppervlakte-informatie dan een grijswaarden-bump-map, en daarom werd hij de standaard.
Waar height maps nog passen
De grijswaarden-“bump map” leeft voort als de height/displacement-map in PBR — hij is niet achterhaald. Hij stuurt echte displacement en parallax occlusion aan en voegt echte of schijnbare diepte toe die een normal map alleen niet kan.
Veel materialen leveren beide mee: een normal map voor fijn richtingsdetail en een height map voor parallax en displacement die het silhouet verandert. Ze vullen elkaar aan in plaats van te concurreren.
Bronnen en verder lezen
Veelgestelde vragen
Is een bump map hetzelfde als een height map?
In wezen ja — een klassieke grijswaarden-bump-map is een height map, waarin helderheid hoogte codeert. In PBR heet hij meestal de height- of displacement-map.
Moet ik een normal map of een bump map gebruiken?
Gebruik voor de meeste oppervlaktedetails een normal map — hij is rijker en de moderne standaard. Gebruik er een height map naast voor parallax of echte displacement.
Waarom is mijn normal map blauw?
Omdat een vlak oppervlak in tangent space recht omhoog wijst, wat codeert naar een blauwachtige kleur. Rood en groen verschijnen waar het oppervlak kantelt.