Workflow

Aus Hyperweb & OpenSim
Wechseln zu: Suche

Mit Blender von der Idee zum Mesh mit Textur (Workflow)

Vorwort

Warum noch ein weiteres Blender-Tutorial? Es gibt bereits mehr als genug Anleitungen im Web, und dies soll deshalb auch kein Blender-Tutorial werden. Entsprechend wird hier nicht auf Details eingegangen zur Bedienung von Blender an sich. Aus eigener Erfahrung hilft da eh nur viel Üben, Suchmaschinen fragen und Tutorials durcharbeiten.

Ich fand jedoch keine zusammenhängende Beschreibung, wie man ein texturiertes Mesh für OpenSim erzeugt, und verlor mich oft in diversen Details. Blender ist mächtig und innerhalb des Tools ist vieles möglich, was sich hinterher nicht nach OpenSim exportieren lässt, und viele gefundene Rezepte führten mich in Sackgassen. So beschloss ich, mir und anderen als Gedankenstütze einen einfachen "Workflow" vom Nichts zum texturierten OpenSim-Mesh aufzuschreiben.

Bauhilfe

Damit das Bauteil hinterher in OpenSim auch passt, konstruieren wir zuerst inworld eine Bauhilfe, hier im Bild rot. Diese wird als Collada-Datei exportiert.

Im Firestorm Rechtsklick auf das Bauhilfe-Objekt, dann

More > More > Save as > Collada

Ein Dialog wird geöffnet, wo Dateiname und Speicherort ausgewählt werden können. Die Dateiendung ".dae" steht für Collada. Alle anderen Optionen können ignoriert werden, da wir die exportierten Texturen eh nicht verwenden.

Mesh

Jetzt importieren wir die Bauhilfe in Blender, zum Beispiel in eine leere Scene.

File > Import > Collada (Default) (.dae)

Das Mesh unseres Bauteils passen wir in die Szene ein. Empfehlenswert für den späteren Export nach OpenSim ist, während der Arbeit weder Größe noch Rotation zu verändern. Wenn bei komplizierteren Bauteilen eigene Physik-Meshes erstellt werden, dann muss die Rotation von Bauteil-Mesh und Physik-Mesh unbedingt gleich sein.

Wenn das Mesh fertig ist, kann die Bauhilfe in Blender aus der Scene gelöscht werden.

Normals

Die Oberflächen haben eine sichtbare Vorderseite und eine unsichtbare Rückseite. Deshalb muss die Lage der Normals nach dem Bauen für jedes Face überprüft werden. Dafür lassen wir uns blaue Normalenvektoren anzeigen, die aus der sichtbaren Seite herausragen: In der 3D-Ansicht kann mit der Taste N eine weitere Steuerleiste angezeigt (und auch wieder geschlossen) werden. Ziemlich weit unten können die Normals eingeschaltet werden, uns interessieren die Faces (hier rot eingekreist). Wenn die Linien zu kurz sind, können sie mit dem Einsteller "Size" rechts daneben verlängert werden.

Gegebenfalls selektieren wir fehlerhafte Flächen und korrigieren sie.

Mesh > Normals > Flip Normals

Orientierung und Maßstab festlegen

Im Objektmodus selektieren wir (nur) unser Bauteil, also genau ein Objekt.

Object > Apply > Rotation & Scale

Dieser Schritt ist wichtig, damit später der Maßstab berücksichtigt werden kann. Ohne festgelegte Maße würden Texturen auf verschiedenen Seiten unterschiedlich groß dargestellt, und ein eventuelles separates Physik-Mesh würde später nicht passen.

Materialien einrichten

Auf ein OpenSim Objekt können maximal 8 Texturen angebracht werden. Bei Prims sind das die einzelnen Oberflächen, bei Meshes müssen die Flächen mit einer gemeinsamen Textur nicht zusammenhängend sein. Die Texturen heißen in Blender "Materials". Hier im Beispiel haben wir zwei Texturen, den Felsen und die Mauer. Also richten wir zwei Materials ein (im Bild links) und belegen jedes Material mit einer Textur (im Bild rechts).

Hinweis: Die Texturen werden wir nicht nach OpenSim exportieren, deshalb können wir hier irgendwelche Texturen nehmen. Um später die Ausrichtung auf dem Objekt prüfen zu können, sollten die Texturen aber eine geeignete Struktur haben.

Unten rechts ist noch ein wichtiger Ausschnitt aus der Texture-Steuerleiste dargestellt. Die hier im Bild gezeigten Einstellungen ermöglichen die Projektion auf eine eigene UV-Map. Dies gibt maximale Flexibilität die Texturen frei auf dem Objekt anzuordnen.

Materialien zuordnen

Wir markieren in der 3D-Ansicht die Faces, die einem gemeinsamen Material (also einer Textur) zugeordnet werden sollen. Hier im Bild ist das die Mauer. Nun wählen wir in der Materials-Steuerleiste das gewünschte Material aus und klicken nacheinander zuerst auf den Button "Select" und danach auf den Button "Assign". Dies wiederholen wir mit allen Materialien, bis alle Faces eindeutig (ohne Überschneidung) zugeordnet sind.

