Jump to content

Blender Texture Atlas


Empfohlene Beiträge

Hallo zusammen,

ich werde hier versuchen zu beschreiben, wie man in Blender einen Textur-Atlas erstellen kann. Textur-Atlas bedeutet, dass ein Modell mit vielen einzelnen Texturen zum Schluss nur noch über eine einzige Textur für das gesamte Modell verfügt.

1. Vorbereitungen

Im ersten Schritt muss in Blender eine neue Funktion hinzugefügt werden. Diese befindet sich an der im Bild angezeigten Stelle. Blender ist hier auf Englisch eingestellt, da nicht alle für dieses Tutorial benötigten Einstellungen übersetzt sind.

01.thumb.JPG.f364fa79deb0c529b89cb89c0a9938a8.JPG

Es empfiehlt sich, diese Einstellung für spätere Sitzungen abzuspeichern. In der rechten Leiste befindet sich der Reiter mit der Kamera. Dort findet man die neue Funktion ganz unten.

02.JPG.5b933ace43576f89092b4b6562a2666f.JPG

Diese Funktion übernimmt später eine ganz entscheidende Rolle.

Jetzt wird als Beispiel ein ganz einfach konstruiertes Haus geladen.

03.thumb.JPG.e67f8285da4af5c32157e9f72b11753e.JPG

Dieses Haus benutzt insgesamt 10 verschiedene Texturen.

04.thumb.jpg.81b88e7e08c3606cfb4386e575e7fe11.jpg

Das ist zwar ziemlich übertrieben, kann aber nachher die Funktionsweise besser verdeutlichen.

Wird fortgesetzt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

2. Textur-Atlas erstellen

Im nächsten Schritt müssen alle Meshes, die zusammengefasst werden sollen, ausgewählt werden. Dabei muss man aufpassen, dass man nur einzelne Meshes auf der untersten Ebene erwischt. Es dürfen keine Einträge ausgewählt werden, die selber wieder Meshes beinhalten.

05.thumb.jpg.4a6bfe5e42aed6d4d5e113554212d9d4.jpg

Bei immer noch ausgewählten Meshes geht man jetzt wie oben beschrieben auf die Funktion "Texture Atlas" und drückt auf das Plus-Zeichen

06.jpg.90ad989d1bd4a6783b7580945d572c2b.jpg

Als Gruppenname wird "Texture Atlas" vorgeschlagen. Den Namen kann man ändern oder so belassen. Die Namensänderung lohnt eigentlich nicht, da die Gruppe später wieder gelöscht wird.

07.JPG.1f0b241b06e70fb9b8b9709820717ecf.JPG

Nach der Bestätigung mit OK sieht man dieses Fenster. Hier kann man u.a. die Größe der späteren Textur einstellen. Nun klickt man einfach auf den Button "Start Manual Unrap" und fertig ist die neue Gruppe mit eigener Textur.

08.JPG.e144f6515d7ba53c316d8c8b3699a1c7.JPG

Am unteren Bildrand erkennt man, das diese Gruppe bereits angewählt ist. Außerdem sind die vorher ausgewählten Meshes alle auf unsichtbar geschaltet.

09.JPG.883bad109ec01b467464c0431c9acaed.JPG

Jetzt muss man für dieses neue Mesh in den Edit Mode wechseln. Es müssen alle Elemente des Meshes angewählt sein, was allerdings bereits der Fall ist, wenn man keine andere Aktion durchgeführt hat.

10.JPG.a2c6d321997e5ee6e0ad45ad9faaa157.JPG

Wir wechseln in den UV/Image Editor und sehen folgendes:

11.thumb.JPG.e9378690f5b7dfd909f210b9b9b03cd2.JPG

Die Flächen liegen also zum Teil außerhalb der späteren Grafik. Das wird jetzt geändert, indem wir auch in diesem Editor alle Flächen auswählen und "Pack Islands" betätigen.

 12.jpg.a3d5d6fd56f7d353c2056b97b7118abe.jpg

Dadurch werden alle Flächen so berechnet, dass sie möglichst gut auf die Grafik passen.

