This website uses cookies. By continuing to use our site you declare your agreement. More Information

Dear visitor, welcome to Kartonbau.de - Alles rund um Papiermodelle, Kartonmodellbau und Bastelbogen. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

MiZi

Intermediate

  • "MiZi" started this thread

Posts: 215

Date of registration: Apr 29th 2005

  • Send private message

1

Saturday, August 7th 2010, 9:31pm

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 has attached the following images:
  • texturabwicklung_3Dobj.png
  • texturabwicklung_teile.png

MiZi

Intermediate

  • "MiZi" started this thread

Posts: 215

Date of registration: Apr 29th 2005

  • Send private message

2

Saturday, August 7th 2010, 10:19pm

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 has attached the following image:
  • motor_3d.png

MiZi

Intermediate

  • "MiZi" started this thread

Posts: 215

Date of registration: Apr 29th 2005

  • Send private message

3

Saturday, August 7th 2010, 10:30pm

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 has attached the following image:
  • motor_3d_World.png

MiZi

Intermediate

  • "MiZi" started this thread

Posts: 215

Date of registration: Apr 29th 2005

  • Send private message

4

Saturday, August 7th 2010, 10:44pm

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 has attached the following images:
  • motor_baked.png
  • motor_3d_textured.png

MiZi

Intermediate

  • "MiZi" started this thread

Posts: 215

Date of registration: Apr 29th 2005

  • Send private message

5

Saturday, August 7th 2010, 11:14pm

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 has attached the following image:
  • motor_final.png
MiZi has attached the following files:

woody

Master

  • "woody" is male

Posts: 2,577

Date of registration: May 20th 2004

Occupation: Dipl.-Informatiker

  • Send private message

6

Monday, August 9th 2010, 7:10am

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!!!

Quoted

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

This post has been edited 1 times, last edit by "woody" (Aug 9th 2010, 7:13am)


  • "hemingway" is male

Posts: 2,214

Date of registration: Jan 31st 2006

Occupation: Arzt

  • Send private message

7

Monday, August 9th 2010, 7:49am

Hallo Micha,

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

Aber der Ansatz ist schon genial, muss ich sagen.

Gruss
Bernhard

schnipzl0r

Trainee

  • "schnipzl0r" is male

Posts: 74

Date of registration: May 18th 2009

  • Send private message

8

Monday, August 9th 2010, 8:27pm

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

Intermediate

  • "MiZi" started this thread

Posts: 215

Date of registration: Apr 29th 2005

  • Send private message

9

Tuesday, August 10th 2010, 12:10am

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 has attached the following images:
  • motor_textur_neu.png
  • motor_textur_neu2.png

This post has been edited 2 times, last edit by "MiZi" (Aug 10th 2010, 12:51am)


Oldenburger67

Professional

  • "Oldenburger67" is male

Posts: 312

Date of registration: Jun 28th 2006

Occupation: z.ZT. Student

  • Send private message

10

Tuesday, August 10th 2010, 5:18pm

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

1 user apart from you is browsing this thread:

1 guests

Social bookmarks