Kontrolle: Mit "Select" und "Deselect" kann die jeweilige Auswahl in der 3D-Ansicht ein- und ausgeschaltet werden.

Fenster teilen

Ein typisches Anfängerproblem ist, irgendwann auf der Arbeitsfläche von Blender unzählige winzige Fensterchen zu haben und sie nicht wieder los zu werden. Deshalb hier ein Einschub.

Teilen: Wir klicken mit der linken Maustaste auf das kleine Dreieck am Fensterrand. Dann ziehen wir den Mauszeiger etwas in die Richtung, wo eine Kopie des ausgewählten Fensters entstehen soll. (Im Bild rot markiert.)

Entfernen: Wir klicken mit der linken Maustaste auf das kleine Dreieck am Fensterrand von dem Fenster, was erhalten bleiben soll. Dann ziehen wir den Mauszeiger in das Fenster, was geschlossen werden soll. Wichtig ist dabei, nicht versehentlich wieder das eigene Fenster zu berühren ... sonst wird das Fenster noch mal geteilt!

Um die UV-Map zu bearbeiten, benötigen wir im zweiten Fenster die Ansicht "UV/Image Editor".

UV-Map erzeugen

Die im letzten Schritt erzeugte neue Ansicht zeigt aktuell eine leere Fläche. Diese Fläche entspricht der späteren Textur. Nun soll die dreidimensionale Oberfläche auf diese zweidimensionale Fläche abgewickelt werden. Man kann sich das so vorstellen, als wenn eine Presse das Objekt platt drückt. Die Faces werden verformt, und an einigen Stellen reißt die Oberfläche entlang der Edges (Kanten) ein.

Gerade bei technischen Objekten, wie hier der Mauer, möchten wir die Schnittkanten selber auswählen. Nur dadurch können wir sicherstellen, dass die Klinkersteine später korrekt ausgerichtet sind. Wir selektieren also alle Edges, wo das Objekt durchreißen darf, und markieren sie als "Seam" (Naht).

Mesh > Edges > Mark Seam

Die Nähte sind nun rot markiert. Jetzt wählen wir über den "Select" Button in der Materials-Steuerleiste noch die zugehörigen Faces aus, so dass die ganze Mauer selektiert ist. Mit dem folgenden Kommando wird die Selektion abgewickelt:

Mesh > UV Unwrap... > Unwrap

Das gleiche wiederholen wir mit dem Felsen, allerdings brauchen wir hier keine Seams markieren. Dass das Gestein etwas gedehnt und gezerrt wird, wird hier in Kauf genommen (und passiert in OpenSim inworld beim Terraformen auch).

Hinweis: Auch in der Ansicht "UV/Image Editor" kann editiert werden. Sollten Texturen ungünstig verzerrt worden sein, kann man hier unter Umständen nacharbeiten. Es ist auch erlaubt, auf der UV-Map Flächen zu überlappen. Gerade wenn Texturen nicht nahtlos sind (beispielsweise Gemälde), spielt die Lage der Flächen bezüglich der Textur eine wichtige Rolle. Hier in unserem Beispiel jedoch ist nur die Orientierung der Klinkersteine wichtig, wir erwarten später eine nahtlose "seamless" Textur.

Kontrolle: Rendern in Blender

Wir platzieren im Objektmodus die Lichtquelle jeweils so, dass die interessierenden Seiten beleuchtet werden.

  • Sind schwarze Faces zu sehen? Das könnten unsichtbare Rückseiten von versehentlich verdrehten Oberflächen sein.
  • Passt die Orientierung von Holzmaserung, Klinkersteinen usw.?
  • Wenn eine Textur auf mehreren Flächen vorkommt, ist der Vergrößerungsfaktor überall gleich?

Was bei der Kontrolle keine Rolle spielt, weil es später in OpenSim inworld eingestellt wird: Die Skalierung der Texturen an sich braucht hier nicht berücksichtigt zu werden, ebenfalls spiegeln in der Defaulteinstellung von Blender die Oberflächen ziemlich stark.

Collada-Export aus Blender

Im Objektmodus selektieren wir das Bauteil. Dann:

File > Export > Collada (Default) (.dae)

Abschließend wählen wir einen aussagekräftigen Dateinamen, klicken "Export COLLADA" und sind mit Blender fertig.

Hinweis: Selber konnte ich bereits viele Meshes aus unterschiedlichen Quellen mit den Blender-Defaulteinstellungen exportieren. Es gibt allerdings die Möglichkeit, für den Collada-Export Einstellungen anzupassen. Dies geschieht am einfachsten durch Auswahl des "Operator Presets" Sl+Open Sim Static in der Datei-Steuerleiste links ziemlich unten. Wer es puristischer mag, kann sich auch mit der hier verlinkten Auswahl begnügen: Texturen wollen wir ja in OpenSim inworld aufkleben, brauchen sie also auch nicht zu exportieren.

Collada-Import nach OpenSim

Empfehlenswert ist immer den Haken zu setzen bei "Generate Normals". Nach dem Import ist das Bauteil grau. Bevor wir nun inworld die richtigen Texturen aufkleben und skalieren, müssen wir deshalb noch die Farbe des Objekts auf Weiß setzen. Finale...