13.JPG.a4f3af5add68b65ad28cb4a50fdc7252.JPG

Um später Artefakte zu vermeiden und eventuell besser auf einzelne Flächen zwecks Korrektur zurückgreifen zu können, empfiehlt es sich, die Flächen mit Rändern zu umgeben. Dazu betätigt man die Taste F6 und kann hier die Ränder einstellen. Ich finde, 0.010 ist ein ganz praktikabler Wert.

014.jpg.7f936329b67f7e257511eabe93b24b35.jpg

Danach sieht die Flächenzuweisung so aus: Zwischen den nicht direkt zusammenhängenden Flächen ist jetzt immer etwas Platz und die äußeren Flächen gehen nicht ganz bis an den Rand der Grafik.

15.JPG.ba7027101886a1cef015571537c17470.JPG

Abschließend drückt man auf den Button "Finish Manual Unwrap". Damit verschwindet unsere Gruppe wieder und die ursprünglichen Meshes werden wieder eingeblendet.

16.jpg.128c6330a3d9519c3a52be322c1dd72c.jpg

In der Vorschau sieht unser Modell jetzt zunächst mal falsch texturiert aus, aber das ändert sich bald.

17.jpg.d8008db7363de7c4a5f5122222f9d45f.jpg

Wird fortgesetzt

Link zu diesem Kommentar
Auf anderen Seiten teilen

3. Texturen mappen

Jetzt kommen die ursprünglichen Texturen auf den späteren Textur-Atlas. Dazu muss für jedes zu berücksichtigende Mesh bei Mapping die UV-Map auf ihren ursprünglichen Wert zurückgestellt werden. In der Regel ist das der obere von zwei Einträgen, aber auf keinen Fall der Eintrag "TextureAtlas".

18.jpg.3ca2f6a45231915d0ce950fe7774104a.jpg

Dann sollte man unbedingt noch einmal kontrollieren, ob bei den Meshes (Dreieckssymbol) die UV Maps alle auf "TextureAtlas" eingestellt sind.

19.jpg.f0fbbcb36898075f493b7e8504166d83.jpg

Nun werden wieder alle Meshes, die bearbeitet werden sollen, ausgewählt und über den Reiter mit der Kamera die Funktion "Bake" gesucht.

20.jpg.3bea7f814f05584ad7ff6db7a7ba4a1e.jpg

Nach dem Öffnen von "Bake" stellt man den "Bake Mode" auf "Textures" ein und drückt einfach auf "Bake".

21.jpg.395e8fedfdd03a5bbc0bdf176cff2fed.jpg

Der jetzt beginnende Rechenvorgang dauert etwas. Das hängt von der Geschwindigkeit des Rechners, von der Anzahl der zu berechnenden Vertices und von der Größe der endgültigen Grafik ab. Im UV/Image Editor kann man sich das Ergebnis ansehen:

22.JPG.c53a95d41fbf9bda09c21099b2b63023.JPG

wird fortgesetzt

Link zu diesem Kommentar
Auf anderen Seiten teilen

4. Textur-Atlas zuweisen

Im letzten Schritt für den Blender zuständig ist, wird die Textur des Textur-Atlanten auf die Flächen projiziert. Dazu müssen wir einem der benutzten Meshes einen neuen Material Slot zuweisen. Man drückt auf den Reiter mit der Kugel und dann auf das Pluszeichen.

23.jpg.678f76ca32d7d0580efe771378668b9d.jpg

Den neuen Material Slot kann man beliebig benennen. Hier wurde "Atlas" gewählt.

24.JPG.5b58c300b40b0473bc67c695e1401459.JPG

Der Slot muss auch eine neue Texturzuweisung bekommen. Die Vorgehensweise ist dieselbe.

25.JPG.9f7bc195fd7cd57fb7a6e250d9397699.JPG

Den alten Slot muss man löschen.

26.JPG.a49053aae909d3d6de4b7d0d66f07eff.JPG

