Texturierung oder was Sie wissen müssen, um ein Oberflächenkünstler zu werden. Teil 4. Modelle, Normalen und Sweep

Modelle, Normalen und Sweep


Meiner bescheidenen Meinung nach sollte ein Texturkünstler für die Entfaltung verantwortlich sein. Nicht für den Scan selbst (sollte von 3D-Künstlern oder sogar einzelnen UV-Spezialisten im Allgemeinen durchgeführt werden), sondern für das Styling. Es sollte bestimmen, wie die Inseln lokalisiert werden sollen, wie sie gedreht werden sollen und wie viel sie in einer bestimmten Situation gezogen werden können, abhängig von den Anforderungen.

Es ist der Künstler nach Textur (und später nach Oberfläche), der den Maßstab (die Skala) der Inseln bestimmen muss (dazu später mehr).

In diesem Teil betrachten wir Modelle, Sweeps und Normalen. Erstellen Sie die Texturen für das erste vollwertige Modell (wenn auch ein einfaches) und konfigurieren Sie es in Unreal Engine 4.

Achtung Es wird davon ausgegangen, dass Sie zu diesem Zeitpunkt die normale Karte herausgefunden haben und warum Sie sie benötigen. Denn in diesem Tutorial werden wir sehr oft darüber sprechen.

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

Modelle und Züchterrechte. Übe


Ich werde nicht darüber sprechen, wie man Modelle erstellt oder wie man ein Gitter bereinigt / baut. Diese Informationen können aus vielen Kursen bezogen werden, die sowohl gemeinfrei als auch kostenpflichtig sind. Unsere Aufgabe ist es nun, die spezifischen Einschränkungen in den Strukturen von Modellen für Spiele zu analysieren und welche Lösungen derzeit existieren.

Aber zuerst werden wir das Modell texturieren und für einen Blick die erste Einschränkung. Wir werden an diesem Shop arbeiten:

Bild

Dazu müssen wir das Netz selbst und eine vorbereitete normale Karte dafür herunterladen (im Folgenden werde ich klar erklären, warum wir es vorbereitet haben). Link hier .

Ich möchte auch seine Basis aus Holz und die Beine aus Metall machen. Nun, ein bisschen Schmutz breitete sich aus. Dementsprechend benötigen wir 2 Materialien:

  1. der Baum
  2. bearbeitetes Metall.

Wir werden den Schmutz nicht in einem separaten Material entfernen, sondern den Generator in Substance Painter verwenden und Schmutz im Programm erzeugen.

Beginnen wir mit der Übung und erstellen ein Standardprojekt, geben eine Bank und Texturen an und führen es aus:

Bild

Bitte beachten Sie, dass wir diesmal das normale Kartenformat - OpenGL angeben müssen. Ich habe bereits im letzten Teil geschrieben, dass normale Karten von verschiedenen Programmen unterschiedlich gelesen werden. Und diese Karte wurde für Programme generiert, die OpenGL verwenden.

Wir haben 9 Texturen + Hauptnetz geladen.

Jetzt werden wir keine Ebenen und Ordner erstellen, aber schauen wir uns den Shop so genau wie möglich an. Wir interessieren uns besonders für die Kanten des Objekts:

Bild

Zum Beispiel habe ich eine Seite der Bank hervorgehoben. Jetzt ist sie so perfekt wie möglich. Das heißt, die beiden Seiten kamen in einer Rippe zusammen und bildeten den perfekten Winkel. Egal wie sehr wir dieses Gelenk näher bringen, es wird immer perfekt gleichmäßig sein. In Wirklichkeit gibt es keine idealen Winkel, und selbst die Rasierklinge wird abgerundet, wenn sie richtig vergrößert wird. Deshalb sehen die Rippen jetzt nicht filmisch aus. Solche Modelle sehen sehr schwach aus, und wenn wir sie im Spiel sehen, spüren wir sofort die Schwäche des visuellen Bildes, auch wenn wir diese Winkel nicht direkt auf den Modellen bemerken.

Dies ist die erste Einschränkung des Modells.

Früher, als die Ressourcen von Grafikkarten die Verarbeitung von Millionen von Eckpunkten in einem Frame nicht ermöglichten, lag die Lösung in den Texturen normaler Karten. Sie gaben an, wie Licht zu reflektieren beginnen sollte, damit das Gefühl besteht, dass diese Grenzen abgerundet sind. Speziell für diese Bank sieht eine solche normale Karte folgendermaßen aus:

Bild

Selbst wenn Sie nur eine Reihe von Parametern in Form dieser Karte betrachten, können Sie spüren, wie die normale Karte die Ecken glättet.

Geben wir nun diese normale Karte als Hauptkarte an (das heißt, sie wird immer an das Ergebnis angehängt, wie die unterste Ebene ohne Maske). Dazu müssen wir die Einstellungen für die Haupttexturen des Objekts öffnen und unsere Textur in den Parametern normaler Karten angeben:

Bild

Und schauen Sie sich das Ergebnis an:

Bild

Dies ist die erste bekannte und häufig verwendete Methode zum Umgang mit scharfen Kanten - zum Backen von Fasen in normalen Karten. Das heißt, das Modell ist immer noch steif, aber die normale Karte an den Rändern beginnt das Licht zu verzerren, wodurch die Illusion einer schönen weichen Abschrägung entsteht. Im Internet finden Sie unzählige Informationen dazu. Für einfache Objekte wie diese Bank können Sie keine High-Poly-Modelle erstellen (und nicht entsprechend daraus backen), sondern eine normale Karte mit Fasen in den Programmen erstellen. Dies kann beispielsweise das Modo- Programm tun. Unsere Bank hat eine normale Karte, die in Modo erstellt wurde.

