Lieber Besucher, herzlich willkommen bei: Kartonbau.de - Alles rund um Papiermodelle, Kartonmodellbau und Bastelbogen. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

MiZi

Fortgeschrittener

  • »MiZi« ist der Autor dieses Themas

Beiträge: 215

Registrierungsdatum: 29. April 2005

  • Nachricht senden

1

Samstag, 7. August 2010, 21:31

Texturen abwickeln

Hallo kartonierte Blenderfreunde,

angeregt von der kürzlich stattgefundenen Diskussion um das Texturieren von Kartonmodellen schon im 3D-Programm -hier also Blender- habe ich mal wieder einige Experimente angestellt, von denen ich berichten möchte.

Hier also die große Frage: Wie kommt man von dem, zugegeben recht wilden 3D-Modell im ersten Bild zu den fertig druckbaren Bauteilen im zweiten Bild? Die Antwort folgt gleich...
Möchte vielleicht jemand der erste sein, der das Bild ausdruckt und mit Schere und Leim veredelt? Ich habe es nämlich noch nicht versucht ;)
»MiZi« hat folgende Bilder angehängt:
  • texturabwicklung_3Dobj.png
  • texturabwicklung_teile.png

MiZi

Fortgeschrittener

  • »MiZi« ist der Autor dieses Themas

Beiträge: 215

Registrierungsdatum: 29. April 2005

  • Nachricht senden

2

Samstag, 7. August 2010, 22:19

