Gerade im Bereich der Textur sollte dieser Charakter durch einen hohen Detailgrad glänzen. Denn in den hochaufgelösten Fotovorlagen von 3Dsk war Natalie quasi komplett gescant worden. Und obwohl ich eigentlich Texturen nicht so gern mache kam ich hier schnell vorran und erziehlte selbst für mich beeindruckende Ergebnisse.
UVW-Map:
Grundlage jeder Textur ist eine möglichst ordentliche UVW-Map, dabei sollten möglichst wenige Schnittkanten entstehen und alles auf dem Zero-Quad seinen Platz finden. Ich entschied mich klassisch die Arme und Beine abzutrennen und die Torsoschnittkante am Rücken entlanglaufen zu lassen. Hier in der aufgespannten Ansicht der Haut erkennt man auch gut die Polygonanzahl des Modells (ca. 20.000 davon die hälfte modelliert).
Zur Erstellung der UV’s verbesserte ich meine Technick um einiges. Anstatt einzelne Boxmapping-Teile zu stitchen, kombienierte ich verschiedene Zylindrische und Planare Maps und relaxte diese bis zum obigen Ergebnis.
Da ich später Normalmaps in ZBrush erstellen möchte ist es auch wichtig das es keine überlapenden Bereiche entstehen. Hot-Spots für sowas sind Mund, Finger- und Zehnägel und die Ohren.
Ich machte auch mal nen kleinen Abstecher zu DeepUV und versuchte dort meine Maps zu verbessern, aber leider erwies sich dieses Tool als nicht großartige Arbeitserleichtung, obwohl es ein paar Funktionen besitzt die in Max fehlen.


Textur – difuse:
Im Difusechannal befinden sich alle grundlegenden Farbinformationen, somit ist dieser Kanal wohl der wichtigste und bedarf besonderer Gründlichkeit.
Um einen möglichst hohen Detailgrad zu wahren entschied ich mich für eine Mapgröße von 8192 x 8192 Pixel was wirklich noch feine Hautporen erfasst. Leider geht Photoshop bei solchen Größen leicht in die Knie und so splittete ich die einzelnen Bodyparts zu neuen Dateien.
Auf Grundlage der UVW-Map werden die Texturen so erstellt das alle Polygone ihre Farbinformationen erhalten. Das ganze sieht etwas witzig aus aber man kan sich schon vorstellen wie die einzelnen Stücke über das Modell gezogen werden und wo später die einzelnen Teile landen. Leider sieht man hier nicht mehr viel von den feinen Details aber dieses Bild entspricht auch lediglich 5,8% der Originalgröße.
Hier wäre zum Vergleich mal eine Detailansicht und ich glaube damit wird deutlich wieviel Information in der Textur enthalten ist, vor allem wenn man es mit der Größe der kompletten Map oben vergleicht.
Aus den verschiedenen Fotos aller Ansichten werden die entprechenden gut belichteten Teile ausgeschnitten und dann mit fließenden Übergängen wieder zusammengesetzt so das sie zu den UV’s passen. So entsteht nach und nach die komplette Haut mit all ihren feinen Farbunterschieden (von denen ich selbst überrascht war) und feinen Detail wie Leberflecken und feinen Härchen.
Wenn man diese Textur dann im 3D-Programm zuweist bekommt das Modell erst seine Natürlichkeit. Die Farbunterschiede platzieren sich korekt und wirken nun mit dem Modell zusammen. Hier sieht man noch die Schittkanten des UV, die werd ich später mit BodyPaint entferenen. Nicht das hier jemand denk das wär schon alles, dies ist vorerst ein einfaches Standartmaterial ohne Bump oder Specular. Später werde ich einen Skinshader nutzen, aber das seht ihr dann …



