Texturierung oder was Sie wissen müssen, um ein Oberflächenkünstler zu werden. Teil 2. Masken und Texturen

Masken und Texturen


Wir setzen eine Reihe von Lektionen fort, wie man ein Oberflächenkünstler wird.

Teil 1. Pixel hier .
Teil 2. Masken und Texturen - Sie lesen es.
Teil 3. Züchterrechte und Materialien hier .
Teil 4. Modelle, Normalen und Sweep hier .
Teil 5. Materialsystem hier .

Masken


Im letzten Teil haben wir uns angesehen, wie die Kanäle funktionieren, und unsere erste Maske, die ich erstellt habe - die Transparenzmaske.

Die Transparenzmaske im Katzenbeispiel wurde mithilfe eines separaten Kanals namens Alpha-Kanal erstellt. Dieser Kanal hatte auch eine Dimension von 8 Bits pro Pixel.

Jedes Maskenpixel kann einen Wert von 0 bis 255 (oder bis zu 1) haben, wobei 0 ein vollständig transparentes Pixel und 255 (oder 1) ein vollständig NICHT transparentes Pixel ist.

Wenn Sie nun den Alpha-Kanal als regulären Kanal betrachten, wird klar, dass er sich nicht von anderen RGB-Kanälen unterscheidet. Tatsächlich sind dies alle die gleichen Pixel mit der gleichen Intensität von 0 bis 255 (bis zu 1). Dies ist der gleiche graue Farbverlauf. Und wenn wir einen anderen Kanal genommen, kopiert und in den Alpha-Kanal eingefügt hätten, hätten wir einen interessanten Effekt:

Bild

Die Maske wird dem gesamten Bild überlagert, aber wenn die Pixelintensität so hell wie möglich ist (nahe 1 oder 255), die Maskenfarbe am kleinsten ist und wenn die Intensität so gering wie möglich ist (näher an 0), wird die Maske im Gegenteil sehr deutlich angezeigt:

Bild

Und jetzt, wenn Sie ein solches Bild exportieren und es in einem beliebigen Programm zum Anzeigen von Bildern öffnen, erhalten Sie das folgende Bild:

Bild

Die meisten Pixel haben eine Halbtransparenz entsprechend der im Alphakanal angegebenen Intensität. Wenn die Transparenzmaske jedoch mit anderen Kanälen identisch ist, stellt sich die Frage: Ist die Verwendung im Alpha-Kanal obligatorisch?

In der Tat nicht unbedingt. Der Alphakanal ist erforderlich, damit das Bild Farbdaten speichern und Transparenzdaten haben kann. Das heißt, es stellt sich heraus, dass im Bild 1 Pixel 3 erforderliche Kanäle hat und der 4. Kanal optional und optional ist.

Insgesamt gibt es in unserem Bild nicht 32 Bit Farbe, sondern nur 24 Bit Farbe (8 Bit * 3 Kanäle) + 8 Bit Transparenz. Darüber hinaus wird der Transparenzkanal möglicherweise nicht in das Bild aufgenommen, und dann wird die Dateigröße um 1/4 kleiner.

Was ist eine Maske?


Maske in Texturierung (ja, wahrscheinlich und nicht nur) Dies ist ein Bild, das aus dem 1. Kanal besteht und für die Regulierung anderer Kanäle und die Visualisierung von Texturparametern erforderlich ist (dies ist bereits PBR, und wir werden es definitiv etwas später antreffen).

Das heißt, die Maske wird verwendet, um zwei Probleme zu lösen:

  • Bestimmung des Transparenzgrades.
  • Bestimmen der Intensität von etwas in einem Pixel (dazu später mehr, aber erforderlich).

Tatsächlich ist es nicht notwendig, die Arbeit von Masken in zwei Aufgaben zu unterteilen - sowohl dort als auch dort wird ein Grad an Intensität verwendet, nur im ersten Fall für Transparenz und im zweiten Fall, um das Erscheinungsbild der Textur zu regulieren.

Jetzt werden wir das Funktionsprinzip von Masken in Substance Painter klar untersuchen und versuchen, meiner Katze einen Hut aufzusetzen.

