Anzeige
Tutorialbeschreibung

Normal Mapping mit 3ds Max und Photoshop

Normal Mapping mit 3ds Max und Photoshop

Seid alle herzlich gegrüßt zu meinem Tutorium über Normal Mapping mit 3ds Max und Photoshop.

Zunächst einen kurzen Satz über mich. Ich war an der Produktion des Computerspiels „Anno 1701“ beteiligt, das vor etwa zwei Jahren von der Firma Related Designs GmbH in Mainz produziert wurde. Unter anderem durfte ich dabei auch einige Gebäude erstellen. Meines Wissens ist Anno das einzige Aufbau-Strategie-Spiel, das die Normal-Map-Technologie für Umgebung und Gebäude verwendet.

Ich möchte gern euch alle meine Erfahrungen mit dieser Technologie über mehrere Tutorien verstreut mitteilen. In diesem, wie ich zugeben muss, sehr kleinen Tutorium geht es erst einmal um das grundsätzliche Verstehen. Bekanntlich liegt ja in der Kürze die Würze.

Es werden auf jeden Fall weitere umfangreiche Tutorien folgen, in denen Ihr mit mir zusammen ein kleines Haus mit Normal Mapping erstellt. In etwas fernerer Zukunft plane ich ein Tutorium über Character Modeling und Normal Mapping. Also ich hoffe, es lohnt sich für Euch, mir auf meiner Tutoriums-Expedition zu folgen.

Bild: Wie funktioniert Normal Mapping?Bilder

Abb. 1 Wie funktioniert Normal Mapping?

Abb. 1 veranschaulicht die grundsätzliche Funktionsweise von Normal Mapping.

Eine 3D-Computergrafik besteht aus der kleinstmöglichen Fläche: aus Dreiecken. Jedes Dreieck besteht aus drei Vertices/Scheitelpunkten, also drei Raumkoordinaten, und einem Vektor namens Normale. Der Normalen-Vektor ist „einfach“ ein Pfeil, der von der Dreiecksfläche weg zeigt. Aufgrund dieses Normalen Vektors weiß „der Computer“, aus welcher Richtung er eine Dreiecksfläche zeichnen soll. Die andere Seite des Dreiecks ist für den Computer und damit auch für uns Betrachter nicht sichtbar. Ich bin leider kein Programmierer und kann euch deshalb die mathematischen Grundlagen des Normal Mappings nicht beibringen. Aber als Grafiker benötigt man dieses Wissen auch nicht.

Wie ihr sicher festgestellt habt, rührt der Name der Normal-Map-Technologie von diesem Normalen Vektor her.

Normal Mapping ist eine Technologie, bei der man sehr hoch aufgelöste 3D-Modelle auf sehr niedrig aufgelöste (wenige Dreiecke bzw. Triangles) projizieren kann. Das bedeutet z. B., dass das niedrig aufgelöste 3D-Modell aus nur einer viereckigen Fläche besteht, während das hoch aufgelöste Modell aus einzelnen Ziegelsteinen besteht. Die Projektion der Ziegelsteine wird in einem zweidimensionalen Bild gespeichert, genannt Normal Map. Die Grafik-Engine des Computerspiels projiziert diese Normal Map auf das niedrig aufgelöste Modell (Low-Poly) und interpretiert die Farben in der Normal Map als Höhenunterschiede. Wenn das Low-Poly beleuchtet wird, nimmt man darauf die Ziegelsteine wahr.

Bei einem 3D-Echtzeit-Computerspiel ist die Leistung/Performance sehr wichtig. Und diese hängt u. a. davon ab, wie viele Triangles die Grafik-Engine zeichnen muss. Sind es zu viele, bricht die Leistung des Computerspiels ein und die Grafik-Engine kann nicht mehr mindestens 25 Bilder/Sekunde liefern. Das Bild ruckelt, was u. a. auch zur Folge hat, dass der Spieler nicht mehr flüssig spielen kann, wodurch das Computerspiel „unspielbar“ wird, denn nicht nur das Bild ruckelt, sondern alle anderen Berechnungen/Aktionen im Spiel werden ebenfalls langsamer.