Wir lassen jedoch das Thema Fasenbacken aus und strukturieren die Bank weiter.

Wenn die Normalen konkav sind
Wenn Ihre Fasen nicht so glatt wurden wie meine, aber die Illusion von Tälern auftrat, haben Sie beim Erstellen eines Projekts in Substance Painter vergessen, das normale Anzeigeformat von DirectX auf OpenGL zu ändern.

Erstellen Sie nun 2 Ordner für die Ebenen, erstellen und übertragen Sie jeweils 1 Ebene und fügen Sie alle Texturkarten in jede Ebene ein. Vergessen Sie nicht die Benennung, damit Sie nicht verwirrt werden:

Bild

Jetzt ist die Hierarchie der Schichten für uns nicht wichtig, da sich diese Materialien (Metall und Holz) nicht überschneiden - wir werden keine Situation haben, in der Metall durch den Baum zu erscheinen beginnt und umgekehrt. Da wir aber noch Masken benötigen, müssen wir jetzt die Sichtbarkeit von Ebenen auf verschiedenen Inseln einschränken. Fügen Sie nun beiden Ordnern schwarze Masken hinzu:

Bild

Und jetzt geben wir an, welche Scaninseln weiß und welche schwarz maskiert werden sollen. Wählen Sie dazu die Maske aus und wechseln Sie in den Inselauswahlmodus:

Bild

Klicken Sie auf das Modell auf der Hauptbank (wenn Sie die Baummaske ausgewählt haben) und erhalten Sie das folgende Ergebnis:

Bild

Wie Sie im Screenshot sehen können, wurde die Maske aktualisiert und hat jetzt einen riesigen weißen Streifen, der sich auf der Insel befindet. So malen wir die ganze Bank herum:

Bild

Das Material des Baumes selbst war nicht das erfolgreichste, aber unser Ziel ist es jetzt nicht, alles so schön wie möglich zu machen, sondern die Prinzipien der Arbeit zu verstehen.

Wir werden dasselbe mit einer Maske für Metall tun und dabei die sichtbare Zone mit Beininseln notieren. Wählen Sie die Metallmaske aus und geben Sie die erforderlichen Teile des Objekts an:

Bild

Es ist auch notwendig, an schwer zugänglichen Stellen an den Kreuzungen anzukommen und die Inseln zu markieren, die wir dort sowohl für Holz als auch für Metall benötigen:

Bild

Wenn Sie die Beine sorgfältig untersuchen, werden Sie die zweite Einschränkung des Modells bemerken.
Der Scan wurde nicht korrekt durchgeführt und das Stahlmuster zwischen den Seiten der Beine ist nicht konsistent - seine Textur ist in verschiedene Richtungen gerichtet, was optisch auffällig ist (die Richtung ist durch Pfeile markiert):

Bild

Dies ist genau eine Einschränkung, die überwunden werden kann, indem die Inseln geebnet und gedehnt werden. Nun sieht die Insel, auf der der Abwärtspfeil gezeichnet ist, folgendermaßen aus (orange hervorgehoben):

Bild

Um das Problem zu beheben, muss die Insel in einer Linie ausgerichtet werden:

Bild

Dann werden wir diese Einschränkung lösen, aber wir werden eine andere haben - zieht:

Bild

Pulls sind nicht schrecklich, wenn sie nicht sehr auffällig sind oder die Textur auf ihnen sie nicht herausgibt. Aber Sie müssen vorsichtig mit ihnen sein, und manchmal müssen Sie sich damit abfinden, dass es zu Inkonsistenzen bei den Materialien kommen kann.

Im Allgemeinen bleibt das Problem der Nähte in Objekten bis zum Ende ungelöst. In Zukunft werden wir andere Optionen in Betracht ziehen, um Nähte zu entfernen und im nächsten Teil sogar wirklich coole Methoden auszuprobieren.

Kratzer auf der Bank

Wie wir früher oder später wissen, beginnen Farbe oder Materialstücke auf allen Gesichtern aller Dinge abzubrechen. Dort treten eine große Anzahl von Kratzern und Chips auf:

Bild

Erstellen wir daher eine Maske, mit der wir in Zukunft dieselben Abnutzungsspuren, Kratzer und Chips darunter anzeigen können.

Öffnen Sie dazu die Haupttextureinstellungen (wo wir die normale Karte angegeben haben) und wählen Sie dort Bake Mesh Maps .

Entfernen Sie im angezeigten Fenster alle unnötigen Häkchen, lassen Sie nur die Krümmung übrig und backen Sie sie, indem Sie auf Backen [zusätzlicher Name] klicken.

Bild

Wenn die Texturerstellung abgeschlossen ist, steht sie im Regal unter dem Projekt-Tag zur Verfügung:

Bild

Außerdem wird diese Textur automatisch als Hauptparameter für die Krümmung in den Textureinstellungen verbunden. Wir entfernen es von dort:

Bild

Wenn wir oben in der Hierarchie eine neue Ebene erstellen und die resultierende Textur als Grundfarbenparameter festlegen, wird das folgende Ergebnis angezeigt:

Bild