Dazu erstellen wir ein neues Projekt, zeigen und fügen unsere Fotos von Hut und Katze zum Programm hinzu. (Hinweis: Mit Substance Painter können Sie kein Projekt ohne 3D-Modell erstellen. Daher habe ich in Autodesk Maya eine quadratische Ebene erstellt. Das Erstellen von Modellen geht über den Rahmen unserer Tutorials hinaus. Daher müssen Sie diese Informationen selbst finden. Wir werden die Substance Painter-Oberfläche auch nicht im Detail betrachten. Um die Tutoren nicht auf das Maximum zu ziehen, arbeiten Sie jedoch zum ersten Mal mit Substance Painter. Wenn Sie nicht auf etwas extra klicken, sollten alle Fenster korrekt angezeigt werden und es wird nicht schwierig sein, die erforderlichen Parameter zu finden.

Bild

Als nächstes müssen wir 2 Füllschichten erstellen:

Bild

Die Füllschicht in Substance Painter enthält eine Vielzahl von Parametern für das Aussehen der Textur. Hier können Sie die Präsentation von Metall, Kunststoff und anderen Texturen visuell anpassen. Wir werden jedoch später darüber sprechen, und jetzt sollten wir eine klare Vorstellung davon haben, dass die Füllschicht ein Bild (Farbe) ist, das aus 3 Kanälen und einer Reihe zusätzlicher Kanäle mit 8 Bit besteht, die dafür verantwortlich sind, wie diese Füllschicht aussehen soll.

Das heißt, die Füllschicht hat eine komplexere Kombination als ein normales Bild. In diesem Fall besteht die Füllschicht aus:

  • 3 Hauptkanäle, die für die Gebäudefarbe zugewiesen sind. Diese drei Kanäle werden zu einem BaseColor-Parameter zusammengefasst.
  • 3 zusätzliche Kanäle, von denen jeder für eine Art von visuellen Effekten verantwortlich ist (zum Beispiel ist der Metallkanal dafür verantwortlich, wie viel ein Pixel in Bezug auf die PBR-Texturierung als Metall betrachtet wird).
  • 3 Kanäle für die Arbeit mit der normalen Karte (normale Karte).

Wir sind jetzt nicht an zusätzlichen Kanälen interessiert, da wir uns noch nicht mit der PBR-Texturierung vertraut gemacht haben, und wir werden definitiv später darauf zurückkommen. Jetzt besteht unsere Aufgabe darin, mithilfe von Masken zu steuern, welche Ebenen in den Pixeln, die wir benötigen, dominieren (im Fall von Halb-). transparente Maske), welche Ebenen vollständig ausgeblendet werden und welche Ebenen auf einzigartige Weise angezeigt werden.

Wir werden dies nun an einer Katze und einem Hut analysieren und dann zu einfacheren monotonen Farben übergehen und die komplex kombinierte Verwendung von Masken zur Steuerung von Schichten genauer analysieren.

Unsere Aufgabe ist es nun, alle Kanäle in dieser Ebene zu deaktivieren, die für uns derzeit nicht von Interesse sind. Sie müssen die Kanäle Höhe, Rau, Metall, Nrm (Normal) deaktivieren und nur die Farbe (Farbe) belassen:

Bild

Jetzt müssen wir unsere Bilder in Ebenen verteilen und ihre korrekte Anzeige konfigurieren. Wählen Sie dazu die Ebene aus, suchen Sie das Bild, importieren Sie es in den Projektordner (im Regalbedienfeld) und ziehen Sie das Bild in den Parameter Grundfarbe.

Bild

Wiederholen Sie diesen Vorgang mit der zweiten Schicht und dem Hut.

Es ist wichtig. Die Ebene mit dem Hut sollte eine höhere Hierarchie aufweisen als die Katze, da der Hut auf der Katze und nicht UNTER der Katze sein soll. Denken Sie daran, dass Sie die Sichtbarkeit von Ebenen mithilfe der Schaltfläche in Form eines Auges links von der Ebene steuern können.