Es ist also wichtig, so wenige Triangles wie möglich in einem Computerspiel zu verwenden. Die Normal Mapping-Technologie ist damit sehr effizient, weil die Grafik-Engine „nur“ das Lowpoly zeichnen muss und nicht jeden einzelnen Ziegelstein, die zusammen unweigerlich viel zu viele Triangles benötigen würden.
In Abb. 1 habe ich dargestellt, wie solch eine Normal Map berechnet wird. Das Highpoly wird aus mehreren Richtungen mit verschiedenen Farben beleuchtet. Dadurch entsteht eine zweidimensionale Normal Map, die für sich allein betrachtet schon Tiefe besitzt.
 
Das Highpoly muss dafür auch ein „echtes“ Highpoly sein. D. h. es muss aus Rundungen bestehen, wie z. B. die abgerundeten Quader in der Abbildung. Erst diese Rundungen erzeugen entsprechende Farbverläufe in der Normal Map, die einen Tiefeneindruck erwecken.

Bild: Ohne Rundungen keine Normal MapBilder

Abb. 2 Ohne Rundungen keine Normal Map!

In Abb. 2 sieht Ihr, dass ein „falsches“ Highpoly entsprechend eine „falsche“ Normal Map erzeugt, also eine blaue Fläche ohne Farbverläufe und damit ohne Tiefeneindruck. Das Blau rührt von der blauen Lichtquelle her, die aus der Kamera-Richtung das Highpoly beleuchtet.
 
Alles, was in der Normal Map dieses charakteristische Blau beinhaltet, wird später auch flach erscheinen. Die Quader oder quaderförmigen Ziegelsteine, wenn ihr so wollt, in Abb. 1, erzeugen Farbverläufe an den Ziegelstein-Rändern. D. h., an diesen Rändern wird später auch eine Tiefenwirkung wahrgenommen. Das „ideale“ Highpoly ist damit eine Kugel, weil jenes nur Farbverläufe in der Normal Map erzeugt und damit den stärkst möglichen Tiefeneindruck. Nun kann man natürlich keine „Kugel-Ziegelsteine“ modellieren, da Ziegelsteine nun einmal eckig sind. Aber man kann bis zu einem gewissen Grad die Ziegelsteine stärker abrunden, als sie es in der Wirklichkeit wären.

Bild: Je runder, desto effektiverBilder

Abb. 3 zeigt unnatürlich abgerundete Ziegelsteine, die eine bessere Normal Map erzeugen.

 
Wir haben Folgendes gelernt:
  • Die Grundfarbe der Normal Map ist Blau. Blau bedeutet „flach“, ohne Tiefeneindruck.
  • Farbverläufe in der Normal Map erwecken den gewünschten Tiefeneindruck und damit die Illusion eines hoch aufgelösten Modells.
  • Farbverläufe bestehen aus den Grundfarben: Rot, Rot-negativ (Cyan), Grün und Grün-negativ (Magenta).
  • Die Kugel ist das ideale Highpoly, da sie nur Farbverläufe in der Normal Map erzeugt. Das „perfekte“ Highpoly ist damit immer eine Annäherung an diese Grundform.
Noch eine Anmerkung zum Schluss: Das ältere Bump Mapping wurde durch das neuere Normal Mapping nahezu abgelöst. Die Bump Map kennt nämlich nur den Unterschied „hoch“ oder „tief“, da es nur eine Graustufen-Textur ist. Die Normal Map hingegen kennt „hoch“, „tief“ und „Richtung“, da sie aus Farbverläufen besteht. Zum Beispiel repräsentiert ein Farbverlauf von Rot nach Blau viele Farbabstufungen und jede Farbabstufung repräsentiert einen „Richtungsvektor“. Jetzt verstehen wir auch, weshalb der Name „Normal Map“ seine Bezeichnung dem „Normalen Vektor“ verdankt.
 
