Dies ist die Norm - 3: normale Kartentypen

Teil 1: Was sind normale Karten und wie funktionieren sie?

Teil 2: Wie werden normale Karten gebacken?

Wie viele andere Dinge in unserer Branche haben sich normale Karten im Laufe der Jahre weiterentwickelt, und heute gibt es verschiedene Typen, die unterschiedlich aussehen können. In dem Artikel werde ich diejenigen auflisten, an die ich mich erinnere, aber vielleicht gibt es noch andere.

Karte der Tangentenraumnormalen (Tangentenraumnormalkarte): der heute gebräuchlichste Typ, normale Karten; Darüber haben wir in früheren Artikeln gesprochen. Es ändert die Richtung der Normalen des Modells basierend auf der Richtung der Normalen seiner Scheitelpunkte (dh wir müssen die Normalen der Scheitelpunkte des Lowpoly-Modells steuern).

Bild

Normale Karte des Tangentenraums Mikk (Mikk-Tangentenraum-Normalkarte). Nicht alle 3D-Editoren berechnen den Durchschnitt der Scheitelpunktnormalen gleich. Dies führt dazu, dass das Erscheinungsbild normaler Karten in verschiedenen Engines unterschiedlich ist. Daher müssen wir die normale Karte mit derselben Methode backen, die das Rendering-Programm verwendet (dies wird als "Verwenden eines synchronisierten Workflows ( synchronisierter Workflow )" bezeichnet.)

Mikk schlug eine Methode zur Berechnung von Scheitelpunktnormalen vor, die universell sein sollte, damit alle Programme sie auf dieselbe Weise berechnen. Aus Sicht des Workflows bedeutet dies, dass Sie das Low-Poly-Modell mit all seinen gemittelten Normalen (mit einer Glättungsgruppe oder mit Glättung aller Flächen) verwenden, die normale Karte im Tangentenraum von Mikk backen können und sie genau aussehen wird Genau wie bei einem High-Poly-Modell, ohne dass Glättungsfehler vermieden oder harte Kanten im UV-Bereich getrennt werden müssen. In Zukunft werde ich ein Tutorial dazu schreiben.

Denken Sie daran, dass dies immer noch eine Karte der Normalen des Tangentenraums ist, die Normalen des Modells jedoch universell berechnet werden und die Modelle in verschiedenen Programmen verwendet werden können.

Bild

Zwei -Kanal Tangentenraum Normal Karte: es stellt sich heraus , dass die Informationen in zwei der drei Kanäle der normalen Karte gespeichert ist , der Computer die dritte berechnen kann, die Verringerung der Speicherbedarf auf Kosten der Anzahl der Berechnungen zu erhöhen. Da der Arbeitsspeicher normalerweise größer ist, wird diese Optimierung häufig verwendet und von einigen Engines automatisch ausgeführt (z. B. Unreal Engine, wenn wir den Parameter "Normal Map" so einstellen, dass die Textur normal komprimiert wird). Nachdem wir einen Kanal von der normalen Karte freigegeben haben, können wir die Größe der Textur reduzieren oder diesen Kanal für Metallizität / Rauheit / Opazität verwenden ...

Normalerweise wird der blaue Kanal der normalen Karte entfernt, sodass solche Texturen gelb aussehen. Da diese Optimierung manchmal von einigen Engines automatisch durchgeführt wird, können Sie solche Texturen in Ihrem Projekt feststellen.

Bild

Karte der Weltraumnormalen (Weltraumnormalkarte): Diese Karte ist normal, anstatt die Richtung der Scheitelpunktnormalen zu ändern, ignoriert sie vollständig und ändert die Art und Weise, wie das Lichtreflexions-Lowpoly-Modell im Weltraum (Weltraum) diese Scheitelpunktnormalen berücksichtigt parallel zu den Achsen der Welt).

Wir können sagen, dass die normale Karte des Tangentenraums dem Modell sagt "Sie müssen das Licht nach rechts reflektieren" und die normale Karte des Weltraums - "Sie müssen das Licht nach Osten reflektieren".

Bild

Solche normalen Karten sind bunter und weisen deutlichere Farbverläufe auf. Sie wurden verwendet, weil Sie in diesem Fall nicht über die Normalen der Lowpoly-Eckpunkte nachdenken müssen, aber sie haben einen Nachteil: Sie können das Modell nicht verschieben, da es seltsam aussieht (wir stellen das Gesicht so ein, dass es das Licht immer nach Osten reflektiert. Wenn wir es drehen, dann reflektiert die Kante weiterhin Licht nach Osten.).

Bild