Löschen Sie nun diese Ebene, da wir sie nur zum Verständnis brauchten.

Erstellen Sie als Nächstes einen Ordner, nennen Sie ihn Ordnerschmutz und legen Sie ihn im Baumordner ÜBER der Baumebene ab. Erstellen Sie in diesem Ordner eine Ebene mit dem Namen LowLayer_Dirt und erstellen Sie im Ordner selbst eine schwarze Maske, damit die Ebene das Ergebnis nicht überlappt:

Bild

Wir weisen darauf hin, dass die Schlammmaske aus Fülleffekten bestehen sollte, um die von uns erstellte Textur (Krümmung) und den zusätzlichen Effekt „Ebenen“ hinzuzufügen.

Warum brauchen wir jetzt den Levels-Effekt? Sie haben wahrscheinlich bemerkt, dass die Gesichtsmaske zu hell ist? Jetzt müssen wir die Farben so zuschneiden, dass hellweiße Flecken an den Rändern zurückbleiben, und den Rest komplett schwarz machen.

Das Endergebnis sollte wie folgt sein:

Bild

Auf diese Weise haben wir die „ Grenzlinie “ für Schmutz geschaffen. Jetzt müssen wir den Schmutz selbst begrenzen. Wenden Sie dazu eine schwarze Maske auf die Ebene LowLayer_Dirt an. Fügen Sie danach den Fülleffekt hinzu und geben Sie darin die Dirt4-Maske an, die unter dem Tag "Prozeduren" ausgeblendet ist:

Bild

Oben im Screenshot sind die zusätzlichen Parameter der Dirt 4-Maske eingekreist. Tatsache ist, dass dies keine Textur in dem Format ist, in dem wir sie gewohnt sind. Dies ist ein Zufallszahlengenerator nach bestimmten Regeln. Mit anderen Worten, eine prozedurale Textur, in der Pixel eine erzeugte Intensität haben. Sie können mit Parametern herumspielen, z. B. Balance und Kontrast drehen, um das gewünschte Ergebnis zu erzielen. Ändern Sie nun den Parameter Höhe in der Ebene LowLayer_Dirt auf -0,35 und sehen Sie sich das Ergebnis an:

Bild

Ich wiederhole. Jetzt ist unser Ziel nicht die perfekte qualitative Bemalung der Bank, sondern die Arbeit mit den Grundlagen und dem Training für die Arbeit mit Masken.

Jetzt Hausaufgaben

Im Allgemeinen haben wir nun untersucht, wie Masken für bestimmte Materialien, die sich nicht überschneiden, schnell angewendet werden können. Wie Sie vielleicht erraten haben, müssen wir im Ordner mit dem Baum eine Ebene erstellen, um Lack auf einen Baum aufzutragen. Aber jetzt werden wir das nicht tun, und die Aufgabe selbst bleibt für Hausaufgaben:

  • einen Baum lackieren
  • Kratzer auf dem Lack erzeugen (Kratzer, die nur in einem Winkel sichtbar sind, weil sie den Lack drücken, aber das Holz nicht beschädigen)
  • Kratzer unter dem Lack erzeugen

Wirf dein Handwerk in Kommentare - interessanterweise =)

Insgesamt

Wir haben erläutert, wie Modelle mithilfe von Masken texturiert werden. So tragen Sie Schmutz, Chips und Kratzer auf.

Damit Sie in Zukunft eine einfache Vorstellung davon haben, wie alles funktioniert, denken Sie an die Regel - ein Material - ein Ordner für die Arbeit damit. So können Sie Ihre Masken und Ebenen besser steuern. Wenn Sie beispielsweise eine Schmutzschicht in den Ordner mit dem Material legen, steuern Sie auf der Ebene der Maske des Ordners weiterhin die vollständige Sichtbarkeit dieses Materials und jetzt auch den Schmutz darauf (oder die darunter liegende Schicht). In der Realität kann beispielsweise eine andere Textur unter der Textur (Material) liegen - Kunststoff kann sich unter der Metallbeschichtung verstecken. In diesem Fall ist Metall die Hauptschicht und Kunststoff die zusätzliche Schicht unter dem Metall (obwohl wir im obigen Tutorial eine Schicht mit Chips und über dem Baum platziert haben, ist es tatsächlich eine niedrigere Schicht in der Hierarchie. Mit anderen Worten, dies ist ein Fehler).

Materialebenen, deren Hierarchie berechnet werden muss, bevor Sie mit der Erstellung von Texturen beginnen. Dies ist wichtig, da falsche Layer-Layouts letztendlich dazu führen können, dass Sie von vorne beginnen und lange Stunden damit verbringen müssen, zu untersuchen, warum Ihre Textur nur eine Metallebene anzeigt.

Im Allgemeinen schließen wir damit das große Thema, wie Objekte für Spiele im Rahmen von PBR texturiert werden. Alles andere ist Technologie. Meine Aufgabe ist es, die Essenz und die Grundlage all dessen zu erklären, damit Sie keine weiteren Fragen wie "Was ist der Unterschied zwischen der Rauheitskarte und der Metallic- und Normal-Karte?" Haben. (Ich werde sofort mit nichts antworten) und es stellten sich Fragen: "Wie kann dies verbessert werden? Wie kann man es besser und effizienter machen? “

Wir haben uns einige Einschränkungen angesehen, die Lösungen bieten.

  • Anfasen.
  • Beschränkung der Lage der Inseln.

