Bumpmapping ist eine Technik, die in 3D-Visualisierungsprogrammen zum Einsatz kommt, um den Detailreichtum von Objekten zu verbessern, ohne dabei deren Geometriekomplexität zu erhöhen. Der Trick dabei ist, dass die benötigten Informationen in einer Textur gelagert werden, mit deren Hilfe Schattierungen auf eine Oberfläche gezeichnet werden.
Bumpmapping ist somit nur eine (wenngleich wirksame) Illusion, welche Oberflächenunebenheiten simuliert, die in der Geometrie des Modells gar nicht vorhanden sind.
Es verbessert die Bildqualität und den Realismusgrad, ohne sich wesentlich auf die für das Rendern benötigte Zeit niederzuschlagen. Außerdem ist das Einsatzgebiet nicht nur auf Schattierungen begrenzt. Reflexionen können mit dieser Technik genauso behandelt werden. Bumpmapping spielt bereits eine große Rolle in Projekten der Unterhaltungsindustrie, da sich die visuelle Qualität deutlich verbessern lässt, ohne die Leistung dabei nennenswert zu beeinträchtigen.
Voraussetzung für die Verwendung von Bumpmaps ist ein Beleuchtungsmodell, das auf Per-Pixel-Lighting basiert. APIs wie DirectX oder OpenGL haben die nötigen Routinen bereits vorliegen. Meistens wird jedoch eine Kombination aus Vertex- und Pixel-Shadern verwendet, um die nötigen Effekte exakt zu kontrollieren.
Das Verfahren wurde 1978 von James F. Blinn entwickelt.
Height-Mapping
Die relativen Höheninformationen liegen in einer Textur in Form von Graustufen vor – der sogenannten Heightmap. Jeder Grauwert steht für eine bestimmte Höhe. Normalerweise ist Schwarz (Wert 0) die „tiefste“ Stelle und Weiß (Wert: 255) die „höchste“. Diese Form der Datenspeicherung ist nicht nur auf Bumpmapping beschränkt, viel öfter kommt sie bei der Generierung von riesigen Terrains zum Einsatz.
Da Höhenunterschiede nur durch verschiedene Graustufen auf der Textur vorgegaukelt werden, die Flächen aber glatt bleiben, treten einige sichtbare Fehler auf:
- Bei flachem Betrachtungswinkel wirkt die Struktur stark verzerrt.
- Die Silhouette bleibt so eben wie beim ursprünglichen Objekt.
- Es wird ein glatter Schatten geworfen.
- Bumps werfen keine Schatten aufeinander.
Anwendung
- Texture Baking
Der 3D-Modeller baut zwei Versionen eines Modells auf: eine hochauflösende, sehr detailreiche (100.000+ Polygone) und eine für das fertige Programm bestimmte, undetaillierte (100–10.000 Polygone). Ein Programm berechnet den Unterschied zwischen den beiden Modellen und beschreibt mit den gewonnenen Daten eine Textur. Diese Textur wird dann auf das Low-Poly-Modell gespannt. Im fertigen Spiel/Bild/Anwendung bekommt der Benutzer den Eindruck, dass das hochdetaillierte Modell verwendet wird.
- Erstellen von Hand
Bei einfachen Formen (Ritzen, hervorgehobenem Text) und Details, die ebenfalls in einer von Hand erstellten Farbtextur auftauchen (abgeblätterter Lack, Macken, Nieten) wird oft eine Bumpmap von Hand erstellt, indem mit hellen und dunklen Formen und Linien die gewünschten Bereiche herausgehoben oder vertieft werden, beziehungsweise die Farbtextur so bearbeitet und in Graustufen umgewandelt wird, dass der gewünschte Effekt erzielt wird.
Siehe auch
Weblinks
- Bump Mapping (englisch, Webarchiv)