Was ist Normal-Mapping?
Normal-Mapping kann bei 3D-Computer-Grafiken das manuelle Modellieren oder Formen von Details in der Geometrie des jeweiligen Objekts ersetzen. Mit dieser Technik werden täuschend echte Oberflächendetails erzeugt, um den realistischen Look digitaler Objekte zu verstärken. Die geometrische Komplexität erhöht sich hierbei nicht.
Grundlegendes zum Normal-Mapping-Prozess.
Bei der 3D-Modellierung werden Oberflächen mithilfe von Polygonen dargestellt. Die Beleuchtung wird anhand der Geometrie dieser Polygone berechnet – vergleichbar mit Schattierungen, die eine Zeichnung dreidimensional wirken lassen. Die Ergebnisse dieser Technik sind zwar sehr gut, doch ein hoher Detailgrad beansprucht unter Umständen viel Rechenleistung. Normal-Mapping bietet eine weniger rechenintensive Alternative, die mit der Wechselwirkung von Licht und Oberfläche arbeitet. Dabei wird die zugrunde liegende Geometrie nicht verändert.
Bei Normal-Maps werden Informationen zu einer Oberfläche in Form eines Texturbilds gespeichert. Durch die Codierung der Oberflächennormale in einer Textur lassen sich Details wie Beulen, Kratzer oder Falten simulieren, ohne dass die zugehörige Geometrie komplexer wird.
Normal-Maps werden beim Rendern anhand der geänderten Oberflächennormale berechnet. Da dafür weniger Rechenleistung erforderlich ist, lässt sich der Detailreichtum von Objekten erhöhen – und das sogar mit Echtzeit-Rendering. Normal-Maps sind daher bei Game-Entwicklern sehr beliebt.
Normal-Mapping heute.
Normal-Mapping ist nicht nur vielseitig einsetzbar, sondern beschleunigt und verbessert auch zahlreiche 3D-Workflows.
Heute kommt die Technik vor allem in Bereichen zum Einsatz, in denen Hardware-bedingte Einschränkungen gelten. Dies betrifft insbesondere die Entwicklung von Videospielen, die in Echtzeit gerendert werden müssen. Weitere Nutzungsszenarien sind Computer-animierte Filme, Visualisierung in der Architektur und Produkt-Design.
Normal-Mapping hat keinen Einfluss auf die Färbung eines Objekts und wird daher meist für Objekte mit einer nicht ganz ebenen oder glatten Oberfläche eingesetzt. Beispiele sind abgenutztes Leder, Holzmaserungen, menschliche Haut oder auch Stoff. Tatsächlich sieht fast jedes 3D-Modell damit realistischer aus.
Es gibt verschiedene gängige Tools für Normal-Mapping. Hier eine Auswahl:
1. Software für 3D-Modellierung: Mit Tools wie Blender, Maya, ZBrush und {{substance-3d-modeler}} entstehen die Modelle für das Normal-Mapping. Die Auswahl an Lösungen ist groß, und jede Software verwendet ihren eigenen Ansatz beim Modellieren und Sculpting.
2. Texturierungs-Software:: Mit Software wie {{substance-3d-painter}} oder auch Adobe Photoshop lassen sich Textur-Maps und Normal-Maps erstellen und bearbeiten.
3. Software zum Generieren von Normal-Maps: Mit dieser Software werden Normal-Maps anhand von hochauflösender Geometrie oder Texturinformationen erstellt. Beispiele sind xNormal, CrazyBump und Substance 3D Designer.
4. Game-Engines: Game-Engines wie Unreal Engine und Unity bieten die für Normal-Maps erforderlichen Tools und Rendering-Funktionen. Sie eignen sich zum Rendern ebenso gut wie für die Game-Entwicklung.
5. Programmiersprachen für Shader: Kenntnisse in Shader-Programmiersprachen wie HLSL (High-Level Shading Language) oder GLSL (OpenGL Shading Language) erleichtern das Erstellen eigener Shader einschließlich Normal-Mapping. Damit lässt sich definieren, wie die Beleuchtung mit Normal-Maps und anderen Textur-Maps interagieren soll, um überzeugende visuelle Effekte zu erzielen.
Diese kurze Liste ist ein guter Ausgangspunkt, wenn du dich über die Grundlagen des Normal-Mappings in Echtzeit-Rendering-Umgebungen informieren möchtest.
Bilder von Playground Games.
Unterschiede zwischen Normal-Maps und Bump-Maps.
Normal-Maps speichern Informationen zur Oberflächennormale in Form eines RGB-Bilds. Die Farbkanäle stehen für die x-, y- und z-Komponenten der Texturpixel des Normalenvektors. Im Vergleich zu Bump-Maps enthalten Normal-Maps deutlich mehr Informationen zur Ausrichtung einer Fläche. Die Geometrie des Modells bleibt beim Normal-Mapping unverändert, aber die Interaktion zwischen Licht und Objekten wird modifiziert.
Normal-Maps liefern exaktere Ergebnisse als Bump-Maps, weil sie nicht nur die Höhenunterschiede von Oberflächendetails erfassen.
Was sind die Vor- und Nachteile von Normal-Mapping?
1. Realistische Oberflächendetails: Mit Normal-Mapping kannst du feine Oberflächendetails ergänzen, ohne dass die Geometrie komplexer wird.
2. Effizienz: Normal-Mapping beansprucht relativ wenig Rechenleistung, insbesondere verglichen mit Techniken, bei denen für zusätzliche Details die Anzahl der Polygone in Modellen erhöht werden muss.
3. Geringerer Speicherbedarf: Bei Normal-Maps werden die Informationen in einem Texturformat gespeichert, das gegenüber Geometrieinformationen mit weniger Speicher auskommt.
4. Wiederverwendbarkeit: Normal-Maps lassen sich ohne großen Aufwand für unterschiedliche Modelle nutzen und wiederverwenden. Dies spart Zeit, Arbeitsaufwand und Speicherplatz.
5. Interaktive Beleuchtungseffekte: Normal-Mapping ermöglicht dynamische 3D-Beleuchtungseffekte mit hellen Glanzlichtern, variierenden Schatten und exakten Spiegelungen.
1. Begrenzte Änderung der Geometrie: Normal-Maps beeinflussen nur die Darstellung der Oberflächendetails, nicht aber die Geometrie an sich. Ist eine Änderung der Geometrie ausdrücklich erforderlich, muss auf andere Techniken zurückgegriffen werden.
2. Erstellung und Bearbeitung: Das Erstellen hochwertiger Normal-Maps ist nicht ganz einfach und nur mit Spezialwissen und -Software zu bewerkstelligen. Auch die Bearbeitung der sehr detaillierten Normal-Maps kann kompliziert sein.
3. Einschränkungen durch den Texturraum: Normal-Maps beanspruchen mehr Texturraum, da sie in der Regel als RGB-Bild gespeichert werden. Dies ist im Hinblick auf die Gesamtgröße des Modells und den verfügbaren Arbeitsspeicher zu berücksichtigen und kann eine sorgfältige Optimierung erforderlich machen.
4. Einschränkungen durch den Tangentialraum: Normal-Maps werden üblicherweise im Tangentialraum definiert und hängen daher von der Ausrichtung und den UV-Koordinaten des Modells ab. Dadurch können beim Anwenden einer Normal-Map auf Modelle mit unterschiedlichem UV-Layout oder unterschiedlicher Ausrichtung visuelle Artefakte auftreten.
Trotz dieser Einschränkungen ist Normal-Mapping die effektivste Technik, um die visuelle Qualität und Realitätstreue von 3D-Modellen in Echtzeit zu verbessern. Es liefert gute Ergebnisse ohne Leistungseinbußen und ist daher bei der 3D-Texturierung und beim Rendern unverzichtbar.
Für welche Fälle ist Normal-Mapping besonders geeignet?
Weitere Infos zum Thema Normal-Mapping.
Häufig gestellte Fragen.
WAS IST EINE NORMAL-MAP IM GAMEDESIGN?
WIE VIELE KANÄLE HAT EINE NORMAL-MAP?
Normal-Maps sind RGB-Bilder (Rot, Grün, Blau). Die Farbkanäle stehen für die x-, y- und z-Komponenten der Texturpixel der Oberflächennormale. Eine Normal-Map hat also drei Kanäle mit positiven oder negativen Werten.
- Der rote Kanal (R) steht für die x-Komponente des Normalenvektors.
- Der grüne Kanal (G) steht für die y-Komponente des Normalenvektors.
- Der blaue Kanal (B) steht für die z-Komponente des Normalenvektors.
Alle drei Kanäle zusammen liefern präzise Informationen zur Ausrichtung der einzelnen Texturpixel, die dann beim Rendern die Licht- und Schatteneffekte im 3D-Modell bewirken.
WOHER KOMMT DIE BEZEICHNUNG „NORMAL-MAP“?
Der Begriff „Normale“ bezeichnet einen Vektor, der orthogonal auf der Oberfläche eines Objekts steht. In Normal-Maps werden Informationen zu den Normalen eines 3D-Modells gespeichert.
Beim Rendern mit Anwendung einer Normal-Map werden die Oberflächennormalen des Modells anhand der Informationen in der Map geändert. Das Ergebnis sind Licht- und Schatteneffekte, die feine Oberflächendetails vortäuschen.