Dem neuen Slot muss man als Grafik diejenige mit dem Namen "TextureAtlas" zuweisen. Man klickt einfach links auf das kleine Bild-Symbol und sucht diesen aus der aufklappenden Liste aus.

27.JPG.fc4947d87b041637b235ecc9eb30bbc6.JPG

Zur Sicherheit wechselt man für das Mesh, das gerade bearbeitet wird, noch einmal in den Edit Mode und wählt im Material Slot auf "Assign". Dann geht es zurück in den Objekt Mode.

28.JPG.daae968bcfada6598c9556f7f24c474f.JPG

Diese Vorgehensweise muss man jetzt nicht bei allen anderen Meshes durchgehen, sondern kann dort einfach den Material Slot durch Klick auf die Kugel wechseln. Jetzt macht es sich bezahlt, dass wir den neuen Material Slot mit Atlas benannt haben, da wir diesen ganz leicht wiederfinden.

29.jpg.ec403d8eef2bff3341702be46918aa9f.jpg

Wird fortgesetzt

Link zu diesem Kommentar
Auf anderen Seiten teilen

5. Speichern und Export in MBS

Nun zum letzten Schritt. Bisher wurde die Grafik noch nicht auf der Festplatte gespeichert. Also lässt sich auch keine texturierte x-Datei erzeugen. Wenn man noch einmal in UV/Image Editor geht, sieht man, dass neben dem Wort "Image" ein Sternchen erscheint. Das weist auf eine nicht gespeicherte Datei hin.

30.JPG.9c1d3b89bbec39646bc3091fb1dbfafd.JPG

Wenn man auf Image drückt, öffnet sich folgendes Fenster:

31.jpg.448f70ecf6a95a3a53674149bfe53521.jpg

Dort kann man den Textur Atlas abspeichern. Die Namensvergabe ist dabei optional. Die Datei wird auf jeden Fall übernommen.

Nach erfolgtem Export, kann man sein Werk im MBS bewundern.

32.thumb.JPG.9c3ef9d69783e70610900d150d8ceda5.JPG

Es ist tatsächlich nur eine anstatt ursprünglich 10 Texturen vorhanden. Außerdem muss man sich keine Gedanken über die Kantenlänge des Grafik als Vielfaches von 2 machen. Das nimmt einem die Funktion "Texture Atlas" in Blender ab.

Das war's.

Brummi

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ehrlich, Brummi starke Leistung.
Wenn ich das jetzt noch gleich verstehe, bei deinem Tempo fällt das ziemlich schwer, dann macht das alles noch viel mehr Spaß.
Und sollte die Größe der Textur im Verhältnis der Größe vom Modell passen, dann ist das ja perfekt.

Egal was da raus kommen mag, Herzlichen Dank Brummi. (y)

Schöne Grüße
Sigie

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Brummi,

was für eine super Anleitung. So viele Daumen, wie Dir dafür zustehen, habe ich leider nicht zur Verfügung.  Deshalb hier nur einen symbolischen 👍.

Darf ich den Text in das Blender-Tutorial übernehmen? Natürlich werde ich Deinen Namen dazu schreiben. Welchen Namen soll ich nehmen: den Nick-Namen oder Deinen Klarnamen (wenn ich denn veröffentlichen darf).

Schöne Grüße SputniKK

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo SputniKK,

vor 28 Minuten schrieb SputniKK:

Darf ich den Text in das Blender-Tutorial übernehmen? Natürlich werde ich Deinen Namen dazu schreiben. Welchen Namen soll ich nehmen: den Nick-Namen oder Deinen Klarnamen (wenn ich denn veröffentlichen darf).

das kannst du gerne machen, aber bitte mit Nickname.

HG

Brummi

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen, hallo Roter Brummer,

ich will hier keinesfalls in Konkurrenz treten. Aber manchmal versteht man etwas besser wenn man es auf zwei verschiedene Arten lernen kann. Ich habe vor längerer Zeit ein solches Tutorial erstellt. Das findet ihr hier.