So, mehr Theorie benötigt ein Grafiker nicht, behaupte ich jetzt einmal. Ich hoffe, dass euch diese etwas trockene Einführung trotzdem gefallen hat. Im nächsten Tutorium gehe ich dann zur Praxis über und schildere die Erstellung einer Normal Map in 3ds Max.

Wenn Ihr Lust dazu habt, könnt Ihr gerne mein Entwicklertagebuch über die Erstellung eines Anno 1701-Gebäudes lesen (http://anno.de.ubi.com/devdiary.php?diary=devdiary_1701_6).

Es grüßt Euch

Bilder

Valentin Koch

Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von woschy
  • 26.03.2013 - 15:43

gut erklärt Valentin. danke !

Portrait von frog27
  • 25.07.2012 - 17:22

super info und klasse blog gelinkt

Portrait von Aeva
  • 20.05.2011 - 01:29

Ich schließe mich Repenning an! Vielen Dank für dieses aufschlussreiche Tut :)

Portrait von Buster221
  • 10.12.2010 - 11:41

Danke für deine Mühe.
Ich bin sehr auf deine noch folgenden Tutorials gespannt.

Portrait von Chillin_Apple
  • 31.05.2010 - 00:43

Danke, sehr Hilfreich für jeden Anfänger

Portrait von tribalcat
  • 10.03.2010 - 20:27

Danke, das war sehr aufschlussreich :)

Portrait von Gornath
  • 26.01.2010 - 23:30

Ausgezeichnet, hat mir sehr weiter geholfen, da ich mich nach längerer Pause nun langsam wieder mit dem Stoff beschäftige und nur bump mapping gewohnt war.

Portrait von wowu
  • 25.01.2010 - 00:54

Ich binn auf das nächste Tutorial gespannt.

Portrait von DGKhan
  • 22.01.2010 - 08:18

SUper! Sowas habe ich gebraucht um 3Ds Max zu erlernen.

Portrait von Aratorn
  • 06.12.2009 - 20:01

klasse tut.Hoffe die restlichen tutrials sind genauso verständlich und lassen nicht solange auf sich warten

Alternative Portrait

-versteckt-(Autor hat Seite verlassen)

  • 21.11.2009 - 01:05

Hallo Valentin,
erst mal DANKE für deinen Triumphbogen. Ich spiele Anno für mein Leben gern! ;-)

Das Tutorial hat mich, in meinen Max-Fähigkeiten, zwar nicht wirklich weiter gebracht, aber mir echt super was über die Technik dahinter erklärt!

Danke
Holger

RC-Monster-Trucks.de

Portrait von Afflatia
  • 15.11.2009 - 13:42

Einfach und Super erklärt danke :D

Alternative Portrait

-versteckt-(Autor hat Seite verlassen)

  • 11.11.2009 - 11:55

Super! Perfekt für Anfänger und verständlich erklärt!

Portrait von BenGun
  • 27.10.2009 - 00:33

Super, genau sowas brauch ich. Freu mich schon auf mehr. Besonders aufs Character modeling. Und wenn das weiter so beschrieben ist, wie das, dann wirds prima!

Portrait von SweeT_C
  • 26.10.2009 - 21:23

Auch wenn es mich vom Umfang noch nicht von den Socken haut, freue ich mich auf die nächsten Tutorials zum Thema. Ich bin zwar kein Max-User, doch das Prinzip lässt sich dann ja sicher übertragen.
Übrigens schön, das Ganze mal von einem "Insider" zu hören.

Portrait von ArtDragon
  • 26.10.2009 - 12:31

Tolle Sache, und dann auch noch vom Fachman persönlich.
Ich freu mich schon auf die nachfolgenden Teile

Portrait von Repenning
  • 26.10.2009 - 09:58

Sehr interessant und aufschlussreich erklärt, vorallem für Anfänger! Jetzt muss ich mit Bump endlich Schluss machen und mich mit Normal Map vertragen^^

x
×
×