Da das Projekt für Texturen konzipiert ist und Texturen quadratisch sein sollen (es ist wünschenswert, dass die Größe immer ein Vielfaches von 2 m ist. Das heißt, die Größe von 64 * 64 Pixel beträgt 2 * 2 * 2 * 2 * 2), wird das Bild der Katze in der Breite leicht gedehnt , da sein Foto vertikal rechteckig ist und Substance Painter es auf eine quadratische Form gestreckt hat.
In dieser Hinsicht müssen wir den Maßstab des Bildes ändern und das Foto auf der Ebene vertikal strecken. Dazu entsperren wir die Verriegelung für die Verhältniserhaltung und erweitern das Bild, indem wir die vertikale Skala auf 0,7 einstellen.

Bild

Jetzt müssen Sie die Größe des Hutes auf die gleiche Weise anpassen, aber jetzt müssen Sie das Speichern von Beziehungen nicht mehr deaktivieren. Da ich einen sehr großen Hut habe, beginnt beim Ändern der Skalierung ein Effekt wie Kacheln zu wirken - die Textur wiederholt sich horizontal und vertikal, sodass Sie beim System keine Leerzeichen lassen können, wenn das Bild kleiner als die Größe des endgültigen Bilds ist (in unserem Fall weniger als 1024 x 1024 Pixel).

Ein kleiner Exkurs: Warum brauchen wir Fliesen?

Kacheln sind notwendig, wenn wir einige sich wiederholende Texturelemente ausfüllen müssen. Zum Beispiel ein Gitter oder eine Art Stoffmuster. Das Bild unten hat eine speziell strukturierte Bildstruktur, so dass, wenn wir eine Kopie dieses Bildes von oben, von unten oder von beiden Seiten anhängen, es immer noch wie ein ganzes und breiteres aussieht (speziell im unteren Beispiel besteht das Bild bereits aus 16 sich wiederholenden Bildern ):

Bild

Diese Wiederholungen werden als Muster (oder einfacher als nahtlose Texturen) bezeichnet und so erstellt, dass Sie diese Muster mindestens eine Million Mal wiederholen können. In Zukunft werden wir diese Wiederholung verwenden, um die Bildqualität zu verbessern, aber wir werden sie hauptsächlich beim Erstellen von Shadern verwenden, damit wir nicht bald zu Kacheln und Mustern zurückkehren.

Und so geht es weiter

Wir haben den Waagenhut auf die Größe gebracht, die wir brauchen. Jetzt müssen wir den Hut plus oder minus über den Kopf der Katze legen - dazu beginnen wir, die Offset-Parameter zu drehen (Shift) und den Hut, den wir brauchen, auf die Katze zu verschieben.

Wir haben ungefähr das folgende Bild:

Bild

Nun ist es an der Zeit, Masken zu verwenden, um die Sichtbarkeit der Hutebene zu bearbeiten. Masken in Substance Painter können auf zwei Arten erstellt werden:

  • Erstellen Sie eine Maske auf der Ebene selbst, um deren Sichtbarkeit einzuschränken.
  • Erstellen Sie einen Ordner, in den Sie die Ebene einfügen können. Und legen Sie eine Maske auf den Ordner.

Mit der zweiten Option können Sie mehr Maskenkombinationen erstellen. Jetzt interessieren uns jedoch das Prinzip der Maske selbst und nicht die Komplexität der Kombinationen. Daher erstellen wir eine Maske auf der Ebene und machen sie sofort schwarz. Dazu klicken wir auf die RMB-Ebene und wählen „Schwarze Maske hinzufügen“.

Und was passiert mit einem Pixel, wenn der Kanal der Pixeltransparenzmaske 0 ist (vollständig schwarz)? Richtig, das Pixel wird vollständig transparent und erscheint überhaupt nicht:

Bild

Wie Sie bemerkt haben, besteht die Ebene jetzt aus zwei Bildern: Ein Bild ist ein Hut und das zweite Bild ist eine vollständig schwarze Maske. Die Maske in Substance Painter (wie an anderer Stelle im Prinzip) wird aus einem einzelnen 8-Bit-Kanal erstellt. Und jetzt, indem wir die Intensität steuern, können wir mit Graustufen auf die Maske zeichnen und die oberste Ebene „zeigen“. Je höher die Intensität der Pixelschattierung ist, desto heller ist die Pixelebene mit Hüten, bis die Pixel vollständig angezeigt werden.

