Dies ist die Norm - 4: Lösen von Problemen mit normalen Karten

Bild

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

Teil 2: Wie werden normale Karten gebacken?

Teil 3: Arten normaler Karten

Dies ist der vierte Teil des Lernprogramms fĂŒr normale Karten , der jedoch vom Rest unabhĂ€ngig ist und separat gelesen werden kann.

Hier liste ich die Probleme normaler Karten auf, auf die ich im Laufe der Jahre gestoßen bin, und einige Lösungen, um sie zu lösen.

Problem: An den Kanten des Modells befinden sich "schwarze Linien" oder "EinfĂŒgungen".


Bild

Dies geschieht, wenn das Modell harte Kanten aufweist, da die Eckpunkte des Modells Normalen aufweisen, die vollstĂ€ndig senkrecht zur OberflĂ€che des Polygons stehen. Aus diesem Grund kann das Backprogramm einige Details ĂŒberspringen (wobei schwarze Linien auf dem Modell verbleiben).

Bild

Lösung: Normale Kartenbackprogramme berĂŒcksichtigen dieses Problem beim Erstellen normaler Karten und versuchen, ihren Einfluss zu verringern, indem sie etwas mehr Informationen hinter den Scheitelpunktnormalen berechnen. Um diese zu speichern, benötigen sie jedoch eine LĂŒcke zwischen den UV-Scan-Polygonen.

Hier gibt es eine detailliertere ErklĂ€rung, aber in der Praxis ist die Regel recht einfach: Wenn das Modell eine scharfe Kante hat, mĂŒssen Sie die damit verbundenen FlĂ€chen im UV-Bereich trennen.

Problem: Die normale Karte sieht völlig falsch aus, besonders in einigen Winkeln


Dieses Problem kann aus verschiedenen GrĂŒnden auftreten. Lassen Sie uns einige davon diskutieren:

  • Sie verwenden den falschen Tangentenraum: Die Normalen Ihres Lowpoly-Modells, die wir mithilfe der normalen Karte Ă€ndern möchten, können im Backprogramm anders berechnet werden als im Programm zum Rendern des Modells. Wenn diese Berechnungen unterschiedlich sind, kann die normale Karte sehr seltsam aussehen, insbesondere aus einigen Blickwinkeln.

    Bild

    , . , , .

    : Mikk. , . Mikk, handplane .
  • -: — . , . - — , . - , linear/linear color/raw sRGB Unreal.
  • : , , (bump map), (displacement map) ....
  • lowpoly- lowpoly : , / (smoothing groups)/ (hard edge), / , .

    lowpoly , /, ( obj ) .

: ?


Lösung: Sie brauchen es nicht. Es ist nicht notwendig, fĂŒr alles normale Karten zu erstellen. Ein scharfer Kegel ist ein klassisches Beispiel dafĂŒr, aber es gibt viele andere FĂ€lle, in denen normale Karten keine Lösung sind.

Bild

Wir verwenden normale Karten, um die Richtung der Normalen von Low-Poly-Modellen zu Ă€ndern. Manchmal ist die Richtung der Normalen korrekt und erfordert keine Änderungen, und manchmal werden die Normalen fĂŒr niedrige Polys extrem gedreht (wie im Fall einer scharfen Spitze) und die Details des Highpoly-Modells werden falsch auf die OberflĂ€che des Lowpoly-Modells abgebildet. In solchen FĂ€llen lösche ich einfach die Details der normalen Karte mit dieser Farbe:

Bild

Diese Farbe ist zu 50% rot, zu 50% grĂŒn und zu 100% blau und Ă€ndert nicht die Richtung der Normalen der normalen Karte des Tangentenraums. Sie können sie daher verwenden, um Details an Stellen mit nicht erfolgreicher Projektion zu entfernen.

Ein scharfer Kegel ist nur ein Beispiel fĂŒr einen der FĂ€lle, in denen normale Karten Ihre Probleme möglicherweise nicht lösen. Hierbei ist zu beachten, dass in einigen FĂ€llen die normale Karte nicht die beste Lösung ist, ihre Funktionen begrenzt sind und wir nicht erwarten können, dass sie sich in jeder Situation so verhalten, wie wir es benötigen. Manchmal verbringen wir viel Zeit damit, die normale Karte zum Laufen zu bringen, wenn wir der diffusen Textur oder der Lowpoly nur Teile hinzufĂŒgen und nicht versuchen, das Teil mit der normalen Karte zu ĂŒbertragen.