Beide Einschränkungen können auf die eine oder andere Weise umgangen werden. Im ersten Fall erstellen wir eine normale Karte, die eine Biegung simuliert. Im zweiten Fall zeichnen wir Inseln und opfern Details (Pulls erstellen), um das Gesamtbild zu verbessern.

Im zweiten Fall müssen Sie sich auch die Richtungen der Inseln merken - sie müssen koordiniert eingesetzt werden, wie die Richtung des Musters in den Materialien. Andernfalls treten die oben beschriebenen Schwierigkeiten auf.

Scannen


Vorerst Substance Painter beiseite legen. Schließen Sie das Projekt nicht, es wird später nützlich sein, wenn wir Texturen nach Unreal Engine 4 exportieren.

In diesem Tutorial werden wir den Sweep von Objekten und die Dichte der Inseln untersuchen und schließlich das Phänomen der Texeldichte untersuchen.
Und fangen Sie mit Texel an.

Texel

Ein Texel ist ein Texturpixel (ba-dum-s).

Dichte von Texel und Inseln

Um ein Monitorpixel (ein physikalisches Element der realen Welt, das immer eine feste Größe hat) nicht mit einem Texturpixel (einem visualisierten Quadrat, das seine Größe auf dem Monitorbildschirm ändern und im Allgemeinen verzerrt werden kann) zu verwechseln, wird das Texturpixel als Texel (Textur und Pixel) bezeichnet.

Es gibt hier einen ziemlich vollständigen Artikel zu diesem Thema. Und die Übersetzung ist hier .

Wir werden dieses Phänomen jedoch noch einmal betrachten, denn wenn wir in Zukunft nicht die gesamte Idee der Texel verwirklichen, wird es für uns schwierig sein, weiter zu arbeiten. Und noch mehr wird es schwierig sein, Oberflächenkünstler zu werden.

Von diesem Moment an beginnen wir richtig zu sprechen - ein Pixel und ein Texel. Pixel ist ein Monitorelement. Texel ist ein Texturelement.

Wiederholen wir also die Vergangenheit. Texel ist eine imaginäre Einheit der Informationsanzeige. Es existiert nur in Zahlen (ein Array von Zahlen aus verschiedenen Kanälen), aber um uns das Arbeiten mit Renderparametern zu erleichtern, wurden Texturen als visueller Ersatz für Arrays von Zahlen eingeführt. Ich denke, niemand würde gerne ein Raumschiff nur mit Zahlen malen, wenn man bedenkt, dass ein Texel in Zeile 8 und in Spalte 453 1 weniger sein sollte als Texel in Zeile 284 und Spalte 112. In Photoshop ist es einfacher, einen Pinsel zu stecken.
Renderer (Visualisierungssysteme) lesen diese Zahlen und zeigen sie als Quadrate (Texel) an. Das Anzeigen eines Texels in Form eines Quadrats ist eine bedingte Angelegenheit. Dies hängt insbesondere von der Dichte und Spannung der Modell-Sweep-Inseln ab.

Wir werden etwas später über die Dichte der Sweep-Inseln sprechen, aber jetzt werden wir uns mit der Spannung der Inseln befassen.

Stellen Sie sich ein Stück Stoff vor (wenn es schwer vorstellbar ist, nehmen Sie ein Stück Stoff, das gedehnt werden kann). In einem ruhigen Zustand bleibt das Muster (oder Materialmuster) darauf unverändert, wie vom Hersteller beabsichtigt. Wenn wir jedoch anfangen, den Stoff zu dehnen, beginnt sich auch das Muster zu dehnen. Der gleiche Effekt tritt auf, wenn wir die Scan-Insel des Modells dehnen (oder komprimieren):

Bild

Der Scan der linken und rechten Seite befindet sich wie folgt:

Bild

Wir können dem Beispiel entnehmen, dass wir, nachdem wir die Darstellung (Insel) der linken Seite zusammengedrückt haben, die Texel so gedehnt haben, dass sie jetzt auf der linken Seite des Würfels in Form von länglichen rechteckigen Stäbchen angezeigt werden. Das heißt, ein Texel auf einem Objekt hängt davon ab, wie dieses Objekt ausgepackt wird. In 3D-Editoren von Objekten besteht häufig die Möglichkeit zu verfolgen, wie stark die Scan-Insel komprimiert oder gedehnt ist. In Autodesk Maya sieht es beispielsweise so aus:

Bild

Wo Rot eine starke Kompression zeigt und Blau - Dehnung.

Inseldichte

Die Kehrinsel sollte sich korrekt ausrichten, ohne Estriche zu erzeugen. Dennoch sollten die Inseln untereinander skaliert werden. Das heißt, die von der Insel besetzte Fläche muss der Fläche einer anderen Insel entsprechen. Andernfalls stellt sich heraus, dass eine Insel mit einer realen Fläche von 20 m² 20% des Texturraums einnimmt und eine Insel mit einer realen Fläche von 100 m² 5% des Texturraums einnimmt. Und von hier aus kommt es zu Meinungsverschiedenheiten bei der Anzeige der Anzahl der Texel auf der Insel:

Bild

Die Insel auf der rechten Seite des Würfels ist sehr klein und kann nur 25 Texel anzeigen, auf denen sie sich befindet. In dieser Hinsicht erhöht der Render die Texel entsprechend der Fläche der Insel, und wir sehen große Quadrate.

