NormalMap-Online |
In den Kommentaren zum Artikel auf New World Notes wurde aber von Bellahyae eine Online-Seite empfohlen, mit der sich für Second Life die gleichen Schritte durchführen lassen. Es handelt sich um die Seite NormalMap‑Online. Ich habe das ausprobiert und fand es ziemlich gut. Vor allem ist es einfach zu bedienen. Deshalb zeige ich nun, wie man aus vorhandenen, ganz normalen Texturen, sowohl eine Normal Map als auch eine Specular Map erstellt, die man in Second Life als Materialtexturen einsetzen kann.
Vor drei Jahren hatte ich schon einmal eine ähnliche Anleitung geschireben, die aber nur eine Normal Map erzeugte und vergleichsweise kompliziert war, gegenüber der Anwendung von NormalMap‑Online.
Vorabinformation: Ich verwende bei den Begriffen und Bildern hier im Beitrag, die Bezeichnungen aus dem offiziellen SL Viewer mit deutschsprachiger Oberfläche.
Grundlagen
Auf die Grundlagen gehe ich jetzt nicht in voller Tiefe ein. Nur kurz auf die Begriffe der drei unterschiedlichen Texturen.
- Texture (diffuse) ist die Standardtextur, die man in Second Life schon immer in Verbindung mit Oberflächen verwendet hat.
- Bumpiness (normal) heißt im Baufenster die Normal Map, die einer herkömmlichen Textur eine Tiefe hinzufügt.
- Shininess (specular) heißt im Baufenster die Specular Map, die einer herkömmlichen Textur einen Glanz (Lichtreflektion) hinzufügt.
Diese Textur wird hier im Beispiel verwendet |
Zum Nachvollziehen habe ich für die Anleitung eine Textur aus der Inventar-Bilbliothek genommen, Da Linden Lab bei denen keine eingeschränkten Berechtigungen vergeben hat, gehe ich davon aus, dass sie frei verwendbar sind.
Am besten kann man den Unterschied einer normalen Textur gegenüber einer mit Material versehenen Textur bei Backsteinen sehen, da die Fugen zwischen den Steinen exakte Vertiefungen haben. Dazu habe ich in der LL‑Bibliothek im Inventar die Textur Bricks in den allgemeinen Texturordner kopiert. Zu finden ist die Bricks-Textur unter:
> Bibliothek > Texturen > Buildings > Bricks
Natürlich kann man sich noch beliebige andere Texturen aus der Bibliothek kopieren, die man auprobieren will. Oder man nimmt einfach Texturen, die man schon auf Festplatte hat.
Nach dem Kopieren im Inventar einfach doppelt anklicken und im Vorschaufenster mit Speichern unter auf Festplatte speichern.
Bricks Textur speichern |
Originaltextur in Graustufen umwandeln mit Irfan View |
Kontrast erhöhen mit "Auto-Korrektur", ebenfalls über IrfanView |
Erstellen von Normal Map und Specular Map
Nun ist alles vorbereitet für die Berechnung der beiden Material Maps. Wenn noch nicht getan, ist es jetzt Zeit, die Webseite NormalMap‑Online zu öffnen. Der Autor Christian Petry kommt übrigens aus Deutschland und hat hier seine Homepage.
Als erstes wird in das linke der drei Grafikfenster die Graustufentextur (oder auch die Originaltextur) geladen, für die man Maps berechnen will. Einfach in das linke Fenster klicken und im erscheinenden Fenster die Datei auswählen, die wir in Graustufen umgewandelt haben (z.B. Bricks_sw.png).
Das mittlere Fenster und die Optionen darüber dienen dann der Erstellung der verschiedenen Materialtexturen. Neben der Normal Map und Specular Map, kann man auch noch eine Displacement Map und eine Ambient Occlusion Map erzeugen. Da die aber von SL nicht unterstützt werden, lassen wir diese beiden Registerkarten außer Acht.
Im rechten Fenster kann man alle Änderungen der vier Map-Texturen aus dem mittleren Fenster direkt in Echtzeit sehen. Standardmäßig ist diese Anzeige schwarzweiß. Will man die Vorschau in Farbe sehen, so wie es auch später in Second Life aussehen wird, sollte man die Originaltextur (in meinem Fall die Bricks.png) über den Load...-Button neben dem Eintrag Diffuse Map laden und die Checkbox Diffuse aktivieren. Und da in SL ja zwei der vier Maps nicht unterstützt werden, sollte man auch noch die Checkboxen neben Displacement und AO deaktivieren. Damit entspricht die Vorschau ziemlich genau dem, was später in SL zu sehen sein wird.
Normal Map
Nun kann man beginnen, mit den drei Schiebern über dem mittleren Fenster zu spielen. Und zwar zuerst in der Registerkarte Normal. Welche Werte man letztendlich nimmt, bleibt jedem selbst überlassen. Man muss halt mit dem Ergebnis im Vorschaufenster zufrieden sein. Die Voreinstellung beim ersten Öffnen von NormalMap‑Online ist schon gar nicht so schlecht. Für die Backsteine habe ich die Werte genommen, die im nächsten Bild zu sehen sind.
Erstellen der Normal Map |
Die Einstellungen bewirken im Einzelnen:
Strength:
- Damit lässt sich die Stärke der 3D-Struktur einstellen. Je höher der Wert, desto höher die optische Tiefe der Struktur.
- Ändert die Schärfe der Konturen. Je höher der Wert, desto mehr werden die Konturen verrundet.
- Ändert die allgemeine Schärfe der Textur. Sollte man normalerweise bei 0 (keine Änderung) belassen. Einfach im Vorschaufenster beobachten, was passiert, wenn man den Wert ändert.
- Bestimmt die Art, wie Strukturkanten in der Ursprungstextur erkannt werden. Weiter hilft hier Wikipedia: Sobel / Scharr.
- Damit lassen sich Erhöhungen und Vertiefungen invertieren, also in die Gegenrichtung umkehren.
Specular Map
Jetzt geht es zur Registerkarte Specular. Hier stehen als Voreinstellung alle Schieber auf dem Wert 1 (volle Stärke). Es kann jedoch sein, dass man ein Material verwendet, das eigentlich gar nicht wie eine Speckschwarte glänzen soll. Die Backsteine hier aus dem Beitrag sind ein gutes Beispiel dafür. Dehalb habe ich die Strength auf den Wert 0.5 reduziert. Der Wert 0 ergibt übrigens gar keinen Glanz und bevor man so eine Map erstellt, lässt man sie lieber ganz weg. Kommt auf das gleiche raus.
Erstellen der Specular Map |
Auch hier die Einstellungen im Einzelnen:
Strength:
- Damit lässt sich die Stärke für den Glanz einstellen. Je höher der Wert, desto stärker der Glanz.
- Hier bin ich nicht ganz sicher. Aber ich denke, es wird festgelegt, in welchem Grauwertbereich Glanz entstehen soll. Einfach beim Ändern die Vorschau betrachten, dann ist die Auswirkung leicht ersichtlich.
- Gibt an, wie weit sich der Glanz ausbreitet, beginnend mit dem Grauwert, der bei "Mean" eingestellt wurde.
- Legt die Abnahme des Glanzes vom hellsten Punkt fest. No = keine Abnahme / Linear = gleichmäßige Abnahme / Square = quadratische Abnahme.
Maps speichern
Hat man alles so eingestellt, dass man mit dem Effekt in der Vorschau zufrieden ist, speichert man für jede Registerkarte die Map separat ab. Das geht unterhalb des mittleren Fensters über den Download-Button. Das Format "PNG" kann man ruhig übernehmen, genauso wie die Opacity (Deckkraft).
Ein kompletter Materialsatz an Texturen |
Texturen hochladen
Jetzt kann man die Map-Texturen nach Second Life hochladen. Achtung: Die Graustufentextur braucht man in SL nicht. Und im Fall des Beispiels hier, bei dem ich die Ursprungstextur aus SL heraus gespeichert hatte, muss man die natürlich auch nicht hochladen. Also nur die beiden Maps.
Texturen anwenden
Seit einiger Zeit gibt es im offiziellen SL Viewer in der Registerkarte Textur drei Radiobuttons, über die man den jeweiligen Textur-/Map-Typ auswählen kann. Zum Ausprobieren reicht ein gerezzter Würfelprim aus. Zuerst lädt man die Ursprungstextur bei aktiviertem Radio Button Texture (diffuse). Achtung: Wenn man nun an Skalierung, Drehung oder Versatz etwas ändert, muss man diese Änderungen auch bei den anderen beiden Textur-Typen vornehmen, damit alle drei Texturen deckungsgleich bleiben. Einige TPVs haben auch eine Funktion zum Kopieren der Werte auf alle drei Texturen eingebaut. Der SL Viewer hat das nicht.
Nach der diffusen Textur, aktiviert man dann den Radiobutton Bumpiness (normal) und fügt die Normal Map ein. Zum Schluss aktiviert man Shininess (specular) und fügt die Specular Map ein. Nachfolgend sind drei Screenshots mit den unterschiedlichen Texturen zu sehen, die ich für das Backstein-Beispiel vorbereitet habe.
Diffuse Map | Normal Map | Specular Map |
Ausleuchtung
Materialtexturen, die einen starken Effekt haben, kann man eigentlich bei jeden Lichtverhältnissen wahrnehmen. Jedoch kann man mit gezielten lokalen Lichtern den Effekt noch verstärken. Dazu reicht es, eine kleine Kugel zu rezzen und in der Registerkarte Eigenschaften die Checkbox Licht zu aktivieren. Den Radius stelle ich dann meistens auf 2 Meter, wähle eine blasse Farbe (kommt besser als weißes Licht) und platziere die Kugel unmittelbar vor meiner Texturfläche. Wenn ich mit dem Effekt zufrieden bin, stelle ich die Transparenz der Lichtkugel auf 100%, so dass man sie nicht sieht (das Licht aber schon).
Licht einschalten in Registerkarte "Eigenschaften" | Transparenz auf 100% macht Lichtprim unsichtbar |
Ergebnisse
Hier nun das Resultat der Backsteintextur. Links ist ein Prim nur mit der diffusen Textur, rechts zusätzlich mit Normal Map und Specular Map.
Backsteintextur - links ohne, rechts mit Material Maps |
Hier nun noch ein paar Beispiele, ebenfalls mit Texturen aus der LL-Bibliothek.
Bei Holzplanken habe ich nicht so viel Effekt erzielen können. Wahrscheinlich auch, weil ich hier die Specular Map ganz weggelassen habe, da Holz nicht wirklich viele Reflektionen erzeugt. Links wieder die Originaltextur, rechts mit Normal Map.
Holzplanken - links ohne, rechts nur mit Normal Map |
Blaue Kacheln - links ohne, rechts nur mit mit Material Maps |
Bodenfliese - links ohne, rechts nur mit mit Material Maps |
Uff, ist jetzt doch etwas lang geworden. Im Grunde wollte ich mit diesem Tutorial nur die Webseite "NormalMap‑Online" vorstellen, da ich sie zum Erstellen von Materialtexturen in Second Life für ausreichend halte.
Links
- Anwendungen:
- Anleitungen
Tolle Anleitung Maddy, sehr verständlich. Danke sehr :-)
AntwortenLöschenIch werde es auch mal ausprobieren mit dem Firestorm.
Die Niki
hey dankeschön! Was Du alles entdeckst! Toll das man das online machen kann.
AntwortenLöschenDie Sache mit den Normal Maps ist ja auf der einen Seite faszinierend. Auf der anderen scheint es aber deutlich Probleme mit anderen Alphatexturen zu geben. Wenn ein Objekt mit einer Alphatextur vor einem Objekt mit Normalmap liegt, habe ich auf meinem Viewer Darstellungsprobleme. Die Textur im Vordergrund wird nicht mehr korrekt angezeigt.
AntwortenLöschenIn Verbindung mit Alphatexturen hat der SL Viewer generell Probleme. Auch mit anderen Objekten, die keine Normal Map verwenden. Mir fällt das immer auf bei Bäumen, die auf Sim-Surrounds stehen. Die scheinen durch fast alle Objekte hindurch, die perspektivisch eigentlich vor den Bäumen sein sollten.
LöschenFür die Probleme mit Alphatexturen bei den Normal Maps, gibt es in der SL Wiki eine kleine Hilfe, was man alles beachten sollte. Leider nur auf Englisch:
>> Alpha Modes Do's and Don'ts
Danke sehr für die Antwort!
LöschenViele Grüße,
Uri