Zur Demonstration habe ich ein etwas einfacheres Modell hergenommen. Es könnte sich um eine Art Motorblock handeln, oder irgend ein technisches Klabusterkästel, völlig egal. Wir brauchen 3 Objekte, links das abzuwickelnde zukünftige Kartonteil, in der Mitte das detailliert modellierte und mit Materialien versehene "Vorbild" des Kartonmodell-Teils und rechts eine Art "Projektor". Die Reihenfolge der Erstellung ist nicht ganz egal, also ganz langsam und von vorn (mal sehen, ob ich's noch zusammenbekomme).

Zuerst habe ich das Kartonmodellteil erstellt. Es ist ein einziges Meshobjekt. Wichtig: dieses Mesh braucht jetzt einigermaßen vernünftige UV-Koordinaten. Im Edit-Mode werden dazu Edges als "Seam" markiert, an denen die UV-Abwicklung (die weder konform noch maßstäblich sein muss) getrennt werden kann. Danach wird alles selektiert und mit "U"->"Unwrap" auf die 2D-Textur gepappt. Es ist günstig, dazu den 3D-View zu splitten in einen "UV/Image-Editor" und den 3D-View. Wenn ein günstiges Unwrapping gefunden ist, wird den selektierten Flächen (also immer noch allen) ein neues leeres Bild als Textur zugewiesen (im UV/Image-Editor: "Image"->"New..."). Die Bildgröße ist ganz nach den Auflösungserfordernissen und der Bauteilgröße zu wählen. Nun könnte man schon im 3D-View im Texture Paint-Mode das Modell von allen Seiten bemalen. Zur besseren Übersicht habe ich das Objekt dann noch passend benannt (z.B. "Modell").

Weiter: Das Objekt wird nun mit "Shift"-"D" dupliziert. Dabei werden (zu mindest in der Blender-Standardkonfiguration) die UV's und die zugewiesene Textur mit kopiert. Das heißt: nicht die Texturdaten selbst werden kopiert, nur der Verweis! Beide Objekte verwenden also die selben Bilddaten, das ist wichtig! Das Objekt wird in "Projektor" umbenannt, und zunächst einmal liegen gelassen.

Zuletzt basteln wir das detaillierte Modell. Da kann man sich austoben. Ich habe das Grundmodell dupliziert und im Edit-Mode noch einige Kästchen drangeklebt. Dabei ist man nicht auf das eine Mesh beschränkt. Ich habe noch einige Bezier-Kurven mit "Bevel Thickness" eingefügt, die sowas wie Kabel darstellen könnten. Diese habe ich dann zu allem Überfluss noch mit rotem und blauem Material versehen. Zuguterletzt habe ich noch bunte Halbkugeln obenauf gesetzt, eigentlich nur, um die Beleuchtung zu testen. Der Phantasie sind dabei keine Grenzen gesetzt. Ich werfe nur mal das Stichwort "prozedurale Texturen" in den Raum.

Nun muss nur noch das Projektor-Objekt in Form gebracht werden. Das Ziel ist, dass alle Einzelflächen entlang ihrer Normalen soweit nach "außen" geschoben werden, bis das komplette Detail-Modell von den Projektor-Flächen umschlossen ist (s. Bild). Dazu gibt's mal wieder viele Möglichkeiten. Eine einfache geht so: Das Projektorobjekt bekommt einen "Edge Split"-Modifier zugewiesen, der Split-Winkel wird auf irgenwas niedriges eingestellt, sagen wir 3 Grad. Im Object-Mode wird der Modifier angewandt ("Apply"), danach sind alle Flächen, die um einen Winkel von mehr als 3 Grad abknicken, voneinander getrennt. Im Editmode werden alle Flächen selektiert und mit "Alt"-"S" entlang ihrer Normalen nach außen verschoben. Zuletzt müssen auf allen Flächen die Normalen nach innen umgeklappt werden ("W"->"Flip Normals").
Damit ist alles vorbereitet.
»MiZi« hat folgendes Bild angehängt:
  • motor_3d.png

MiZi

Fortgeschrittener

  • »MiZi« ist der Autor dieses Themas

Beiträge: 215

Registrierungsdatum: 29. April 2005

  • Nachricht senden

3

Samstag, 7. August 2010, 22:30

Ok, kommen wir nun zur Einrichtung der Beleuchtung. Da ein Kartonmodell schließlich im echten 3D-Raum leben wird und es dort schon Beleuchtung durch Lampen, Fenster und ähnliches schon gibt, ist eine Beleuchtung des (virtuellen) 3D-Modells durch Point-, Spot-, Area-Lights und dergleichen nicht angebracht. Aber eine gleichmäßige Beleuchtung von allen Seiten, die berücksichtigt, dass in Konkavecken weniger vom Umgebungslicht ankommt, wäre fein. Na ja, das ganze nennt sich dann auch treffend "Ambient Occlusion" und hat sich in den letzten Jahren zu einem Render-Standard entwickelt. Im World-Button-Fenster stellen wir also alles ein. Die Horizontfarbe dunkler als die Zenitfarbe (meistens kommt von oben mehr Licht als von unten). Bei "Amb Occ": Add, Sky Color. Das bewirkt, dass die Beleuchtung des Modells von Horizont- und Zenit-Farben beeinflusst wird, und diese nur zur Aufhellung des Objekts beiträgt. Mit dem "Energy"-Regler kann die Stärke der Beleuchtung geregelt werden. Hier kann man viel experimentieren.
»MiZi« hat folgendes Bild angehängt:
  • motor_3d_World.png

MiZi

Fortgeschrittener

  • »MiZi« ist der Autor dieses Themas

Beiträge: 215

Registrierungsdatum: 29. April 2005

  • Nachricht senden

4

Samstag, 7. August 2010, 22:44

So, und nun kommt die Zauberei ins Spiel. Wir backen das Detailmodell auf das Kartonmodell. Ich habe dazu günstigerweise die Objekte auf verschiedene Layer verschoben. Layer 1: Detailobjekte und Projektor, Layer 2: Kartonmodell, Layer 3: kommt noch...

Jetzt werden alle Detailobjekte selektiert und zuletzt das Projektorobjekt (daran zu erkennen, dass das Projektorobjekt in einer helleren Farbe markiert ist, es ist das so genannte "Active Object"). Im Menü "Render"->"Bake Render Meshes"->"Selected to Active" auswählen. Das bewirkt im nächsten Schritt genau das, alle selektierten Objekte in die Textur des aktiven Objekts "einbrennen". Das erfolgt durch "Render"->"Bake Render Meshes"->"Full Render". Je nach Texturgröße und AO-Einstellungen kann das jetzt etwas dauern. Falls ein UV/Image-Editor sichtbar ist, kann man den Rendervorgang verfolgen. Das Ergebnis sieht dann etwa so wie im Anhang aus. Man verzeihe mir, aber ich habe im Texture Paint-Mode schonmal auf der Stirnseite rumgeschmiert. Auf Layer 2 sollte jetzt das Kartonmodellteil ebenfalls korrekt texturiert sein, dieses und der Projektor teilen sich ja ein und die selben Bilddaten. Das kann man im Display-Mode "Textured" sehen.

Ok, bis hierhin war alles Blender-Grundwissen. Von Kartonbau keine Spur. Das kommt jetzt.
»MiZi« hat folgende Bilder angehängt:
  • motor_baked.png
  • motor_3d_textured.png

MiZi

Fortgeschrittener

  • »MiZi« ist der Autor dieses Themas

Beiträge: 215

Registrierungsdatum: 29. April 2005

  • Nachricht senden

5

Samstag, 7. August 2010, 23:14

Und jetzt kommt der Trick, der ein Update des unfold_selection2.py-Skripts nötig macht. Das Kartonmodellteil wird mit abgewickelt, wie schon immer gemacht (Klebekanten als Seam markieren, Skript aufrufen). Leider vernachlässigt das bisher vorliegende Skript die UV-Koordinaten völlig. Ich habe aber nur eine Funktion in 10 Zeilen, oder so, anpassen müssen, so dass nun auch die UV-Koordinaten mit übernommen werden. Die abgewickelten Flächen haben nun zwar schon die richtigen UV's aber sie brauchen noch die Texturzuweisung. Also die neuen Flächen ausgewählt lassen und im UV/Image-Editor unten aus der Bildauswahlliste die gebackene Textur auswählen. Die Abwicklung habe ich dann mit "P" abgetrennt und auf Layer 3 verfrachtet. Damit sind wir dem Endziel ein großes Stück näher: eine kartonbautaugliche Abwicklung mit der korrekten Texturierung drauf.
Der Rest ist Export: Was wir brauchen, ist eine SVG-Datei mit Umrissen und Hilfslinien, und eine Bilddatei, die genau auf die SVG-Daten passt. Nichts das als leichter:
Um das abgewickelte Bauteil herum lege ich mir einen Hilfsrahmen mit genau definierter Größe, bei mir waren es 20 BU Kantenlänge, quadratisch. Eine einfache Mesh-Plane, von der nur die vier Kanten übrig bleiben. Genau ins Zentrum des Hilfsrahmens kommt eine Kamera. Diese wird auf orthographisch umgestellt und bekommt als "Scale"-einstellung ebenfalls die 20 BU (im Button-View, F9!). Damit wird das gerenderte Bild exakt den Hilfsrahmen ausfüllen (wenn es denn ebenfalls quadratisch ist). Zuletzt muss noch das abgewickelte Bauteil mit einem Material versehen werden. F5->"Add new". Die einzigen Einstellungen sind die Buttons "Shadeless" und "TexFace" im Material-Panel. Damit wird das Objekt von keinen Lichtquellen beeinflusst und die Farben kommen direkt aus der zugewiesenen (UV-)Textur. Jetzt noch die Bildgröße einstellen (F10) und rendern (F12). Die Bildgröße richtet sich wieder nach der Zielauflösung und Bauteilgröße. Ein Beispiel: Mein Hilfsrahmen hat 20 BU Kantenlänge. Für mein Modell soll 1BU = 1cm sein, die Zielauflösung ist 300dpi. Die Rendergröße muss also 20cm/2,54 * 300 dpi = 2362 pixel sein. Ich wollte nicht rechnen und habe 1024x1024 eingestellt. Dabei gleich noch im Render-Panel "Key" einstellen, damit wird der Hintergrund gleich transparent gerendert.
Zuletzt noch den Hilfsrahmen und die Abwicklung mit dem hier bekannten Outliner-Skript exportieren. In Inkscape kann dann die Vektorgrafik mit der Bitmapgrafik kombiniert werden. Der Hilfsrahmen muss dabei kongruent mit der Textur zu liegen kommen. Ich habe dann noch das Bauteil selektiert und die Auswahl als finales PNG exportiert, diesmal wirklich mit 300dpi (die Pixel sind zu erkennen).

Sooooo, lange Ausführung, wo ist der Sinn des Ganzen? Lohnt der Aufwand im 3D-Programm? Ist 2D-Texturierung eventuell schneller, einfacher?
Aber technisch gehts, keine Frage.

Anlagen: Finales Bauteil, Blend-Datei und das aktualisierte Skript. Letzteres einfach in euren Blender-Skriptordner kopieren, die evtl. vorhandene Datei überschreiben.

Ich wünsche eine geruhsame Nacht, viele wilde Blender-Gedanken, bis morgen.

Micha
»MiZi« hat folgendes Bild angehängt:
  • motor_final.png
»MiZi« hat folgende Dateien angehängt:
  • motor.zip (113,84 kB - 15 mal heruntergeladen - zuletzt: 11. November 2011, 00:16)
  • mesh_unfoldselection2.zip (3,61 kB - 25 mal heruntergeladen - zuletzt: 9. April 2016, 12:50)

woody

Meister

  • »woody« ist männlich

Beiträge: 2 573

Registrierungsdatum: 20. Mai 2004

Beruf: Dipl.-Informatiker

  • Nachricht senden

6

Montag, 9. August 2010, 07:10

Hallo Micha

nachdem ich bereits gestern Deinen neuen Thread überflogen habe, bin ich leider erst heute dazu gekommen, mir den Inhalt richtig reizuziehen; dazu waren dann doch glatt zwei Tassen Kaffee notwendig! :D

Wahnsinn, was für eine tolle Idee!!!

Zitat

Sooooo, lange Ausführung, wo ist der Sinn des Ganzen? Lohnt der Aufwand im 3D-Programm? Ist 2D-Texturierung eventuell schneller, einfacher?
Aber technisch gehts, keine Frage.
Ob sich der Aufwand lohnt? Für das Objekt an sich, so wie Du es beschreibst, vielleicht nicht. Insgesamt ist Dein Verfahren aber ein Weg, der sich sicher lohnt! Ein paar kleine Ideen? Bitte sehr:
  • Bei mir liegt ja immer noch das 3D-Modell der "Rodger Young" rum, das immer, wenn mal sonst nichts anliegt, weiter zerlegt wird. Die zahllosen Details an diesem Modell könnte man mit Deinem Verfahren sofort in eine ansprechende Textur umsetzen!!!
  • Oder nimm die StarTrek-Raumschiffe: Viele von denen haben an der Oberseite des Diskus "Scheinwerfer" montiert, die den Namens-Schriftzug beleuchten. Nicht das es sehr schwer ist, das in 2D zu texturieren, aber es wäre schon interessant, wenn man hier die Blender-Lichtquellen direkt verwenden könnte
  • Und überhaupt: Das Spiel mit Licht, Farben, Materialien und Schatten beherrscht der Blender ja recht gut; da ist schließlich seine eingentliche Aufgabe als Grundlage für die Animation. Hier stellt sich mir die Frage, wie man diese Funktionen (die wir ja bisher praktisch nicht genutzt haben) jetzt für geniale Texturen verwenden könnten.
Ein Beispiel: Du nimmst ein Digital-Foto z. B. - von einem Gebäude - als Textur-Grundlage für ein Bauteil; das wurde ja bereits besprochen und ist nicht mehr neu. Jetzt detailliert man kleinere Bauteile auf dieser Basis, versieht sie mit Material-Eigenschaften und texturiert das jetzt auf die von Dir beschriebene Weise. Wie wäre es z. B. mit einer Wand-Lampe an einer mit Graffiti besprühten Fabrik-Fassade aus Beton in einer leicht regnerischen Nacht? In 2D ein blanker Horror; für den Blender vermutlich nicht viel mehr als eine Rechenaufgabe ...

Ich könnte mir schon vorstellen, dass hierbei nicht nur fantastische Effekte zu erzielen sind, sondern sich auch der Aufwand dafür deutlich reduziert, da die Render-Engine des Blenders für diese Zwecke ja gemacht ist! Und die haben wir bisher praktisch nicht nutzen können.

Mein Fazit: Ein Super-Beitrag von Dir! Wie immer! =)

