In Blender Textur "maskieren"

  • Hi zusammen.


    Weiß jemand zufällig, wie man in Blender teile eines Objektes "maskieren" um dem ganzen eine andere Farbe zu geben?


    Hintergrund ist folgender. Ich kann vieles in meinem Projekt auch mit einfachen PBR-Texturen lösen, dazu brauche ich nicht irgendwelche Smartmaterialien wie in Substance oder ähnlichem. Und es wäre natürlich einfacher, wenn ich dann in Blender das Ganze schon erstelle und insgesamt exportiere, als wenn ich erst in FBX exportiere, dann in Substance usw. Ich könnte mir da also ein paar Schritte sparen.


    In Substance kann ich ja quasi verschieden Texturlayer erstellen und dann per White- oder Blackmask sagen, wo welcher Layer zu sehen ist und das Ganze dann als eine Textur exportieren.


    In Blender kann ich zwar auch mehrere Materialien auf ein Objekt packen, und auch sagen auf welchen Faces diese anzuwenden sind. Beim Export sind es dann aber zwei oder mehr Texturen/Materialen, die dabei herauskommen. Das wiederum halte ich aber auch für unnötig. Zumindest nicht bei dem, was ich gerade vorhabe.


    Ich bin mir ziemlich sicher, dass man also wirklich ein Basismaterial mit verschiedenen Bereichen erstellen kann. Nur, was ich bisher zu dem Thema gefunden habe, ist eher so nach Faceausrichtung, aber nichts von wegen Mauer so, Fensterrahmen so.


    Vielleicht ist das Ganze mit mehreren Materialien ja auch gar nicht falsch, aber ich finde bisher keine Möglichkeit die Materialien zu einem zusammenzufügen.


    Wie könnte das also richtig funktionieren?

    • Offizieller Beitrag

    In Blender kann ich zwar auch mehrere Materialien auf ein Objekt packen, und auch sagen auf welchen Faces diese anzuwenden sind.

    Das kannst du so machen.


    Im Grunde hättest du zb eine Wand, jeder Seite hat eine Farbe und im Substance Painter wird jede Farbe durch ein Material ersetzen.

    Dies Materials exportierst du als Textur aus dem Painter.


    BTW.: Auch Unreal erkennt unterschiedliche Materials. Du kannst jedem Farbslot in Unreal einfach ein Material zuweisen.


    Bitte nicht als Tipp Verstehen: Mal Idiotisch aber zum Verständnis ausgedrückt: Du kannst aus dem Painter nicht einfach Materials rausexportieren und die in Unreal verwenden. Du könntest dir aber in Blender eine Plane erstellen und auf diese Plane im Painter ein Material zuordnen. Diese Plane bzw die Textur, könntest du rauspeichern und in Unreal als ganz normale Textur verwenden.

    Dann bräuchtest du theoretisch den Painter gar nicht mehr und hättest alle Painter Materials als Bibliothek Unreal Material.

    Unreal würdest du diese Materials dann einfach dem jeweiligen Slot zuordnen.



    Um deine Frage zu beantworten, es gibt mehre Möglichkeiten:


    1. Du tust tatsächlich auf jede Fläche in Blender ein Material drauf und ersetzt diese in Blender oder Unreal.

    2. Du verwendest dein Lowpoly als normales Mesh (Mit einem grauen Material) und erstellt noch ein zweites Mesh (Eine Kopie) bei dem du den Faces eine Farbe gibst. Nun Bakst du die Colormap von diesem "Ich nenne es Midpoly) und verwendest diese Colormap als ColorID map für dein grauen Lowpoly. So hast du im Grunde jede Farbe als Maske so wie du es haben willst.

    Du hast im Grunde das selbe Ergebnis wie bei 1 aber nur ein Material.

    Im Grunde erstellst also dein Lowpoly + Das selbe Mesh nochmal mit den eingefärbten Flächen.


    3.Es gibt außerdem die Möglichkeit mehre Colorids miteinander zu Kombinieren. Du könntest beispielsweise wie oben die ColorID rausbaken. Jede Seite der Wand hat eine Farbe.

    Nun erstellst du zb Backsteine als Highpoly und Bakst diese Backsteine die ebenfalls eine Farbe haben als Colorid.

    Nun hast du Quasi die Colorid der Wand als Hintergrund Material und die Backsteine als Colorid für die Backsteine. Beide Colorids legst du in Gimpf oder Photoshop übereinander.

    Jetzt kannst du im Painter sowohl den Hintergrund (zb Mörtel Material) mit dem Backstein Material kombinieren.


    Hoffe du verstehst was ich meine.

  • Das ist ja noch aufwendiger als das, was ich bisher mache. Und ich will ja gerade keine verschiedenen ColorIDs, weil ist ziemlich unnötig bei meinem Projekt. Dann hätte ich ja pro Objekt mindestens zwei Materialien.


    Und warum sollte ich irgendwelche Maps in Photoshop zusammenpacken und dann in Painter usw.? Dann hole ich mir ja noch ein drittes Programm in den Workflow. Dann kann ich ja gleich in Painter mit den Masks arbeiten.

    • Offizieller Beitrag

    Das ist ja noch aufwendiger als das, was ich bisher mache. Und ich will ja gerade keine verschiedenen ColorIDs, weil ist ziemlich unnötig bei meinem Projekt. Dann hätte ich ja pro Objekt mindestens zwei Materialien.

    Ja genau deswegen macht das Baken der Colorid mehr Sinn.



    Und warum sollte ich irgendwelche Maps in Photoshop zusammenpacken und dann in Painter usw.? Dann hole ich mir ja noch ein drittes Programm in den Workflow. Dann kann ich ja gleich in Painter mit den Masks arbeiten.

    Soweit ich weiß kann man im Painter nur eine Colorid als Source verwenden. Wenn du also zwei Colorids verwenden willst, geht das soweit ich weiß nicht im Painter.

    Aber der Painter hat sich auch weiter entwickelt, vielleicht geht das zwischenzeitlich ?

    Wäre nice wenn man auch Colorids Layer könnte und man bestimmten kann welche Colorid im Vordergrund sein soll.

  • Soweit ich weiß kann man im Painter nur eine Colorid als Source verwenden. Wenn du also zwei Colorids verwenden willst, geht das soweit ich weiß nicht im Painter.

    Na doch, man konnte schon immer mehrere ColorIDs in Painter verwenden, aber auch dann kommen, zumindest meines Wissens, wieder mehrere Materialien nach dem Baken raus. Also das bleibt dann halt auch wieder so. Allerdings muss ich zugeben, dass ich Painter jetzt nicht so übertrieben nützlich finde. Ab einem gewissen Grad an Komplexität von Objekten vielleicht schon, aber derzeit bin ich ja dabei meine Gebäude etc. umzusetzen. Die sind natürlich naturgemäß relativ simple, sodass ich mir über High- oder Lowpoly bei ein paar simplen geometrischen Formen, also Wände, Fenster oder Türen etc., ja nicht einmal annähernd Gedanken machen muss. Ich meine, was soll ich bei einer Wand, die vielleicht noch einen Fensterrahmen hat, noch groß an Polys einsparen, wenn vielleicht 20-30, ohne jetzt nachgezählt oder nachgeschaut zu haben, Polys ausreichen, um diese darzustellen? Und da ist Painter dann doch eher Overpowerd. Deswegen würde ich mir den Umweg ja gerne sparen. Material auch gleich in Blender erstellen, als FBX exportieren und gut ist.

    • Offizieller Beitrag

    Bei Low und Highpoly geht es ja nicht nur in deinem Polycount. In deinem Fall ist der Polycount eher unwichtig. Ob die Wand 20 oder 30 Polys hat und 1000 macht keinen großen Unterschied.

    In deinem Fall ist eher die Übertragung von den Colorids interessant.


    Wenn du die Materials in Blender drauf machen willst musst du die Textur ja letztlich trotzdem Baken damit du eine Textur bekommst die du in Unreal nutzen kannst.

    Ich Bake meine Texturen eigentlich alle im Designer weil ich so noch Änderungsmöglichkeiten habe. Ich muss aber auch sagen, dass mein Workflow ein anderer ist wie deiner.

    Kann also schon sein das alles in Blender machen für deine zwecke ausreichend ist. Die Frage kann der aber eher jemand beantworten der sich besser mit Blender auskennt wie ich.

  • Mit dem Baken habe ich ja nicht das große Problem. Das Problem ist halt, dass eben halt, wenn ich mit ColorIDs arbeite, wie oben schon gesagt, eine ColorID als "Mauer_Base" und eine "Mauer_Windowframe". Dann ist es natürlich ein leichtes Mauer_Base sind zum Beispiel Ziegelsteine, Mauer_Windowframe ist dann irgendeine Holztextur oder so. Sieht dann auch gut aus, alles fein.


    Beim Export erstellt er dann ja auch eine FBX mit zwei Color_IDs und Unreal importiert sie natürlich auch richtig. Von daher ist alles gut. Nur man hat dann irgendwann eine wahnsinnige Anzahl von Materialien in Unreal. Und wenn man jetzt zwei Materialien hat, die auch eins sein könnten, dann nimmt das natürlich unnötig viel Speicher in Anspruch. Dann, wenn man das einzelne Material nimmt, verbraucht es auch nicht mehr Speicher.


    Und was Low- und Heighpoly angeht, man kann ja optisch viel mit Material machen. Von daher, ich glaube hobbymäßig, da jetzt Nanite auszureizen oder so, höchstens über Umwege durch die Megascans aus Quixel oder so, von denen ich ja auch einige benutzen werde, aber selber jetzt solche Objekte erstellen, ich glaube, das reizt niemand von den Hobbyprogrammierern wirklich aus. Da muss man dann wohl schon mit Profiequipment irgendetwas abscannen, mit echtem Laidar oder so, oder einfach ein professioneller 3D-Designer, der den ganzen Tag nichts anderes macht außer duschen, schlafen, essen und trinken oder so, und der sich durch seine 3D-Software auch im Schlaf durcharbeitet, ohne nachzudenken. Ist zwar alles ein nice to have, aber richtet sich dann doch eher an richtige Profis.


    Ich wüsste ja noch nicht einmal wie man eine Maserung in Holz reinmodelliert, um es mal etwas zu übertreiben, da erscheint mir der normale Weg über Normalmaps doch realistischer umzusetzen.

  • Hm? Wieso steht da Metallic nicht zur Verfügung?


    Wobei das vielleicht sogar ganz gut ist. In irgendeinen Channel muss ich auch noch sehen, wie ich Nässe bei Regen reinpacke, vielleicht auch noch Schnee, naja, bin derzeit dabei zig Tutorials zu schauen, vielleicht kriege ich da ja einen Plan. Aber was die Einstiegsfrage angeht, da habe ich bisher noch immer nicht wirklich was gefunden. Allerdings soll Blender 3.4 jetzt auch neue Möglichkeiten bieten. Hatte da eine vielversprechende Ankündigung gesehen, aber noch kein Tutorial.

  • Also, ich habe jetzt zig Tutorials zu Bake Texturen in Blender angeschaut, ich glaube, ich bleibe dann doch bei Painter.

    Texturebaking in Blender ist wohl das, was in der Bibel als einer der apokalyptischen Reiter beschrieben wird, der der Verzweiflung, Frust und Hoffnungslosigkeit über die Welt bringt. So gut Blender inzwischen auch sein mag, ich glaube daran sollten sie noch dringend mal überarbeiten.

    • Offizieller Beitrag

    Meiner Erfahrung nach ist das baken in Blender auch nicht so gut.

    Was ist den so schlecht beim Blender baken ?


    Vielleicht ist es auch ein Anwendungsfehler ? Wenn du von Nachbearbeitung in Photoshop redest, hört sich das für mich nach überlappender Cage oder ähnlichem an.


    Blender ist so wie andere Programme auch kein sorglos Oneklick und alles ist perfekt Programm.

    Gerade das baken hat seine Basis auf den voreingestellten werten.


    Wer solche Programme benutzt bei dem wird immer ein Grundsetup erwartet. zb wird erwartet, dass das Eingangsmodell den richtigen Scale hat. Wenn das in Blender erstelle Mesh zb. 100 mal größer ist wie es normalerweise sein müsste, dann sind natürlich auch die Bake Einstellungen völlig daneben.


    Möglicherweise ist es zb so, das beim Import im Painter, die Größe des Meshes berücksichtigt werden und die default Werte entsprechend angepasst werden.

    In Blender werdet ihr sicherlich nur eure Blendfile öffnen und ich denke auch sonst nicht, das Blender hier irgend welche Werte anpasst.

    Ich könnte mir vorstellen dass dies der Unterschied zwischen den beiden Programmen ist.


    Möglicherweise ist es ein Scale Problem oder es liegt an anderen dingen die der Painter beim Import automatisch korrigiert.


    Es scheint ja jedenfalls Menschen zu geben die sehr gute Ergebnisse in Blender beim Baken erzielen.


    Ich hab mich sehr intensiv mit dem Baken beschäftigt und ich kann mit Sicherheit sagen, dass ich in der Vergangenheit schon alles falsch gemacht hab was man hätte falsch machen konnte. Diese Probleme musste ich verstehen und lösen.


    Was zb viele vielleicht nicht wissen: Unter Normals verstehen die meisten die Ausrichtung der Flächen (Faces) . Beim Baken werden aber technisch gesehen nicht die Flächen berücksichtigt sondern die Normal Richtungen der Vertecies.

    Die Vertex Normals können völlig Kaputt sein was dann auch das Bake Ergebnis völlig zerstört.

    Die Vertex Normals werden aber auch von dem Smoothing groups verändert. Macht man ein Lowpoly und ein Highpoly dass keine zusätzliche Geometrie hat, und nur über runde Smoothing Groups verfügt, kann man diese Normal Informationen ebenfalls aufs Lowpoly übertragen. Sieht nicht so schön aus wie mehr echte Geometrie aber ist zb technisch möglich.

    Daran sieht man schon viele mögliche Probleme es geben kann und wo überall der Hund begraben sein kann.


    Aber letztlich ist es auch wichtig das man in dem Programm arbeitet in dem man am meisten klar kommt. Ich finde es trotzdem interessant solche dinge zu verstehen.


    Vielleicht könnt ihr ja mal so ein falsches Bake Ergebnis hier posten, würde mich sehr interessieren und vielleicht erkenne ich auch das Problem.

  • Was ist den so schlecht beim Blender baken ?


    Das Thema hatten wir schonmal hier:




    Kurz und knapp, funktioniert es in Substance einfach einfacher und sauberer.

    Es in Blender vernünftig hinzubekommen wäre in meinem Workflow einfach auch umständlicher und unnötig, da ich nach dem bake eh mit substance weiter arbeite.

  • Inzwischen bin ich ja auch wieder bei Substance Painter gelandet. Allerdings sehen die Texturen, die man da baked relativ merkwürdig aus. Normalerweise kenne ich das so, dass eine Textur am Ende nur die ausgefüllten Faces von der UV-Map farblich ausgefüllt sind. Bei mir ist es aber halt so, dass die ganze UV-Map ausgefüllt ist, wobei die Faces, die unwrapped wurden halt normal, so wie sie sein sollen, die entsprechenden Einfärbungen haben, und alles, was nicht zu den sichtbaren Faces gehört, verzerrt ausgefüllt ist.


    Ist zwar jetzt nicht sonderlich schlimm, weil wenn man das Ganze dann wieder auf das Mesh legt, sieht es ja richtig aus. Aber es sieht zum einen irgendwie falsch aus, zum anderen macht es das unübersichtlich. Aber ich habe auch noch keine Einstellung gefunden, wo dann die Bereiche zwischen den Flächen weggelassen werden.

    • Offizieller Beitrag

    Der Technische Hintergrund:

    Du brauchst immer ein paar Pixel mehr wegen den MIPMAPS.

    Die Übertragung von Pixeln von der Textur auf das 3D Modell ist nicht immer Pixelgenau. Wenn du dir vorstellst, dass deine Textur auf das Mesh übertragen wird, dann passiert dies oft mit ein paar Pixel mehr ein paar Pixel weniger. Würdest du beispielsweise einen weißen Hintergrund verwenden, kann es vorkommen das dieses Weiß auf deinem Modell sichtbar ist. Dieser Effekt nennt man Textur Bleeding.


    Anti Aliasing sagt dir sicherlich was ?

    Du musst dir vorstellen das Texturen von der Engine in verschieden Auflösungen angezeigt werden. Hierbei werden bestimmte Pixel einfach weggelassen. Hierdurch kann es dann zu hässlichen Kantenglättungen kommen. Damit dass nicht passiert, werden sie Kanten geglättet. Dieses passiert in dem neue Pixel mit Farbdurschnittswerten eingefügt werden. Diesen Vorgang nennt man Antialiasing.

    Wenn dein Hintergrund nun weiß ist und deine Textur zb braun, wird hieraus eine neue Zwischenfarbe der Pixel berechnet. Die dann logischerweise falsch ist.

    Deswegen ist es immer gut. Wenn du zb einen brauen Rucksack hast, du entweder auch einen braunen Hintergrund verwendest oder du das padding größer stellst.


    Hier wird das sehr gut erklärt:


    Edge padding - polycount


    Die Anzahl der Pixel die man mehr einkalkulieren sollte, hängt von der Größe der textur ab hierfür gibt es emfehlungen die findest du auch im Link.