Allerdings hat diese Vorgehensweise einen gravierenden Mangel. Man kann für die Texturen keine Prioritäten festlegen. Mit anderen Worten: Es kann sein, dass Blender wichtigen Flächen nur einen kleinen Anteil auf dem Texturatlas zuweist und weniger wichtige Teile einen unangemessenen grossen Teil. Es mir schon passiert, dass ein Dach mit einer großen Fläche bei Verwendung mehrere Texturen gut aussah und nach dem Zusammenfassen auf einem Texturatlas nur noch sehr verschwommen aussah.

Viele Grüße
Franz

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Brummi,

vor 11 Stunden schrieb Franz:

Allerdings hat diese Vorgehensweise einen gravierenden Mangel. Man kann für die Texturen keine Prioritäten festlegen. Mit anderen Worten: Es kann sein, dass Blender wichtigen Flächen nur einen kleinen Anteil auf dem Texturatlas zuweist und weniger wichtige Teile einen unangemessenen grossen Teil. Es mir schon passiert, dass ein Dach mit einer großen Fläche bei Verwendung mehrere Texturen gut aussah und nach dem Zusammenfassen auf einem Texturatlas nur noch sehr verschwommen aussah.

dem kann ich nur voll und ganz zustimmen. Franz hat mir damals gezeigt wie es geht und ich habe es dann auch getestet. Aus meiner Sicht kann ich davon nur abraten weil wie Franz schon oben erwähnt die Texturen bei größeren Modellen Grotten schlecht aussehen.

Gruß

FeuerFighter

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nur ne Frage, ich selbst hab es zeitlich noch nicht geschafft es auszuprobieren.
Liegt vieleicht es an der Größe der Atlastextur?  Die kann man im Vorfeld festlegen.
 

Atlastextur.JPG.41b3ced3b51f8334441f7091b8b333c6.JPG

 

Schöne Grüße
Sigie

Bearbeitet von Sigie
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Roter Brummer,

vor 4 Stunden schrieb Roter Brummer:

Bitte sehr

Testhaus.zip

Hätte gerne die Originaldateien (10 Ausgangstexturen mit Blender-Urmodell) gehabt, um Dein Tutorial nachvollziehen zu können.

Nun, habe es mit meinem Modell versucht:

  • 12 Einzelteile mit je eigener Textur
  • Texturen: 8* 256*256, 4* 1024*1024 nicht komplett ausgefüllt - mit kleineren Verlusten müsste all dies auf 4096*4096 passen.

Im ersten Ansatz war es sicherlich vermessen, zu denken, dass das TexturAtlas-Addon daraus saubere 1* 1024*1024 machen kann. Selbst bei 4096*4096 war das Ergebnis nicht brauchbar, unabhängig davon, ob ich bei Bake den Haken bei "Entfernen" setze oder weglasse.

Im zweiten Ansatz dann mit nur 4 Einzelobjekten mit Texturen von 4* 256*256 war das Ergebnis zwar besser, aber in einigen Teilen immer noch nicht brauchbar.

 

Meiner Meinung nach liegt das am "Pack Islands" wobei Blender bei mir viele kleine Dreiecke erzeugt und damit Details der Textur (Bsp: abgenutzte Oberflächen, Kieswegeffekt) verloren gehen.

 

Für mich ist diese Funktion so nicht brauchbar - liegt aber vllt auch an meiner bisherigen Arbeitsweise.
Baue ich ein komplett neues Modell, beginne ich in Gimp direkt beim ersten Objekt mit einer Grafik von 1024*1024 und ordne einzelne Texturbereiche auf Ebenen an. Hierbei versuche ich schon quadratsche Kacheln in 2^x-Größe einzuhalten.
Importiere ich ein vortexturiertes Modell, baue ich die Einzeltexturen in Gimp ebenfalls zu einer Textur zusammen und verwende dabei Ebenen. Doppelte Teile lassen sich so eliminieren und einzelne Bereich evtl. neu zusammenschieben.

In Blender bedeutet dann eine Größenänderung in der Textur höchstns noch ein Skalieren und Verschieben der UV-Map.

Gruß
ShPaul

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 Jahre später...

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...