Auf der linken Seite ist die Insel sehr groß - sie bedeckt ein großes Stück Texturraum und kann mehr Texel aufnehmen, was auf dem Bildschirm passiert ist. Die Oberseite hat eine durchschnittliche Größe.

Das heißt, damit das Modell korrekt strukturiert wird, müssen Sie die Fläche aller Inseln so ausrichten, dass sie im Verhältnis zueinander gleich sind:

Bild

Oben ist ein Bild aus einem Artikel von Habrochanin Osmandos . Sein Artikel ist hier . Empfohlene Lektüre.

Texturgröße

Wenn wir zu unserem Würfel zurückkehren, werden wir sehen, dass die Texel darauf (in diesem Beispiel schwarze und weiße Quadrate) sehr groß sind (wiederum bedingt. Stellen Sie sich vor, dass die Quadrate in der aktuellen Textur Texel sind). Selbst wenn wir alle Inseln ausrichten, sehen wir immer noch schwarze und weiße Quadrate an den Seiten des Würfels:

Bild

Dies zeigt uns, dass die aktuelle Texturgröße nicht hoch genug ist, sodass wir Texel sehen. Aber ist das so?

Stellen Sie sich vor, dass die aktuelle Textur (normalerweise als „Checker“ bezeichnet - eine Textur zum Überprüfen der korrekten Inseleinstellungen) eine Größe von 63 x 63 Texel hat.Und jetzt sehen wir Texel, weil sich das Objekt so nahe an unserer Kamera befindet, dass die Größe eines Texels (bedingt) einen Bereich von 30 x 30 Pixel des Monitors einnimmt.

Und wenn wir den Würfel von der Kamera wegbewegen?

Bild

Versuchen Sie jetzt, Texel auf diesem Würfel zu erkennen?

Jetzt ist 1 Texel gleich groß wie 1 Pixel (aber das ist nicht genau). Und die Größe einer solchen Textur ist ideal, da Sie damit alle Ihre Texel anzeigen können und auch nichts Überflüssiges anzeigen und nichts Überflüssiges verbergen können. Dies ist die ideale Größe für eine solche Entfernung.
Das heißt, die Größe der Textur hängt sehr stark von der Fläche ab, die der Modell-Sweep einnimmt, und von der Entfernung des Objekts zur Kamera. Wenn sich das Objekt in einem ausreichend großen Abstand von uns befindet, macht es keinen Sinn, ihm 8k-Texturen auf den Nagel zu geben. Selbst wenn Sie Texturen für den Film erstellen, sieht niemand nur einen weißen Streifen auf dem Nagel eines Mädchens, dessen Hand 3% der Bildschirmfläche einnimmt.

Insgesamt

Es ist wichtig, den Maßstab der Modelle und ihre Position in Bezug auf die Kamera zu kennen, um die Texturen richtig dimensionieren zu können. Sehr oft sah ich Spiele von Indie-Entwicklern, die diese einfachen Regeln vernachlässigten, und daher waren ihre Texturen nicht von bester Qualität.

— . , , Fallout 4 - NPS, , , :

Bild

, . , ?

( , ). — , , / / . , , .


Was ist Texturbacken?

Beim Backen von Texturen beginnt ein Paket zum Erstellen von Texturen, das Endergebnis zu berechnen und in separaten Dateien zu speichern, mit deren Hilfe das Modell dann in der Spiel-Engine gezeichnet wird.

Grob gesagt wenden wir in Substance Painter Schichten für Schichten durch Masken und andere Tricks an, um das Endergebnis zu erzielen. Wir arbeiten daran, wie das endgültige Modell aussehen soll, indem wir verschiedene Materialoptionen mischen. Wenn Sie jedoch feststellen, dass es umso schwieriger ist, Ihre Programmänderungen zu verarbeiten, je schwieriger Ihre Kombination aus Ebenen, Masken und Materialien ist. Tatsache ist, dass Substance Painter (jedes andere Texturierungsprogramm) jede Änderung überprüft und in Echtzeit ALLE von Ihnen erstellten Ebenen und Kanäle berechnet (und ich erinnere Sie daran, dass Sie Ebenen auch Ihre eigenen Kanäle für alles hinzufügen können ) die auf texel fallen.

Und wenn wir mit dem Ergebnis zufrieden sind und bereit sind, es in die Spiel-Engine hochzuladen, bitten wir Substance Painter, die letzten Berechnungen durchzuführen und uns eine Textur mit Parametern für die Farbe jedes Pixels und 3 zusätzlichen Texturen mit den Parametern Metallic, Roughness und Normal Map zu erstellen. Auf diese Weise können wir nicht Tonnen von Masken und zusätzlichen Materialien in das Spiel hochladen, die Engine nicht zwingen, alles neu zu berechnen, sondern einfach ein fertiges Ergebnis liefern, das sie in Texturen für das Modell konvertiert.

Im Allgemeinen haben wir Backtexturen herausgefunden. Wir müssen uns jedoch ansehen, wie Parameter in Texturen entladen werden, damit wir lernen, wie wir steuern können, auf welche Texturkanäle welche Daten gehen. Dies ist wichtig, da die Bildstandards immer noch nur 4 Kanäle enthalten. Und wir müssen in der Lage sein zu wählen, auf welchen Kanal welche Parameter gehen sollen, damit wir sie später schnell verbinden können.

Jetzt kehren wir in unserem Projekt zu Substance Painter zurück und beginnen mit dem Entladen von Texturen. Öffnen Sie dazu das Fenster zum Exportieren von Texturen (Datei - Texturen exportieren):