Jetzt ist es unsere Aufgabe, den benötigten Hut sichtbar zu machen, und dazu müssen wir auf der Maske angeben, welche Zone der Hutfüllungsebene angezeigt wird. Wählen Sie dazu die Ebene mit der Maske aus und wählen Sie die Maske selbst aus (dies ist wichtig, da Sie die Füllebene nicht bearbeiten können, sondern nur die Maske). Wenn Sie eine Maske auswählen, öffnen wir die Pinseleinstellungen, die wir auf die Maske zeichnen, und ganz unten in den Einstellungen befindet sich eine Graustufeneinstellung von 0 bis 1 (von 0 bis 255).

Wenn wir nun eine Maske über den Kopf einer Katze ziehen, werden wir einen Hut enthüllen:

Bild

Nun, und entfernen Sie den Überschuss mit einem Pinsel mit 0 Intensität:

Bild

Die Maske selbst sieht folgendermaßen aus:

Bild

Mit der Maske konnten wir also bestimmen, welcher Bereich in der Ebene mit Hüten angezeigt werden soll.
Nun, das gilt für die Bearbeitung von Siegeln. Und wie kann man es auf Texturen in Spielen anwenden?

Komplexe Maskenkombinationen.


Schauen wir uns nun eine saubere Fliese für den Boden an. Genauer gesagt, seine Textur:

Bild

Stellen Sie sich nun vor, wir müssen eine Fliesentextur erstellen, die beschädigt wird, mit Rissen und Schmutz. Darüber hinaus nicht nur Schmutz, sondern nur der unten auf der Textur:

Bild

Dementsprechend wissen wir bereits, wie man Füllschichten mit Texturen erstellt, und jetzt unsere Aufgabe:

  • Erstellen Sie ein neues Projekt mit den gleichen Einstellungen wie im vorherigen (wir betrachten sie als Standard).
  • Erstellen Sie 2 Schichten - eine für Fliesen, die andere für Schmutz. Da sich der Schmutz auf der Fliese befinden sollte, legen wir die Schicht mit Schmutz darüber.

Jetzt maskieren wir die Ebene nicht mit Schmutz, sondern erstellen einen leeren Ordner für die Ebenen und legen die Schmutzschicht in diesen Ordner (denken Sie daran, dass der Ordner in der Hierarchie immer noch höher sein sollte als die Kachel).

Und die Maske ist bereits im Ordner erstellt.

Bild

Definieren wir nun die Bereiche, in denen Sie den Schmutz streichen können (Sie tun Ihren und ich meinen). Und vergessen Sie nicht, dass wir zum Bearbeiten der Maske die Maske im Ordner auswählen müssen, nicht die Ebenen.

Also habe ich ungefähr folgendes Bild bekommen:

Bild

Kein Meisterwerk, aber die Zonen, in denen Schmutz angezeigt werden soll, haben wir identifiziert.

Erstellen Sie nun einen weiteren Ordner im Ordner mit der Schmutzschicht und übertragen Sie die Schmutzschicht in diesen Ordner. Insgesamt stellte sich heraus, dass sich die Schmutzschicht in einem Ordner befindet, der sich in einem anderen Ordner befindet:

Bild

Wir werden auch eine Maske für den neuen Ordner erstellen. Diesmal handelt es sich jedoch nicht um eine feste Füllung, sondern es wird etwas aus den verschiedenen vorhandenen Masken ausgewählt. Hier habe ich es zum Beispiel im Internet gefunden:

Bild

Offtop über das Hochladen von Bildern zu Substance Painter
Um ein Bild hochzuladen und es dann als Maske zu verwenden, müssen Sie es vom Browser in das Regal (in den Ordner) übertragen und die folgenden Optionen auswählen:
Bild

Vielleicht können Sie ein anderes Format als "Textur" angeben, und das Bild wird weiterhin als Maske verbunden, aber ich weiß das nicht (in den Kommentaren vorschlagen).


Das Einstellen dieser Textur als Maske ist einfach. Klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie Bitmap-Maske hinzufügen. Suchen Sie im angezeigten Fenster die gewünschte Textur und wählen Sie sie als Maske aus. Die Hierarchie mit Ordnern sah folgendermaßen aus:
Bild