Heute abend spiele ich mal ein bisschen damit rum; ich sehe es jetzt schon kommen: Das wird eine lange Nacht ... ;)

Servus, Woody

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »woody« (9. August 2010, 07:13)


hemingway

Meister

  • »hemingway« ist männlich

Beiträge: 2 212

Registrierungsdatum: 31. Januar 2006

Beruf: Arzt

  • Nachricht senden

7

Montag, 9. August 2010, 07:49

Hallo Micha,

das muss ich auch erst mal in Ruhe durcharbeiten...

Aber der Ansatz ist schon genial, muss ich sagen.

Gruss
Bernhard

schnipzl0r

Schüler

  • »schnipzl0r« ist männlich

Beiträge: 74

Registrierungsdatum: 18. Mai 2009

  • Nachricht senden

8

Montag, 9. August 2010, 20:27

Hört sich sehr interessant an, der Ansatz! Vor allem bei Star Wars- Schiffen könnte ich mir das gut vorstellen. Die haben doch immer solche Details, die mit so einer Beleuchtung gut rüber kommen würden (Panzerplatten und dergleichen).

MiZi

Fortgeschrittener

  • »MiZi« ist der Autor dieses Themas

Beiträge: 215

Registrierungsdatum: 29. April 2005

  • Nachricht senden