Bild

So sieht es von Anfang an aus. Wenn wir den Textursatz erweitern, wird eine Liste der Dateien angezeigt, die als Export hochgeladen werden:

Bild

Wie Sie sehen können, sollten 4 Texturdateien exportiert werden, gegenüber den 9 Dateien, die wir heruntergeladen haben.

Sie interessieren uns jedoch nicht, da es sich um Standardeinstellungen handelt, sondern wir benötigen unsere eigenen (oder gemäß dem Standard des Studios, in dem Sie arbeiten). Daher gehen wir zum Konfigurationsfenster :

Bild

Erstellen Sie zunächst neue Voreinstellungen und wählen Sie sie aus, um die fertigen nicht zu zerstören:

Bild

Achten Sie nun auf das Feld rechts:

Bild

Input Maps ist eine Liste der von uns verwendeten Kanäle. Die meisten von ihnen haben Namen, da sie für bestimmte Zwecke für Züchterrechte verwendet werden. Es gibt 8 Kanäle (von 0 bis 7), die bearbeitet werden können, aber Substance Painter weiß nicht, warum Sie sie möglicherweise benötigen, sodass die Kanäle die Standardnamen User0 - User7 haben.

Konvertierte Karten sind eine Liste von Texturen, die von der Art des Renderns abhängen. Beispielsweise hängt die normale Karte von der Engine ab. Und wir müssen wissen, welche API die Engine verwendet - DirectX oder OpenGL, um die richtige normale Map dafür auszuwählen. Daher wählt Substance Painter diese Karten in einer separaten Kategorie aus, da ihr Endergebnis von Ihrer Auswahl abhängt.

Mesh Maps - die Texturen, die Sie mit dem Objekt geladen oder während der Arbeit generiert haben. Wir haben 9 Texturen heruntergeladen. 8 von ihnen gehörten zu Schichten (Materialien), und die 9. normale Karte für Fasen war bereits direkt mit dem Objekt verbunden. Zusätzlich zur normalen Karte haben wir auch eine Krümmungskarte zum Überlagern von Chips erstellt. Diese Karten beziehen sich speziell auf das Objekt und können nicht als Grundlage für Materialien verwendet werden. Daher werden sie in eine separate Liste aufgenommen.

Betrachten Sie nun das Texturerstellungsfenster:

Bild

Dies sind Schaltflächen, auf die Sie klicken, um eine Texturdatei zu erstellen (genauer gesagt, bereiten Sie alles für die Erstellung vor).

Grau - Erstellt eine Textur mit einem einzelnen Kanal. In diesem Kanal können wir jede unserer Einstellungen platzieren - Rauheit, metallisch, spiegelnd, emittierend. Alle Einstellungen, die in einem Kanal funktionieren.

RGB - Erstellt eine Textur mit 3 verbundenen Kanälen. Das heißt, es ist für Parameter wie Farbe (BaseColor) und normale Karte vorgesehen. Das heißt, für alle Parameter, die 3 Kanäle verwenden, um sich vollständig zu realisieren.

R + G + B - Erstellt eine Textur mit 3 nicht verbundenen Kanälen. Das heißt, wir haben eine Textur mit drei grauen Kanälen. Wir können einen Parameter mit 1 Kanal in jedem Texturkanal separat angeben. Dies wird häufig für ORM - (Occlusion-Roughness-Metallic) verwendet. Das heißt, Ambient Occlusion wird im ersten Kanal gespeichert, Roughness wird im zweiten und Metallic im dritten Kanal gespeichert.

RGB + A - Sie haben es erraten - 3 angeschlossene Kanäle und 1 nicht verbunden.

R + G + B + A - vier nicht verbundene Kanäle.

Wenn Sie dies wissen, überlegen Sie, wie viele Dateien wir benötigen, um alle Informationen darüber hochzuladen, wie die endgültige Textur für das Objekt aussehen soll.

Das ist richtig, mindestens 3 Texturen:

  1. RGB - BaseColor
  2. R + G + B - ORM
  3. RGB - Normale Karte

Klicken Sie nacheinander auf die gewünschten Texturen und Sie erhalten die folgende Liste:

Bild

Vergessen Sie nicht, die Texturen richtig zu benennen, sonst werden wir nicht herausfinden, was wo und wie ist.

Jetzt müssen wir angeben, welche Parameter in welchen Kanälen gespeichert werden. Übertragen Sie dazu einfach die Parameter von den Input Maps auf die gewünschten Kanäle. Die normale Karte muss nach DirectX migriert werden, da UE4 dieses normale Leseformat verwendet.

Als Ergebnis erhalten wir den folgenden Satz:

Bild

Wechseln Sie nun zurück zu Exportieren. Da sind wir:

  • Wir geben den Pfad an, in dem gespeichert werden soll.
  • Wählen Sie die Voreinstellungen aus, die wir in den Konfigurationsoptionen erstellt haben.
  • Wählen Sie die Art der Textur - Targa.
  • Klicken Sie auf Exportieren.

Bild

Und der Export von Voila-Texturen war ein Erfolg. Öffnen Sie die BC-Textur (BaseColor) in Photoshop und sehen Sie sie sich an:

Bild

