Tutorial Modellierung eines Low-Poly Menschen Teil 2

Aus DGL Wiki
Version vom 9. Juni 2012, 17:07 Uhr von Openglerf (Diskussion | Beiträge) (Nachwort: Rechtschreibung :()

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Ave!

Und willkommen zum Nachfolger meines ersten Low-Poly-Tutorials.Nachdem wir in diesem gelernt haben aus möglichst wenigen Dreiecken eine menschliche Figur zu modellieren,beschäftigen wir uns nun mit der Texturierung eben dieses Polygoniers.

Wie bekannt tragen gerade die Texturen sehr viel zum Aussehen eines 3D-Modelles bei und können leicht zum simulieren von Details genutzt werden,ohne das dadurch die Anzahl der genutzten Polygone steigt.

In diesem Tutorial werden wir unseren fertigen Polygonhelden also mit einer selbstgemachten Textur versehen.Wenn ihr aufmerksam ward,dann habt ihr sicher bemerkt das ich im lezten Satz "einer" betont habe.Das hat auch einen Grund,denn wir belegen nicht jeden Mesh unserer Figur mit einer eigenen Textur,sondern nutzen nur eine einzige Textur für alle Meshes des Modelles.Diese eine Textur wird im Fachjargon auch "Skin" genannt und hat im Groben zwei Vorteile ggü. der Nutzung mehrere Texturen.Texturenwechsel (via glBindTexture) sind ja bekannterweise recht zeitintensiv und können bei häufigem Autreften schonmal nen Flaschenhals darstellen.Durch die Nutzung einer einzigen Textur für das komplette Modell sparen wir also ganz einfach diverse Texturenwechsel und machen der GPU das Leben leichter.Ein weiterer,vielleicht sogar besserer Grund für die Nutzung eines einzigen Skins für unser Modell ist die Tatsache das man anhand eines einfachen Texturenwechsel innerhalb seines Spiels das komplette Aussehen des 3D-Helden darüber verändern kann.Diese Technik findet auch in professionellen Spielen (u.a. UT2003) häufig Anwendung,und ein gutes Beispiel ist z.B. ein 2.WK-Shooter.Statt ein Modell für einen Wehrmachtssoldaten und eins für einen allierten Soldaten zu erstellen (und damit zwei Modelle im Speicher zu halten) wird nur ein Grundmodell erstellt,dessen Zugehörigkeit oder Spezialfähigkeit (z.B. Mediziner) dann über sein Skin sichtbar ist.

Voraussetzungen

Für dieses Tutorial benötigt ihr unbedingt einen 3D-Modeller der euch einen visuellen Editor zum Verändern der UVW-Koordinaten auf Vertexbasis und einen UVW-Unwrap-Modifikator anbietet,da ihr sonst Probleme haben werdet das im Tutorial gemachte nachzuvollziehen. Ansonsten solltet ihr wie im ersten Tutorial zumindest grundlegende Kenntnisse in Sachen 3D-Modellierung und Nutzung eurer 3D-Software mitbringen.

In Sachen Bildbearbeitungssoftware ist eigentlich alles erlaubt und ich habe zum Erstellen der Textur auch "nur" Picture Publisher 9 gentutzt,welches bei meinem Webspacepaket dabei war.Photoshop,PaintShop Pro oder Gimp (kostenlos) sollten also auch ausreichen.

Erstellen der Textur

Beginnen wollen wir also mit dem Erstellen der Textur die unsere Figur später schmücken soll.Da wir für das komplette Modell nur eine Textur verwenden,sollten wir uns erstmal Gedanken um die Einteilung eben dieser machen und dafür sorgen das alle Meshes Platz darauf haben.Unser Polygonmensch besteht aus zwei Armen,zwei Beinen,einem Becken,dem Rumpf,einem Hals und seinem Kopf.Aufgrund der Symetrie des Körpers können wir übrigens die beiden Arme und Beine auf jeweils auf ein Exemplar beschränken.Summa Sumarum sind das also 6 Körperteile,wobei man einige davon aus den anderen heraus texturieren könnte.Für das Tutorial erstelle ich nämlich einen uniformierten Soldaten,der deshalb an Beinen und Armen (bis auf Hände und Stiefel) gleich texturiert werden kann,also brauche ich keine extra Textur für das Beinkleid.Genausowenig braucht der Hals eine eigene Textur,da sich in der Textur für den Kopf garantiert genug Haut findet um sie über den Hals zu legen.

Im Endeffekt bräuchten wir jetzt also nur noch Platz für vier Körperteile auf unserer Textur (Arm,Rumpf,Becken,Kopf).Allerdings sollte man sich auch vor dem Erstellen eben dieser Überlegen,ob man nicht doch noch irgendwelche Stellen besonders behandeln will.Ist dies der Fall,sollte man das natürlich beim Einteilen des Platzes mitberücksichtigen.So hat mein Soldat auf den Schultern noch ein paar Abzeichen,also kann ich für diese nicht einfach die Textur des Rumpfes nutzen.Aber diese Besonderheiten sind abhängig von dem was ihr machen wollt,also müsst ihr euch da auch selbst was einfallen lassen.

Da sich eine solche Einteilung recht schlecht in Schrift und Wort erklären lässt,zeige ich euch mal wie ich das bei meinem Soldaten mit der Texturunterteilung gehandhabt habe.Folgend seht ihr die farblich eingeteilten Bereiche :

Tutorial Low-Poly-Mensch2 skin1 col2.jpg

Ich hoffe mal das diese Einteilung zumindest halbwegs nachvollziehbar erscheint,und rate euch sowas auch zuerst mit farbigen Blöcken durchzuspielen,bevor ihr beim Basteln der Textur plötlich merkt das kein Platz mehr für ein bestimmtes Körperteil da ist und wieder von vorne anfangen müsst. Im Bezug auf die Texturengröße gibts auch keinen allgemeingültigen Rat,denn diese hängt von mehreren Faktoren ab.Zum einen wie nahe der Spieler dem Modell je kommt,wie detailliert das Modell an sich ist und wie viele Details ihr gerne über die Textur realisieren wollt.Ich habe für mein Modell ganz einfach eine 256x256 Pixel große Textur genommen,damit ich hier und da ein Detail einbringen kann.

Da es nicht Gegenstand dieses Tutorials ist euch das Erstellen einer Textur beizubringen,überlasse ich euch mal euren Bildbearbeitungskünsten (Kleiner Tipp falls ihr v.a. Details für die Textur sucht : Die google Bildsuche hilft ungemein) und präsentiere euch direkt meine fertige Textur (etwas verkleinert) :

Tutorial Low-Poly-Mensch2 skin1 prev.jpg

Das sollte bei euch zumindest ähnlich aussehen und wenn nicht,dann nehmt halt die Farbtextur und nutzt diese zum Texturieren des Modelles.Der Rest kann ja später noch gemacht werden.

UVW-Mapping

Da wir jetzt sowohl eine fertige Textur (oder etwa nicht?) sowie ein fertiges 3D-Modell haben,wollen wir diese natürlich auch gerne zusammenführen.Dazu machen wir uns die Möglichkeit zu Nutze,das ein halbwegs brauchbares 3D-Modellierungsprogramm in der Lage ist die UVW-Koordinaten für jedes Vertex zu verändern.Wers noch nicht weis : UVW sind die Texturkoordinaten eines Vertexes und werden in OpenGL allgemein auch als STQ referenziert,wobei uns die letzte Koordinate (W) nichts angeht.

Tutorial Low-Poly-Mensch2 01.jpg
Wir laden also unser im letzten Tut gebasteltes 3D-Modell und holen uns (sofern möglich) den perspektivischen Viewport auf den kompletten Schirm.Nun öffnen wir den Materialeditor (Shortcut m) und laden in die Diffuse-Map des ersten Materials unsere Textur zu,bevor wir diese dann dem kompletten Modell zuweisen.Ausserdem sollte natürlich "Map im Viewport zeigen" aktiv sein,da wir unsere Textur später sonst nicht sehen.Momentan sehen wir natürlich noch nicht viel von der Textur,da kein einziger Mesh UVW-Koordinaten besitzt.

Anfangen wollen wir mit dem Arm und nutzen ein nettes Feature von 3DSMax um diesen einzeln bearbeiten zu können,nämliches das Isolationstool.Dazu selektieren wir den Arm und drücken ALT+Q (oder im Hauptmenü über den Eintrag Tools->Selektion isolieren) und schon wird der Rest des Models ausgeblendet,während ein kleines Fenster erscheint das uns über den Isolationsmodus informiert. Dem Arm,allein auf dem Schirm und noch selektiert,weisen wir jetzt aus der Modifikatorliste den Unwrap UVW-Modifikator zu (befindet sich recht weit unten),der auch automatisch UVW-Koordinaten für den selektieren Mesh erstellt,die wie zu sehen allerdings keinesfalls brauchbar sind.


Tutorial Low-Poly-Mensch2 02.jpg
Als nächstes wollen wir uns endlich ins UVW-Mappen stürzen.Dabei gehen wir beim Arm Seite-für-Seite vor,und selektieren deshalb alle Faces der Vorderseite.Dazu öffnen wir den UVW-Unwarp-Modifikator des Arms und klicken auf "Face selektieren",bevor wir dann im Viewport alle Faces der Vorderseite des Armes selektieren (Um mehrere Objekte zu selektieren STRG gedrückt halten).Wenn ihr das gemacht habt,dann sollte eure perspektivische Ansicht in etwa so aussehen :

Tutorial Low-Poly-Mensch2 03.jpg

Nun öffnen wir durch einen Klick auf "Bearbeiten..." in den Eigenschaften des UVW-Modifikators den UVW-Editor,der danach ungefähr so auf eurem Bildschirm erscheinen sollte :

Tutorial Low-Poly-Mensch2 04.jpg

Was euch evtl. direkt auffällt (und den ein oder anderen evtl. auch schon ein paar nerven gekostet hat),ist die Tatsache das dort wo eure Textur sein sollte nur ein schwarzes Quadrat ist.Das liegt ganz einfach daran das dass 3DStudio die Textur aus einem mir unerklärlichen Grund mit einer Helligkeit von 0 anzeigt.Wollt ihr also was von eurer zugewiesenen Textur sehen,dann öffnet mit bem Button ganz unten rechts (Show options) eine kleine Zusatzleiste am unteren Fensterrand und setzt die Helligkeit dort auf 1.Ausserdem solltet ihr auch den Haken vor "Bitmap wiederholen" (Tile Bitmap) entfernen. Nun sind wir also endlich bereit unserem Arm die passenden UVs zuzuordnen.Ein kleiner Tipp für die Produktivität : Wenn ihr eure Fenster so anordnet wie ich (links UVW-Editor und das zu editierende Objekt rechts daneben),dann lässt sich nicht nur bequem arbeiten,sondern die Änderungen im UVW-Editor auch in Echtzeit auf dem Modell verfolgen :

Tutorial Low-Poly-Mensch2 05.jpg


Tutorial Low-Poly-Mensch2 06.jpg
Immernoch die Frontfaces unseres Armes selektiert klicken wir in den Eigenschaften des Modifikators jetzt also auf Planar Map um die Texturkoordinaten der gewählten Vertexe auf die Textur zu projizieren.Bei den Frontfaces wird die Notwendigkeit dieser Aktion noch nicht so recht sichtbar,aber spätestens bei den Seiten des Armes wird euch dies klar werden.Ausserdem aktivieren wir "Filter selected Faces",damit nur die gewählten Faces im UVW-Editor sichtbar sind.Habt ihr dieses Prozedere korrekt nachvollzogen,dann sollte euer UVW-Editor in etwa so aussehen :

Tutorial Low-Poly-Mensch2 07.jpg

Nun sehen wir ein korrektes Abbild unserer Armgeometrie auf der Textur,allerdings passen die Texturkoordinaten noch absolut nicht.Wir schnappen uns also die Vertices des Armes und verschieben diese so,das sie den Bereich einnehmen den wir auf unserer Textur für den Arm vorgesehen haben.Ich mach das übrigens lieber über die Eingabefelder,denn das blosse Verschieben mit der Maus ist nicht gerade genau.Danach sollte die Vorderseite des Armes so auf der Textur zugewiesen sein und wie rechts zu erkennen aussehen :

Tutorial Low-Poly-Mensch2 08.jpg Tutorial Low-Poly-Mensch2 09.jpg

Diese Prozedur müsst ihr jetzt natürlich für alle vier Seiten des Armes,sowie die Unterseite der "Hand" anwenden.Wer dann auch noch mitgedacht hat,wird sich nicht blindlinks auf den zweiten Arm stürzen,sondern diesen durch eine Kopie unseres bereits UVW-Gemappten Armes ersetzen.

Weiter gehts jetzt mit dem Torso unseres Polygonators.Nachdem wir diesen angewählt haben,gehen wir wieder in den Isolationsmodus und selektieren wie gewohnt alle Frontfaces.Allerdings werden wir jetzt direkt sehen dass das Mapping (welches momentan auf "Averaged Normals" steht) nicht "korrekt" ist,denn das gelbe Mappingquadrat steht schief (siehe Links).Um das zu korrigieren (damit die Frontfaces des Torsos auch auf der Textur richtig liegen) wählen wir diesmal bei den Sub object Parametern "Z" und sofort sollte das Mappingquadrat in der richtigen Position liegen (siehe Rechts).Hier könnt ihr also je nach Bedarf mit den Optionen rumprobieren und sobald ihr die richtige Einstellung gefunden habt wieder auf Planar Map klicken :

Tutorial Low-Poly-Mensch2 10.jpg Tutorial Low-Poly-Mensch2 11.jpg

Auch diesmal skaliert und verschiebt ihr die Vertices der Vorderseite des Torus solange im UVW-Editor,bis diese alle im dafür vorgesehen Bereich der Textur liegen.Evtl. müsst ihr an einigen Stellen noch ein wenig rumschieben bis alles so aussieht wie es soll :

Tutorial Low-Poly-Mensch2 12.jpg Tutorial Low-Poly-Mensch2 13.jpg

Zur Texturierung der Rückseite bzw. der beiden anderen Seiten könnt ihr übrigens ganz einfach den Teil der Textur nutzen in dem keine Medallien abgelegt sind.Folgend seht ihr den gemappten Rücken (oben) und eine Seite (unten) :

Tutorial Low-Poly-Mensch2 14.jpg

amit wären wir eigentlich auch schon am Ende des Tutorials angelangt.Euch jetzt noch bebildert zu erzählen wie die restlichen Körperteile texturiert werden würde,wäre in meinen Augen Schwachsinn.Die Grundlagen und evtl. auftretende Schwierigkeiten hab ich ja bereits angesprochen,und den Rest des Modells solltet ihr ohne Problem fertigtexturieren können.

Nachwort

Wenn ihr meinen Beschreibungen folgen konntet,dann sollte euer Polygonsoldat nun in etwa so aussehen:

Tutorial Low-Poly-Mensch2 15.jpg

Das ist doch die Mühe wert, oder? Zumal ihr nun behaupten könnt neben dem Modell auch noch die Textur für euer Modell komplett selbst erstellt zu haben. Außerdem bietet sich euch jetzt durch die Nutzung eines einzigen Skins für unser Modell noch jede Menge Erweiterungsmöglichkeiten, von der andersfarbigen Uniform bis hin zu einer total anderen Bekleidung.

Wie immer hoffe ich, dass euch dieses Tut so viel Spaß gemacht hat wie mir das Verfassen eben dieses. Ich bin auf euer Feedback und eure Modellierergebnisse mehr als gespannt!


Sascha Willems




Nächstes Tutorial:
-

Schreibt was ihr zu diesem Tutorial denkt ins Feedbackforum von DelphiGL.com.
Lob, Verbesserungsvorschläge, Hinweise und Tutorialwünsche sind stets willkommen.