9

Dienstag, 10. August 2010, 00:10

Na, ich dachte schon, das interessiert hier keinen ;) aber anscheinend habe ich Euch erschlagen :P

Nun, ich habe mal etwas mehr Detailierung in die Texturierung gesteckt:
Die Grundform mit Reliefstruktur und braunen Flecken (prozedurale Texturen) und ein paar lokalisierte Lichtquellen, man beachte den Schattenwurf der Kabel.

Ja doch, der Möglichkeiten sehe ich da viele. Man kann ja auch zum Beispiel der Grundform eine UV-Textur zuweisen, darauf einen AO-Pass backen, diesen dann als Texturkanal in das Material stecken und damit einen weiteren Texturkanal, sagen wir "Dreck" multiplizieren, so dass "Dreck" nur in innenliegenden Kanten und Ecken sichtbar ist...

Tante Edith: hat noch ein Bild vorbeigebracht: Leichte Versiffung in Vertiefungen und Innenkanten.
»MiZi« hat folgende Bilder angehängt:
  • motor_textur_neu.png
  • motor_textur_neu2.png

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »MiZi« (10. August 2010, 00:51)


Oldenburger67

Fortgeschrittener

  • »Oldenburger67« ist männlich

Beiträge: 278

Registrierungsdatum: 28. Juni 2006

Beruf: z.ZT. Student

  • Nachricht senden

10

Dienstag, 10. August 2010, 17:18

Dickes Lob

Hallo Mizi,

an dieser Stelle ein ganz dickes Lob, einfach nur Super !!!!!!!!!!!

Das ist das was ich eigentlich meinte, als ich vor einiger Zeit die Frage nach den abwickelbaren Texturen hier im Forum stellte.

Es wird wahrscheinlich noch etwas dauern, bis ich mich in diese neue Technik eingearbeitet habe, aber nutzen werde ich sie dann.
Ich möchte mich an dieser Stelle für Deine Mühe recht herzlich bedanken.


Thomas

Social Bookmarks