In dit artikel zal ik het concept van bump mapping, met zowel een praktische als technische uitleg. Ik zal deze techniek ook vergelijken met verplaatsingskaarten en normale kaarten.
Bump-mapping is een techniek die wordt gebruikt in computergraphics om het uiterlijk van hobbels en andere dergelijke texturen op een object te genereren. Het is eigenlijk een vervalst effect omdat de techniek het feitelijke model niet verandert, alleen de manier waarop het licht berekend is om van het object te reflecteren. U kunt bijvoorbeeld een bump-map hebben die wat tekst bevat, waardoor het model wordt weergegeven alsof er tekst op is afgedrukt.
Een van de grootste beperkingen bij het gebruik van deze techniek is dat de schaduw van het object niet zal veranderen, omdat de werkelijke geometrie hetzelfde blijft. Dit betekent dat een bump-map het meest geschikt is om meer toe te voegen detail- naar een model. EEN verplaatsing kaart, aan de andere kant, kan dezelfde textuur gebruiken om de werkelijke geometrie te wijzigen.
Hier is een voorbeeld van de twee technieken:
Een bultmap wordt weergegeven door een grijswaardenstructuur, of een hoogte kaart zoals het wordt genoemd, wat kan worden opgenomen in een materiaal (net als andere soorten kaarten: diffuse kaart, normale kaart, spiegelkaart enzovoort).
Een bump-kaart kan worden gemaakt met behulp van elke fotobewerkingssoftware die u wilt (ik gebruik Photoshop) die een penseel bevat of die in staat is om ruiskaarten te genereren. Als u bijvoorbeeld Photoshop gebruikt, kunt u een nieuw bestand maken en erop tekenen met een grijswaardenpenseel - hoe donkerder u schildert, hoe meer effect het heeft op uw textuur - en sla het op als een JPEG.
Hier zijn twee voorbeelden van bump map-structuren:
Je vraagt je misschien af wat het verschil is tussen dit en normale afbeelding. De twee technieken zijn vergelijkbaar; Normal mapping is eigenlijk afgeleid van bump mapping, maar het gebruikt een ander algoritme om de verlichting van het model te berekenen. Tegenwoordig is normale mapping de meest gebruikte methode, vooral in games, maar het is een beetje moeilijker om een dergelijke kaart te maken.
De manier waarop deze kaart de berekening van de verlichting beïnvloedt, is vrij eenvoudig. Elke vertex op een model heeft zijn eigen normale vector (in wezen een lijn die rechtstreeks naar buiten wijst vanaf de top), dus als je iets hebt gemaakt en het zonder kaarten hebt gemaakt, zijn dit de normalen die worden gebruikt om de schaduwen op je object te berekenen.
Wanneer u echter een bump-kaart toevoegt, berekent de renderer die u gebruikt de normaal van de hoekpunten die zijn gewijzigd door de hoekpunten van de bump-map en projecteren de lichtstralen (wanneer er licht wordt uitgezonden, projecteert het meerdere stralen). Er zullen verschillende schaduwen zijn omdat de normalen zijn veranderd.
Dus hier is een foto om deze berekening uit te leggen:
De eerste afbeelding toont twee hoekpunten (hoeken), elk met een normale (de rode lijnen). De zwarte lijnen geven het net van het object weer. Wanneer de lichtstraal (de gele lijn) het gaas raakt, zal het weerkaatsen in een bepaalde hoek, berekend met de normaal.
Als ik de bump map heb toegevoegd met de mesh die ik heb gemaakt met het model (zoals in de onderste afbeelding), zal het licht dat weerkaatst worden veranderd op basis van de combinatie van de twee normale kaarten, dus de render zou meer gedetailleerd lijken.
Ik hoop dat je nu voelt dat je een beter begrip hebt van bump mapping! Als je vragen hebt, plaats deze dan in het opmerkingengedeelte en ik zal proberen ze te beantwoorden.