Erinnerst du dich, wie wir 2 verschiedene Materialien in verschiedenen Schichten hergestellt haben? Substance Painter hat alle Ebenen gefaltet, das Ergebnis der endgültigen Version der Textur berechnet, die das Objekt bedeckt, und alle Texel genau so „gebacken“, wie Sie sie maskiert haben. Er tat dasselbe mit Normal Map, Roughness und Metallic.

Wenn wir die ORM-Karte in Photoshop öffnen, in den Kanalanzeigemodus wechseln und die letzte (blau) auswählen, wird die gebackene Metallic-Karte angezeigt:

Bild

Auf dieser Karte können Sie sich vorstellen, wo die Inseln aus Metall sein sollten und wo - nicht aus Metall.

Insgesamt

Wir haben gelernt, wie man vorgefertigte Texturen für die Spiel-Engine erstellt.

Es ist wichtig. Jetzt haben wir gelernt, wie man Texturen backt und die gesamte Berechnung zum Erstellen dieser Texturen in Substance Painter durchführt. Das heißt, wir haben alles getan, um vorgefertigte Texturen zu erhalten, die wir jetzt in verschiedenen Engines verwenden können (mit der Einschränkung bei der Verarbeitung einiger PBR-Parameter). Der Nachteil dieses Ansatzes - wenn wir etwas radikal ändern müssen - müssen wir zum Programm zurückkehren und die Texturen wiederholen.

Um zu berechnen, wie die Farbe und das Licht eines Texels korrekt angezeigt werden, muss die Grafikkarte Berechnungen für jedes Texel durchführen. Und es hängt nicht davon ab, wie viele Pixel Sie auf dem Monitor haben. Dies hängt davon ab, wie viele Texel bei der Bildung der Textur verwendet werden (wir verwenden Standardeinstellungen im Staker, dh wir verwenden 1024 * 1024 Texel). Das heißt, um die Textur korrekt anzuzeigen, muss der Maler jedes Pixel zählen und alle Ebenen berücksichtigen, die Sie darin erstellt haben. Dies ist eine zeitaufwändige Aufgabe, daher wurden frühere (und jetzt) ​​PBR-Texturen hauptsächlich in Texturierungsprogrammen erstellt.

Unwirklicher Motor 4


Und zum Schluss entladen Sie unser Objekt in UE4 und sehen Sie unser Ergebnis. Ich werde nicht beschreiben, wie man UE4 öffnet, wie man ein Projekt erstellt, wie man es überhaupt installiert und welche Tasten man dort drückt. Dafür gibt es sehr gute Kurse von Flakky . Die Kurse finden Sie alle auf seiner Website uengine.ru .

Jetzt werden wir nur den Import unseres Shops und die daraus resultierenden Texturen betrachten, die Erstellung eines primitiven Shaders und zusammenfassen.

Öffnen Sie zunächst das Projekt und erstellen Sie darin einen Ordner „Bench“, in den wir alle unsere Texturen und das Objekt ablegen. Um alle Texturen zu importieren, übertragen Sie sie einfach vom Browser in das Projekt. Sie werden problemlos importiert und erfordern keine zusätzlichen Einstellungen. Was das Objekt betrifft, werden Sie beim Importieren von Unreal Engine aufgefordert, einige Einstellungen anzugeben. Im Allgemeinen muss nichts außer 2 Parametern geändert werden. Sie müssen deaktiviert sein:

Bild

Diese Parameter sind für den Import von Texturen verantwortlich und werden separat gespeichert.

Infolgedessen befinden sich in unserem Ordner 3 Texturen und 1 Objekt:

Bild

Klicken Sie nun an einer beliebigen Stelle im Projektbrowser auf RMB und wählen Sie Material:

Bild

Nennen Sie es M_Bench.

Öffne es und ziehe alle unsere Texturen hinein. Wir bekommen folgendes Bild:

Bild

Hierbei handelt es sich um Knotencontainer, mit denen Sie Einstellungen so visualisieren können, dass selbst Anfänger bequem mit ihnen arbeiten können (vielen Dank für die erfolgreiche Implementierung von Epic Games-Knoten. Ohne Blueprints-Systeme und insbesondere Knoten hätten viele Köpfe von Zahlen und Code verbrannt). Weiße Stifte (Ausgänge und Eingänge) an den Texturen (Knoten links) zeigen an, dass drei Kanäle gleichzeitig gespeist werden. Aber rot, grün und blau - jeder Kanal einzeln. Der letzte gräuliche ist der Alpha-Kanal, aber er befindet sich nicht in unseren Texturen, daher werden wir diesen Pin nicht verwenden. Auf der rechten Seite befindet sich ein großer Knoten, der die Parameter aufnimmt, zusammenfasst und ein vollständiges Material erstellt.

Das gesamte Prinzip der Texturarbeit in Substance Painter wird hier (und in jeder anderen Spiel-Engine) verwendet - Sie geben an, welche Parameter für was benötigt werden, und das Programm gibt das Ergebnis aus. In diesem Fall übernahm der Substance Painter die meisten Berechnungen, während die Unreal Engine einfach die fertigen Ergebnisse des Painter addiert und einen vorgefertigten Shader (Material) erstellt, der auf die Bank gelegt werden kann.

Wir müssen nur die Stifte richtig anschließen und den Motor bitten, das Ergebnis für uns zu berechnen:

Bild