Problem: Die Details meines Modells sehen invertiert aus.


Dies ist ein sehr hÀufiges Problem und kann in vielen Videospielen sogar auf AAA-Ebene beobachtet werden.

Wie wir in diesem Tutorial [ Übersetzung auf HabrĂ©] gesehen haben, sind normale Karten Texturen, die grĂŒne, rote und blaue KanĂ€le verwenden, um die Art und Weise zu Ă€ndern, in der Licht von der OberflĂ€che des Modells reflektiert wird, wenn es von der Seite, der Oberseite und der Vorderseite des Modells fĂ€llt (denken Sie daran, dass dies vereinfacht wird ErklĂ€rung und es ist nicht 100% wahr).

Bild

Das Problem ist, dass einige Anwendungen der Ansicht sind, dass der grĂŒne Kanal das Modell als von unten beleuchtet anzeigen sollte, wĂ€hrend andere der Ansicht sind, dass das Modell von oben beleuchtet angezeigt werden sollte. Dies wird manchmal als "normale Kartenrichtigkeit" bezeichnet:

  • OpenGL-Anwendungen (rechtsseitiger, positiver grĂŒner Kanal): Blender, Maya, Modo, Toolbag, Unity.
  • DirectX-Anwendungen (linker, negativer grĂŒner Kanal): 3DStudio Max, CryEngine, Source Engine, Unreal Engine.
  • Substance Painter kann mit beiden Typen arbeiten und beide Typen normaler Karten exportieren.

Lösung: Invertieren Sie den grĂŒnen Kanal der normalen Karte. Die meisten Spiele-Engines haben die Option, die normale Karte texturiert zu invertieren, oder Sie können den grĂŒnen Texturkanal in Photoshop manuell invertieren (gehen Sie zur Registerkarte KanĂ€le, wĂ€hlen Sie den grĂŒnen Kanal aus und drĂŒcken Sie Strg + i).

Problem: Einige Teile erscheinen flach / fehlende Teile


Stellen Sie sich vor, dass das Backprogramm beim Backen normaler Karten Strahlen von der OberflÀche des Lowpoly-Modells nach den Lowpoly-Normalen aussendet, bis sich die Strahlen mit dem Highpoly-Modell schneiden und drehen. Danach nimmt das Backprogramm diese Informationen und speichert sie auf der normalen Karte.

Diese emittierten Strahlen sollten sich nicht endlos bewegen, da sie mit dem entfernten Teil des Hochpolys kollidieren und sich falsch drehen können. Daher begrenzt das Backprogramm den Emissionsbereich der Strahlen und manchmal können die Strahlen aufhören, bevor sie sich mit Hochpoly schneiden können. In diesem Fall verlieren wir Details und die normale Karte hat Bereiche mit einer flachen Farbe.

Bild

Lösung: hÀngt davon ab, wie Sie mit dem Backprogramm den Backabstand steuern können:

  • lowpoly , «» lowpoly- ( ). , lowpoly highpoly.
  • , Max, (cage) — «» lowpoly, .
  • ( Substance Painter max frontal/rear distance).

Sie können auch versuchen, Lowpoly und / oder Highpoly einander Ă€hnlicher zu machen, damit die Strahlen Details ĂŒber die gesamte OberflĂ€che des Modells erhalten. Eine andere Möglichkeit besteht darin, zwei normale Karten mit unterschiedlichen KĂ€figabstĂ€nden zu backen und sie in verschiedenen Teilen der Texturen zu mischen. Einige normale Kartenpuristen könnten Sie dafĂŒr beschwören, achten Sie also auf Ihre Ohren.

Problem: Die normale Karte enthÀlt verzerrte Details


Dies ist ein sehr hĂ€ufiges Problem. Dies geschieht, wenn die Lowpoly-Normalen den Highpoly-Teilen nicht korrekt entsprechen und daher geneigt erscheinen ( wenn Sie sie aus der Richtung der Normalen der Eckpunkte betrachten , stimmen sie perfekt ĂŒberein). Dies geschieht normalerweise, wenn einige Gesichter einen sehr scharfen Winkel bilden.

Bild