Heutzutage werden Normalen des Weltraums selten in Spielen verwendet, aber sie können immer noch verwendet werden, um schöne Texturen zu erstellen. Der blaue Kanal zeigt beispielsweise, wie das Modell das auf das Modell fallende Licht reflektieren soll, damit Sie der Textur Farbbeleuchtung hinzufügen können.

Beachten Sie auch, dass die Weltkoordinaten in verschiedenen Anwendungen unterschiedlich implementiert sind: In Unreal, 3D Studio Max, Blender ist die Z-Achse nach oben gerichtet, und in Maya, Modo und Cinema4D ist die Y-Achse gerichtet. Dies bedeutet, dass beim Übertragen von Weltnormalen zwischen Anwendungen Räume können sich verschlechtern.

Objektraum Normale Karte(Normale Karte des Objektraums): Dies ist eine verbesserte Version des vorherigen Kartentyps und dieser sehr ähnlich. Die Idee ist, dass wenn Sie ein Modell in der Welt bewegen, seine normale Karte des Weltraums relativ zum Objekt neu ausgerichtet werden sollte.

Dies kann beschrieben werden als "dieses Gesicht sollte Licht rechts vom Modell reflektieren." Wenn Sie das Modell in der Welt drehen, sollte sich die normale Karte entsprechend diesen Änderungen ändern. Dies funktioniert jedoch nicht mit verformbaren Netzen, da in solchen Karten nur die Bewegung des Objekts berücksichtigt wird. Aus diesem Grund sind die normalen Karten des Tangentenraums heute am gebräuchlichsten.

Geneigte Normalkarten(Gebogene normale Karten): Im Wesentlichen kombinieren sie AO-Informationen und normale Karten und neigen die Richtungen der Normalen so, dass das Licht dazu neigt, zu den Teilen des Modells zu reflektieren, auf die das Licht trifft.

Solche Karten werden verwendet, um die Umgebungsokklusion zu verbessern und einen Effekt zu vermeiden, der als "Lichtleck" bezeichnet wird und bei dem ein Modell Licht in Teilen reflektieren kann, die es nicht erreichen kann. Persönlich habe ich sie nie benutzt, aber ich hätte ihre Fähigkeiten untersucht, wenn ich auf ein merkliches "Lichtleck" gestoßen wäre. Weitere Informationen finden Sie hier , hier und hier .

16-Bit-Normalkarten(16-Bit-Normalkarten): Manchmal, wenn die normale Karte einen sehr glatten Farbverlauf aufweist, können wir das Auftreten von Streifen feststellen. Diese Streifen sind auf fehlende Farben zurückzuführen, um einen glatten Farbverlauf darzustellen, der normalerweise durch Texturkomprimierung verursacht wird.

Bei einer großen und glatten Oberfläche können solche Probleme jedoch auch bei einer nicht komprimierten Textur auftreten. In dieser Situation können Sie normale 16-Bit-Karten verwenden, normalerweise im TGA-Dateiformat, die mehr Farben haben und größer sind als normale normale 8-Bit-Karten.

Weitere Informationen zu normalen 16-Bit-Karten finden Sie im Tutorial Gott selbst - Erdbeben .

Bild

Bild

Es sollte auch beachtet werden, dass es andere Techniken gibt, um die Folgen dieses Problems zu verringern, z. B. die vollständige Eliminierung normaler Karten (nur Geometrie wird verwendet, um diese glatte Oberfläche darzustellen), wobei Lowpoly so transformiert wird, dass es eher wie Highpoly aussieht, sodass Gradienten weniger wahrnehmbar sind. oder die Verwendung von Dithering.

Welchen Typ sollten wir also verwenden?

In 90% der Fälle sind die normalen Karten des Tangentenraums Mikk die beste Lösung. Im Gegensatz zu Optionen, die normale Karten des Weltraums oder eines Objekts verwenden, kann sich das Modell verformen und die Richtung der Normalen bleibt korrekt.

Sie sollten die normale Karte im gleichen Tangentenraum wie im Rendering-Programm backen. Der häufigste Tangentenraum ist Mikk. Verwenden Sie ihn daher, wann immer dies möglich ist.

Wenn auf Ihrer normalen Karte Pixel angezeigt werden, sollten Sie 16 normale Karten oder eine der oben genannten Lösungen verwenden.

Tatsächlich sind dies alle Arten von normalen Karten, an die ich mich erinnern kann. Wenn Sie andere Typen kennen, lassen Sie es mich wissen und ich werde sie diesem Tutorial hinzufügen!

Vielen Dank für das Lesen, ich hoffe, der Artikel war hilfreich für Sie. Vielen Dank an Shnya für Kommentare und Hilfe.

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


All Articles