Beachten Sie, dass in einem kleinen Vorschaufenster in der Nähe des obersten Ordners anstelle von vollständigem Schmutz eine Reihe von Quadraten mit wenig wahrnehmbaren Schmutzflecken angezeigt wurden. Dies ist das Ergebnis der Verarbeitung der aktuellen Schmutzschicht unter Berücksichtigung aller von uns hinzugefügten Masken.
Aber im Allgemeinen haben wir ungefähr das folgende Bild:

Bild

In diesem Beispiel hatten wir eine Mischung aus Masken. Die erste Ebene der Maske bestimmte die Bereiche, in denen 100% KEIN Schmutz erscheinen sollte und in denen er auftreten kann. Die zweite Ebene der Maske bestimmte, wo 100% des Schmutzes erscheinen und wo nicht. Diejenigen Pixel, bei denen beide Masken Werte größer als 0 hatten, zeigten abhängig von der unteren Intensitätsgrenze Schmutz (wenn die erste Maske eine Intensität von 0,5 für ein Pixel und 0,2 für das zweite hat, ist das Pixel bei 0,2 transparent). Einfach ausgedrückt, berücksichtigt jedes Pixel alle Masken, die sich auf seine Anzeige auswirken. Und wenn mindestens eine Maske 0 ist, wird das Pixel nicht angezeigt.

Gesamt:

Ebenen - Dies ist die Füllung über den gesamten Projektbereich, der über eine Reihe von Kanälen verfügt, um den Status des Bildes zu steuern.

Eine Maske ist 1 Kanal eines Bildpixels (Textur), der benötigt wird, um die Sichtbarkeit von etwas zu verarbeiten.

Die Anzahl der Kanäle für das 1. Pixel kann sehr groß sein. Mit den Standardeinstellungen berücksichtigt Substance Painter bereits 9 Kanäle in der 1. Ebene - 3 pro Farbe und 3 für verschiedene Effekte, 3 auf normalen Karten. Das Bild selbst im Bild in Ihrem Browser enthält nur 3 Kanäle + 1 zusätzliche, wenn Transparenz vorhanden ist.

Darüber hinaus können sich die Schichten überlappen, und das Programm führt bereits Berechnungen für 1 Pixel durch, die viel größer sind als für 9 Kanäle. Das heißt, beim Mischen von 2 Schichten im 1. Pixel muss die Software 9 Kanäle einer Schicht berechnen, dann die im Maskenkanal angegebene Transparenz berücksichtigen und die Gesamtpixelintensität unter Berücksichtigung der Maske berechnen. Dann müssen Sie die zweite Schicht und ihre 9 Kanäle berechnen. Tragen Sie dann eine durchscheinende Schicht auf. Insgesamt 18 Schichtkanäle und 1 Mischkanal. Wenn Sie es auf Bilder (Texturen) hochladen, gibt es natürlich keine 19 Kanäle - Substance Painter erstellt 3 Bilder (Texturen):

  • Bild (Textur) mit Farbe (3 Kanäle pro Pixel).
  • Bild (Textur) mit Kanälen für PBR-Parameter.
  • Bild (Textur) zur Bestimmung von Normalen.

Das heißt, Substance Painter führt bereits alle Berechnungen durch, sodass Sie nur das Endergebnis im Bild erhalten. Wie Sie wissen, ist es nicht möglich, die Transparenzmaske von Schmutz in diesen Bildern zu steuern. In diesem Fall werden die Bilder (Texturen) als Endergebnis erhalten, das wir auf dem Modell positionieren und ein farbiges Modell erhalten können.

Textur


Ich habe in den Ergebnissen bewusst über die Masken „Bild (Textur)“ geschrieben, damit Sie anfangen zu verstehen, dass Textur tatsächlich kein Bild im üblichen Sinne für uns ist.

Eine Textur ist eine Reihe von Parametern, damit Game-Engines oder Programme zum Arbeiten mit Texturen verstehen, wie ein Pixel verarbeitet wird.

Eine Textur kann 1 Kanal enthalten. Zum Beispiel für Transparenz. Oder es kann 3 Kanäle gleichzeitig für verschiedene Zwecke enthalten (zum Beispiel für die Parameter der Metallbearbeitung, Rauheit und Schattierung).