Lösung: Ich habe in einem anderen Tutorial [ Übersetzung auf HabrĂ©] ausfĂŒhrlicher ĂŒber dieses Thema geschrieben , aber im Allgemeinen lauten die Lösungen wie folgt:

  • GlĂ€tten Sie die scharfe Ecke, indem Sie eine AbschrĂ€gung hinzufĂŒgen.
  • Wandeln Sie eine Kante eines spitzen Winkels in eine scharfe Kante (harte Kante) um / teilen Sie die FlĂ€chen in verschiedene GlĂ€ttungsgruppen (GlĂ€ttungsgruppe).
  • Verwenden Sie benutzerdefinierte Normalen / gewichtete Normalen.

Problem: Die normale Karte sieht pixelig aus oder enthÀlt Streifen


Erdbeben (AKA normaler Kartengott) hat eine sehr gute ErklĂ€rung fĂŒr dieses Problem geschrieben.

Wenn LowPoly und HighPoly sehr Ă€hnlich sind, hat der grĂ¶ĂŸte Teil der normalen Karte eine Grundfarbe der normalen Karte, und die anderen Farben befinden sich an den Stellen, an denen sich LowPoly von HighPoly unterscheidet.

Wenn die Situation umgekehrt ist: Lowpoly und Highpoly sind sehr unterschiedlich, dann hat die normale Karte eine viel grĂ¶ĂŸere Vielfalt an Farben und FarbverlĂ€ufen:

Bild

Solche glatten FarbverlÀufe verursachen Probleme, da viele Farben erforderlich sind, um sie darzustellen, und die gÀngigsten Texturkomprimierungsmethoden auf der Reduzierung der Gesamtzahl der Farben basieren.

Lösungen:

  • lowpoly highpoly: , . lowpoly, highpoly.
  • 16- : 8- . , 8 (0 1). 256 .

    , .

    Bild

    16- 16 , 65536 . , . , 16- , 8- ( ). , 16- -; 24- . [. .: .]

    , , 16 .
  • : — , , — . , , . .

    Bild
  • , : , , . , : , . . , ( , , ), .

:


Die naheliegende Lösung wĂ€re, die UV- „Insel“ dieses Teils des Modells zu vergrĂ¶ĂŸern oder grĂ¶ĂŸere Texturen zu verwenden. Schauen wir uns jedoch weniger offensichtliche Lösungen an:

  • Backen Sie die normale Karte mit doppelter Auflösung und reduzieren Sie dann die BildgrĂ¶ĂŸe: Wenn Sie eine 512 x 512-Textur verwenden, backen Sie die normale Karte mit einer Auflösung von 1024 x 1024 und konvertieren Sie das Bild in 512 x 512. Aus diesem Grund erhĂ€lt jedes Pixel der endgĂŒltigen Textur Informationen von vier Pixeln, wodurch eine Art Antialiasing erzeugt und die Pixelung reduziert wird. Dies gilt auch fĂŒr andere gebackene Bilder. DarĂŒber hinaus lohnt es sich, hochauflösende Versionen von Texturen zu speichern, falls Sie spĂ€ter in einigen Bereichen die Details erhöhen möchten.

    Bild

    , , , 1024, highpoly, .
  • UV islands , . 1 UV-, .

    trim- .
  • , . - , . :

    Bild

    Bild

Problem: Mein Modell ist symmetrisch, aber die normale Karte ist auf verschiedenen Seiten unterschiedlich.

Bei Anwendung auf ein Symmetriemodell können sich die Richtungen der Normalen Àndern, da sich die Art der Verbindung der FlÀchen geÀndert hat. Manchmal bedeutet dies, dass Sie eine Naht genau in der Mitte des Modells erhalten können. Um dies zu vermeiden, stellen Sie sicher, dass die Normalen in der Mitte ausgerichtet sind, und passen Sie gegebenenfalls die GlÀttung an.

Ein weiterer möglicher Grund ist die Triangulation : Wenn Modelle in die Spiel-Engine importiert werden, werden sie immer trianguliert, und manchmal kann dieser Prozess die Lowpoly-Normalen Àndern, und Artefakte können entlang der Diagonalen der Lowpoly-FlÀchen auftreten. Um dies zu vermeiden, triangulieren Sie das Modell vor dem Backen, backen Sie die normale Karte und wenden Sie dann den Symmetriemodifikator an.

Außerdem können Sie das kleine Erdbeben- Tutorial studieren , das mir ein wenig mehr geholfen hat, Scheitelpunktnormalen und normale Karten zu verstehen.

Weitere Informationen zu normalen Karten finden Sie im Polycount-Wiki.

All Articles