Texturieren eines Vehicles für einen Game-Mod


Aufgabenstellung:

Das fertig modellierte und ausgelegte Modell soll mit Texturen versehen werden.
Dabei sollen Shading, Shatten und Materialeigenschaften in die Texturen eingearbeitet werden.
Die Texturen (Materialien) werden "ingame" 100 % selbstleuchtend dargestellt.

Drei Texturen 1024x1024 nach UVW-Layout.

Das Texturieren für Echtzeitmodelle unterscheidet sich in einigen Punkten zum Texturieren für gerenderte 3D-Modelle.
Für ein herkömmliches 3D-Modell werden, für das nachträgliche Rendern und Ausgabe als 2D-Bild, Materialien definiert, die bestimmte Eigenschaften aufweisen.
Diese Eigenschaften wie z.B. Farbe, Glanzgrad, Transparenz ... versteht der Renderer der verwendeten 3D-Software, und kann damit das demetsprechende Bild berechnen.
Oft sind die verwendeten Materialien sehr komplex und gehen weit über einfache Texturierungen z.B. Bilder für den Diffus-Kanal hinaus.
Diese aufwendigen Eigenschaften oder auch Berechnungsmodelle wie. z.B. Globale Beleuchtungsmodelle, resultieren auch meist in langen Renderzeiten.

Echtzeitengines haben nur sehr begrenzte Möglichkeiten Materialeigenschaften wiederzugeben. Dies ist hauptsächlich auf den hohen Renderaufwand zurückzuführen.
So ist beispielsweise (noch) kein echtes Raytracing in Echtzeit möglich oder Schattenberechnungen sind meist sehr einfach.

Heute wird hauptsächlich an Shadertechnologien für die Graphikkarte gearbeitet.
Diese Shader sind Berechnungsprozesse, die nach dem eigentlichen Rendern der Geometrie von der GPU der Graphikkarte übbernommen werden, um bestimmte Effekte zu erzielen.
Für die Programmierung von solchen Shadern werden s.g. APIs ( Application Programming Interfaces ) verwendet. Die zwei bekanntesten sind DirectX und OpenGL.
Bekannte Shadermodlle sind Vertex-Shader und Pixel-Shader.

Die Basistexturen für Echtzeitmodelle werden jedoch fast immer "speziell" hergestellt.
Dabei werden meist Schatten- und Lichtinformationen, Oberflächenstrukturen, Graphiken oder sonst. Details, direkt in die Texture eingearbeitet. Oft, und meist um auch Polygone zu "sparen", werden Details wie z.B. Schrauben, Löcher, Bedienelemente, Refienprofile usw. auf die Textur gezeichnet um so einen modellierten Eindruck zu erwecken.
Alpha-Kanäle (Transparenz-Kanäle) kommen sehr häufig zum Einsatz, um z.B. feine Gitterstrukturen, Zäune, Fachwerkskonstruktionen usw. zu "simulieren".

Das Herstellen dieser Textur erfolgt hauptsächlich in einem Bildbearbeitungsprogramm, wobei meist Collagen und Retouchen aus vielen verschiedenen Bestandteilen die endgültigen Texturen ergeben. Die Texturierung von Echtzeitmodellen kann jeden gewünschten Stil annehmen, und ist meist ein einzigartiger Stil des Texture-Artist.
Für das Erstellen von einzigartigen Texturen sind intensive Kentnisse von Bildbearbeitungssoftware und graphisches, gestalterisches Gefühl von grossem Vorteil.
Meist sind gute 2D-Graphiker auch sehr gute Texture-Artists.

Das modellierte und vollständig ausgelegte 3D-Modell des Pickups ist die Grundlage für den folgenden Texturierungs-Prozess.

3D-Modell des Pickups..

Zuerst werden die Bauteile mit einfachen Diffus-Texturen texturiert, um die Oberfläche des Modells zu erzeugen.


Proportionen des Pickups

Für das weitere Beispiel wird hier nur die ID1 gezeigt. ID2 und ID3 werden analog zu ID1 bearbeitet.
Hier werden mehrere verschiedene Photo-Texturen verwendet.
Dies ist möglich, durch Zuweisen von Texturen auf dem Subselection-Level (Polygone).


ID1 mit verschiedenen Rosttexturen
rechts oben: die Texturkoordinaten mit einer Rosttextur.

Durch die Möglichkeit des Texture-Bakings wurde das Texturieren von Echtzeitmodellen extrem vereinfacht.
Schatten- und Lichtinformationen, Oberflächenstrukturen usw. muessen nicht mehr von Hand in die Textur gezeichnet werden, sondern können direkt aus der 3D-Szene auf die Texturen der 3D-Modelle übertragen werden.

Dies ermöglicht nicht nur ein exaktes Darstellen von 3D-Modellen, sondern verkürzt auch die Prozesszeiten.
Falls die 3D-Software die Möglichkeiten des Textur-Bakings anbietet sollten diese Funktionalitäten unbedingt ausgenutzt werden.

In diesem Beispiel wird das Texture-Baking dazu verwendet, um unterschiedliche Layers der einzelnen Baugruppen zu erzeugen, und diese in Photoshop zu mischen, um eine komplexe Oberflächenstruktur und einen einzigartigen Stil zu erzeugen.


Es werden mit dem Render to Texture tool (in 3ds max ab version 5.0 integriert), die Lichtinformationen, zusammen mit den zugewiesenen
Rosttexturen in eine neue Textur gebaked.
Bei der ersten Layer wird keine Specular-Information verwendet.
Rechts: Die neue Textur.

Mit einem schwarzem Material und einem anderen Lichtsetup wird nur die Specular Information in eine neue Ebene gebaked.


Links: Die Texturkoordinaten der Baugruppe ID1.
Rechts: Die neue Textur.

Weitere Layers mit unterschiedlichen Materialien und Lichtsetups werden erstellt, um eine möglichst breite Auswahl für das Zusammenstellen
der finalen Textur zu haben.
Sehr viele einzelne Details werden aus Phototexturen hinzugefügt und retouchiert. Text und Graphiken werden erstellt, und alle Ebenen miteinander so kombiniert, damit die finale Skin den gewünschten Designvorgaben entspricht.


Die Bilddatei in Adobe Photoshop mit den unterschiedlichen Ebenen.
Die eigentliche kreative Arbeit erfolgt im Bildbearbeitungsprogramm. Jedoch wurde mit dem Texturebaking viel Zeit gespart, um eine sehr gute
Ausgangsbasis zu erhalten.


Ein Detail der Textur

Ein Detail der Textur


Hier die Baugruppe ID1 mit der finalen Textur zugewiesen. Dieses Bild entspricht in etwa der Darstellungsqualität der Echtzeitengine.
Das Modell wurde ohne zusätzlicher Ausleuchtung gerendert. Das Material ist 100% selbstleuchtend.


Die selbe Vorgehensweise wurde für die ID2 und ID3 angewandt.
oben: die finalen Testuren der drei Objekt(-gruppen).


Finales Modell mit Texturen (gerenderte Ansicht). Teturen sind 100% selbstleuchtend.