Es gibt viele Arten, Texturen anzuwenden, aber alle hängen von einer Sache ab - der Arbeit mit einem oder mehreren Kanälen.

Beispielsweise beschreibt die Textur des Hohlraums (Risse) normalerweise die Kanten (Kanten) des Objekts im Scan, wobei die Pixel mit maximalem Weiß über die gesamte Länge der Kanten hervorgehoben werden. Tatsächlich handelt es sich jedoch nur um eine Textur, deren Kanal darauf abzielt, die Intensität der Pixel an den richtigen Punkten anzuzeigen. Eine solche Textur kann zum Beispiel für Schlammmasken verwendet werden - das heißt, wir können Schmutz auf dem Objekt anzeigen.

Wenden Sie Masken außerhalb von Texturierungsprogrammen an.

Masken werden nicht nur für Programme wie Substance Painter benötigt. In Spiel-Engines ist die Texturierung der Arbeit von Substance Painter sehr ähnlich - Sie können einfach die fertigen Texturen von Painter kleben oder Shader (Materialien) nach Belieben anpassen und Texturen durch Masken auf verschiedene Arten kombinieren. Und wenn Painter ein vorgefertigtes Ergebnis liefert, führt ein maskenbasierter Shader Berechnungen im laufenden Betrieb durch (ungefähr online).

Ein bisschen PBR-Texturierung


Basierend darauf, wie die Textur funktioniert und warum sie benötigt wird, können Sie sehr schnell erklären, was PBR ist.

PBR ist ein physikbasierter Textur-Renderer. Das heißt, dies ist eine Reihe von Parametern, mit denen gesteuert wird, wie die Textur filmisch aussehen kann.

Hierzu werden Parameter verwendet, die dafür verantwortlich sind, wie Licht auf einem Pixel angezeigt werden soll.

Hier ist eine Liste dieser Optionen:

  • Metallic Verantwortlich für die Darstellung des Pixels als Metall. Wie leicht Licht von einem Pixel reflektiert wird.
  • Rauheit. Verantwortlich für den Grad der Pixelrauheit. Wie viel Licht wird in Kontakt mit dem Pixel gestreut.
  • Umgebungsokklusion (veraltet). Verantwortlich für die Pixelschattierung. Dieser Parameter, der veraltet ist und bald überhaupt nicht mehr verwendet wird.
  • Normale Karte. Es ist dafür verantwortlich, wie Licht auf einem Pixel verzerrt werden kann, wodurch eine imaginäre falsche Tiefe oder Biegung entsteht.
  • Albedo (Farbe) - Die Farbe, mit der das Pixel angezeigt werden soll.

Es gibt immer noch eine Menge verschiedener Parameter, die Sie möglicherweise berücksichtigen müssen oder nicht, um das gewünschte Ergebnis zu erzielen. Es hängt alles davon ab, welchen Effekt Sie erzielen.

Wenn ein Programm beispielsweise ein Pixel in einen Metallkanal mit einem einzelnen Kanal einfügt, dessen Intensität 1 (255) beträgt, reflektiert dieses Pixel alles so sehr wie reines Metall.

Bild

Nachdem wir den Rauheitskanal auf das Maximum eingestellt haben (wobei alle Pixel als 1 oder 255 angezeigt werden), sehen wir, dass das Pixel nun nicht mehr alles reflektiert und das Licht so stark streut, dass es grau wird:

Bild

Es ist sehr wichtig zu verstehen, dass es keine separaten Texturen gibt, die sich auf eine Sache spezialisiert haben. Alle Texturen sind Kanäle, deren Pixel eine Intensität oder Werte haben, die angeben, auf welche Parameter Sie auf die eine oder andere Weise reagieren sollen.

Wir werden die Züchterrechte im nächsten Teil der Lektion am detailliertesten analysieren. Berücksichtigen Sie außerdem zusätzliche Techniken zum Mischen von Masken, um das Bild zu verbessern.

Wenn ich etwas Falsches oder Unklares geschrieben habe, bitte ich Sie, mich zu informieren, damit ich diese Lektion korrigieren kann.

Vielen Dank für Ihre Aufmerksamkeit =)

Source: https://habr.com/ru/post/de458470/


All Articles