Und warum habe ich in Ambient Occlusion keinen roten Kanal aus der ORM-Textur geklebt? Ich habe bereits erwähnt, dass AO als veraltet gilt, da AO häufig in Echtzeit berechnet wird. Und im Materialknoten befindet sich ein Ambient Occlusion Pin, der jedoch nicht funktioniert. Es wird nicht einmal berücksichtigt. Aus irgendeinem Grund hier gelassen. Ich nehme an, dass ein ausreichend großer Arbeitsaufwand erforderlich ist, um ihn zu entfernen.

Also. Wir haben den einfachsten Shader (Material) fertig und können endlich unseren Shop streichen. Öffnen Sie dazu ein Geschäft in UE4, indem Sie zweimal mit LMB darauf klicken. Und ziehen Sie das Material aus dem Projektbrowser in den Materialschlitz:

Bild

Bitte schön. Jetzt haben Sie Ihr erstes fertiges Objekt erhalten.

Sie können das Ergebnis selbst sehen, aber ich werde es nur zusammenfassen.

Insgesamt

In einer sehr einfachen Form haben wir gelernt, wie man die ersten Shader in der UE4-Engine erstellt. Sie fragen - warum heißt es Material und nicht ein Shader im Motor selbst? Es ist einfacher zu erklären, um welche Art von Texturbildungsformat es sich handelt - dies ist das Material, das dem Objekt überlagert wird, und das Objekt wird schön. Die Fähigkeiten von Shadern sind jedoch viel größer (viel, hunderte Male mehr) als nur das Anzeigen von Texturen.

Offtop. Fasenprobleme lösen

Oben habe ich das Problem mit Fasen identifiziert und wie man es löst. Es gibt jedoch einen zweiten Weg, den wir in diesem Teil nicht vollständig betrachten werden: Er erzeugt Fasen am Modell und richtet die Normalen so aus, dass die Oberfläche des Netzes die Illusion einer schönen Abschrägung erzeugt. Eine solche Fase wird durch Ausrichten der Normalen der Eckpunkte (Tangenten) erzeugt. Und diese Methode ist noch etwas wirtschaftlicher als die Methode mit normalen Karten, und ihr Schönheitsgrad ist im Vergleich zur üblichen Texturierung von Fasen extrem hoch. Hier ist ein Beispiel für eine Tür, die in einem unserer Spielprojekte steht (noch nicht angekündigt):

Bild

Bild

Ich habe Informationen zu diesem Thema nur in englischsprachigen Ressourcen gefunden. Hier .

Der Vorteil dieser Methode ist, dass wir eine schöne Facette erstellen, während die Anzahl der Scheitelpunkte nicht stark zunimmt, da harte Kanten immer 2 Scheitelpunkte an einem Punkt sind und weiche Kanten 1 Scheitelpunkt sind und die Anzahl zunimmt Dreiecke zum Zeichnen:

Bild

Es sei daran erinnert, dass wir in 99% der Fälle eine normale Karte für ein Objekt benötigen, um Fasen zu erstellen. Und normale Karten für Materialien und einige einzelne Elemente sind ein etwas anderes Thema.

Insgesamt

Ohhhhh. Nun, der große Teil war dieser. Es war jedoch notwendig, das Thema der Standardtexturierung vollständig abzudecken. Und damit können wir aufhören.

Die Wahrheit ist, dass wir von einem kaum wahrnehmbaren Pixelelement auf Ihrem Monitor zu komplexen Maskenschemata übergegangen sind, die die Sichtbarkeit nicht weniger komplexer Materialschichten bestimmen. Schließlich teilen wir das Wort Pixel in zwei - Texel und Pixel. Und wir haben gelernt, all dies in der Spiel-Engine zu backen und zu verbinden. In diesem Schritt können Sie eine lange, fette Linie ziehen und sagen, dass wir echte Texturkünstler geworden sind. Alles andere - die Schönheit des Abplatzens von Objekten, die Kinematographie einer visuellen Darstellung - ist die Anhäufung von Zeit und der ständige Wunsch, neue Techniken und Methoden zu erlernen.

Sie können mehr Lektionen sehen und Ihre Fähigkeiten verbessern. In Substance Designer gibt es beispielsweise einen riesigen Amboss von Generatoren, die Sie als Ebenengeneratoren verwenden können. Und all diese Masken, die für Schmutz gedacht waren, wurden nicht mehr manuell erstellt, sondern auf der Ebene von Funktionen implementiert, die alles wunderbar für Sie erledigen.

Sie sollten immer daran denken, dass wir den Wertebereich von 0 bis 1 berücksichtigen. Dies ist wichtig, da Standardtexturen 8 Bit pro Kanal und HDR-Texturen breitere Kanäle (ab 16 Bit oder mehr) haben, was bedeutet, dass der Zahlenbereich groß ist größer als 0 bis 255. Dies ist jedoch immer noch ein Bereich von 0 bis 1.

Und alles schien die Grenze zu sein. Wir haben ein hohes Maß an Verständnis dafür erreicht, wie Texturen erzeugt werden. Sie können einfach alles fallen lassen und als Texturkünstler für jedes Unternehmen arbeiten, das Modellierung und Texturierung teilt (wie wir es zum Beispiel tun).

Aber ist das so? Haben wir wirklich die Grenze bei der Texturierung erreicht und wird es nicht mehr scheitern?
Oder gibt es noch mehr zu wachsen?

Ja! Und wir haben noch einen Tutor übrig, der die Texturierung zu einem neuen Technologiesprung bringt und meiner bescheidenen Meinung nach die nächste Generation der Texturierung darstellt.

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


All Articles