Textur – bump
Nun hab ich mich zur Abwechslung wieder der Textur gewidmet und bin etwas weiter. Um eine passende Bumpmap zu erstellen reicht mir für Natalie natürlich nicht die einfache Photoshop-Sättigung verringern-Textur. Es sollte schon etwas mehr sein, also geht mit dem Model zurück nach ZBrush.
Im fünften Subdivide-Level mit ca. 10 Mio. Polys lassen sich dann feinste Detail in die Geometrie einprägen. Als Grunglage nutzte ich eine Texturstamp-Methode die alle feinen Details auf die highres Geometrie überträgt.
Für die dies interresiert: man legt eine S/W-Version der Textur in ZBrush drauf und maskiert diese nach ihrer Intensität, dann erhöt man unter den Deformations ein wenig das Inflat und Smooth-Level und fertig – natürlich sind korekte UV’s ein Muss.
Nachträglich kan man kleine Feinheiten wie Fältchen an Augen, Lippen, Hand, Füßen und andere Details aufbringen. Ich hatte glücklicher Weise wenig zu tun da meine Haut jung und zart wirken soll.
Um diese Details auf mein Modell zu übertragen wird eine Normalmap erzeugt, in der die verschiedenen Höhen in den Farbkanälen gespeichert sind. Da dies mit der normalen ZBrush-Funktion viele Fehler verursachte benutzte ich dach ZMapper Plugin. In Kombination mit einer in Photoshop erstellten Normalmap liesen sich dann alle Fehler beseitgen.
Shader – SubSurfaceScattering
Um eine möglichst realistische Haut zu erzeugen bedarf es aber eben etwas mehr als nur guter Texturen. Vorgefertigte Shader wie der Fast-SSS-Shader von MentalRay hefen hier auf eine einfache Art weiter. Sie bieten verschiedene Schichten und besondere Einstellungen für Galz und Reflektionen.
Leider unterstützt MentalRay nicht direkt mein HairFX-plugin so das ich die Haare später in Geometie baken muss. Also bin ich noch nicht ganz entschlossen ob ich wirklich den Renderer wechsle, obwohl GlobalIllumination angedacht ist.
Ein Unterschied ist schon deutlich zu erkennen, jedoch fehlen auch noch viele Einstellungen. Zum Beispiel muss noch der Glaz über eine extra Specularmap ausgesteuert werden.
Ich werde im Weiter beide Materalien optimieren um mir den Export in eine Echtzeitengine offen zu halten.
Nun zum Sahder selbst: Meine Momentanen Einstellungen sind noch nicht optimal aber sie gehen in die richtige Richtung. Einer der Effekte die sonst nur schwer zu erzeugen sind, ist das Durchscheinen von dünnen Körperpartien wie dem Ohr. Hier hilft der Shader einem ungemein und bietet über ein Farbfeld und einen Wert völlige Kontrolle.
Im Subdermal-Layer deklariert man wie stark sich das Fleisch abzeichnet und wie rosa die Haut erscheint. Hier kann auch die Schattenweichheit mit kontrolliert werden.
Im Epidermal-Layer befinden sich die Farbinformationen der Haut also meine Textur, diese wird nun durch die anderen Layer beeinflusst.
Dazu kommt noch meine Normal-Bump um die Unebenheiten einzufügen.

Das Auge
Der Augapfel ist zügig aus einer Kugel erstellt, wobei ein innerer Ball dann die Farbinformationen trägt und ein zweiter, leicht größerere, nur für die Reflektionen zuständig ist.
Auch hier wurde an Texturgröße nicht gespart und der Eyeball besitzt eine Mapgröße von 1024 x 1024. Die Farbinformationen sind zum Teil aus den Fotos gegrabt und auf die Größen angepasst. Über eine Bumpmap werden die feinen Äderchen und und Härchen der Iris hervorgehonen. Um mal wieder das Normalmap-Plugin für Photoshop zu nutzen habe ich noch die Normalmap dazu erstellt.
Bei dem Reflektionseyeball bin ich mit dem Shader noch nicht ganz zufreiden. Das aus einem Blin- und Metalshader zusammengesetzte Material Reflektiert noch etwas zu stark, aber es geht in die richtige Richtung und ist vorerst in Ordnung.