Wie die meisten Webseiten nutzen wir Cookies. Nähere Informationen dazu, wie wir mit diesen Cookies umgehen, können Sie in unseren Datenschutzbestimmungen lesen.   Einverstanden
 
 

3D Forum > Allgemeines Normal Map Problem

Allgemeines Normal Map Problem

06.04.2020 22:10
 
mc477Mo. 06 Apr. 2020, 22:10 Uhr
Hallo Leute,
nach zwei Tagen rumprobierne gebe ich mich geschlagen und ersuche euch um Hilfe

Ich habe bei meinem Modell ein Problem mit der Normal map, ich bekomme die einfach nicht komplett schön hin egal ob ich jetzt einen Cage benutze oder nicht. ich befürchte das es am High poly objekt liegt.. Ich hänge euch die Blend datei mit bilder an.

Ich hoffe ihr könnt mir hier helfen da ich sonst noch verzweifle und das Projekt verwerfe

Ich weiß irgendwo ist ein kleiner Fehler der sich versteckt aber ich finde den einfach nicht :p

Vielen dank für eure Hilfe!

 
 
TilesDi. 07 Apr. 2020, 08:40 Uhr
Hi,

Erst mal solltest du wohl das Chaos in dem File aufräumen. So kann ich dir nicht weiterhelfen, sorry. Aber die Normalmap sieht eigentlich okay aus. Was ist denn genau dein Problem?

LG Tiles
 
SleepyDi. 07 Apr. 2020, 09:54 Uhr
Ich finde es immer wichtig, das man auch die Hintergründe kennt.

Eine Normal RGB Map ohne Alpha.

Der Normal werden Richtungsdaten die sog. Normalen Gespeichert.

Aus 3D Programmen wie Blender kennt man die Richtungen Daten als XYZ

X = Links/ Recht
Y = Rauf runter

Und wichtig: Z ist die Tiefe.

Genau so ist es bei der Normalmap auch:

Alle X Richtungen sind in Rot dargestellt
Alle Y Richtungen sind in Grün dargestellt

Und alle Z Richtungen in Blau.

Das ist die klassische Normalansicht: Rot, Grün und Blau.

Da die Normal quasi eine Orthografische 2D Karte ist, ist alles was Orthografische also aus der Z Richtung ist
Also keinerlei RIchtungsangaben beinhaltet Blau (Z Richunng)

Die Normal ist also überwiegend Blau, weil sie aus überwiegend Z (Blau) Informationen besteht.
Z Informationen besteut als keine Normals (Keine Richtungsangaben) bzw Leer

So mit diesen Informationen zurück zu deinem Screenshot:
Ich hab kein Blender und kann die Datei auch nicht öffnen daher muss ich raten.



1. Du hast solche Verfärbungen von Blau nach Rot, das lässt erahnen das dein Mesh vielleicht nicht ganz gerade ist und die Vertex Positionen von zb

von X Vertecies nicht bündig sind
von Y Positionen nicht bündig sind
von Z Positionen nicht bündig sind.
Das wäre eine Erklärung für diese Gradients (Farbverläufe von Z nach X oder umgekehrt)
Du kannst dir das so vorstellen dass wenn eine Mauer krum ist, ändert sich die Richtung von Orthogonal Z Richtung in X Richtung. So kann es zu Fehlern kommen.

Lösung: Prüfe ob dein Mesh gerade ist. (Prüfe die Vertecies)


Viel wahrscheinlich ist aber

2.

Und zwar das deine UVs nicht richtig geunfoldet sind. Das findet du am einfachsten heraus in dem du deine Checker Textur auf dein Mesh drauf machst.
So müsste das aussehen:
https://www.shutterstock.com/de/video/clip-1022744143-abstract-3d-pixelated-checker-cube-texture-pattern

Sind die Kacheln an manchen Stellen verzerrt, stimmt deine UV nicht

Stell dir vor du tust ein Haus aus ein Papier malen und würdest dann das Papier in eine Richtung in die Länge ziehen. Dann hättest du auch diese Gradients.

Ich bin mir ziemlich sicher das eins dieser Probleme die Lösung für die Gradients ist.



3.Nun haben wir aber noch die Fehlen Normal Bereiche zb unten Links.

Dort interpretiere ich das so das dort die Z Position hingebaked wurde, obwohl dort eigentlich andere Normal Informationen hingehören ?!

Das passiert eigentlich durch sog. Distortions.
Das musst du dir so vorstellen:
Beim Baken werden Stahlen von deinem Highpoly in Normal Richtung auf dein Lowpoly geschossen, dort wo der Stahl auftrifft, wird geschaut wo diese Position in deiner UV ist. Nun wird dort entweder eine X,Y oder Z Informationen hingeschrieben.
(Information vom Highpoly aufs Lowpoly)

Distortions können nun passieren in dem der Flugbahn irgend was im Weg ist oder deine Cage die du erwähnt hast fehler haft. ist.

Fangen wir mal mit dem Im Weg an:

1. Das kann zb bei Steilen 45 Grad Ecken vorkommen die nah beieinander liegen. Du kannst dir das wie ein Papierblock vorstellen auf den du etwas schreibst, das du dann aber noch auf der nächsten Seite lesen kannst (Der alte Spionagetrick)

Neulich entdeckt, da wird dass auchnomal bestens erklärt:
https://www.artstation.com/typhen/blog/BDr6/this-is-normal-2-baking-normal-maps

Dieses problem zu umgehen ist es manchmal wichtig bestimmte Meshes trennt zu Baken und die UVs und Mesh danach wieder zusammen zu machen. (Es geht nur ums getrennte Baken)

2.Damit du mit Cage baken kannst, muss die UV der Cage identisch sein mit der UV des Lowpolys
Ich weiß nicht wie du die Cage erstellt hast, aber technisch gesehen müssen die Vertex Informationen in Normalrichtung nach außen verschoben werden. In Maya nutze ich hierfür ein Vertex Scale in Vertex Normal Richtung. Das sorgt dafür dass Lowpoly und Cage identisch bleibt.


Sorry mehr fällt mir aus dem Stehgreif nicht ein, ich hoffe diese Informationen bringen dir weiter. Du kannst nach den begriffen auch gerne noch googlen.








 
mc477Di. 07 Apr. 2020, 19:05 Uhr
Hi,

Erst mal solltest du wohl das Chaos in dem File aufräumen. So kann ich dir nicht weiterhelfen, sorry. Aber die Normalmap sieht eigentlich okay aus. Was ist denn genau dein Problem?

LG Tiles


Hallo Tiles,
vielen dank für deine Antwort. Ich verstehe nur nicht wo du da chaos siehst. Die objekte sind auf die Layer 1-3 verteilt (Layer 1 = highpoly, Layer 2 = lowpoly, Layer 3 = Cage) und auf Layer 11 sind die Details. Alle anderen Objekte die nicht zu meinen Problem gehören sind ausgeblendet.

Wie auf dem Foto zu sehen ist unten links und unten rechts wo der Pfeil ist wird die normal map nicht richtig kalkuliert. Bei den Pfeilen oben verstehe ich ebenfalls nicht warum es da so schwammig ist an manchen stellen bzw es sieht nicht richtig aus
 
mc477Di. 07 Apr. 2020, 19:35 Uhr
Oh mann sleepy wow das ist mal ne mega Antwort
Zur info, diese Normal map habe ich ohne Alphal, 32 Bit float mit color space= non color erstellt.
Habe noch zu testzwecken eine Normal map gemacht mit standard settings jedoch immernoch das gleiche ergebniss.

Zu Punkt 1 den du geschrieben hast:
Ich habe alle meine faces die in eine richtung schauen geflattet um eventuelle unebenheiten auszuschließen - Ohne erfolg

Zu Punkt 2:
ich habe ein uv grid raufgelegt, kann aber keine verzerrungen erkennen. Hab mal ein Bild angehängt.

Punkt 3:
An der Seite sollten doch eigentlich die Y Position gebaked werden. Der Cage den ich benutze ist eine Kopie des Lowpoly objektes aufgebläht mit einem Displacement modifier auf strength 0,050 und Midlevel 0,000.

Hmm das mit dem Link den du mir geschickt hast wegen den Rays die durcheinanderkommen könnte denke ich sogar das Problem sein.

Könnte es sein das hierbei einfach noch zu viele Faces sind? Ich habe ja vor dem Backen STRG + T gemacht um dreiecke zu kreiieren da es ein Game Objekt wird.

Ich versuche das Objekt mal von Grund auf neu zu machen inklusive Highpoly mit verbesserter Subsurf bzw gerundeten kannten.

Bild zwei das ich angehängt habe, zeigt die Rays der verts und faces, wie man sieht. Ich hab versucht das Foto in einem Winkel zu machen wo man die Rays am besten sieht.

-Wie macht ihr das eigentlich wenn ihr mit Cage objekt arbeitet?
-Was ist besser beim erstellen des Lowpoly objektes?
-Zuerst das Highpoly objekt erstellen und dann retopo machen oder
-Bevor man die modifiers auf dem Objekt anwendet ne kopie erstellen und bei dem die holding edges und modiefiers löschen. Ist so gesehn dann ja ein lowpoly objekt

Was ich noch nicht richtig verstehe ist ob das Highpoly objekt größer sein muss als das lowpoly objekt oder müssen die gleich groß sein? Wenn man nen Cage benutzt, spielt da die unterschiedliche größe der einzelnen objekte noch ne rolle?

Ich weiß ich bin recht anstrengend mit diesen normal maps problemen aber beim modellierne ist das die größte schwierigkeit der ich begegne und ich möchte endlich lernen wie eine (fast) perfekte normal map gemacht wirdsmile

VIelen dank für eure hilfesmile


 
 
SleepyMi. 08 Apr. 2020, 08:07 Uhr
An der Seite sollten doch eigentlich die Y Position gebaked werden. Der Cage den ich benutze ist eine Kopie des Lowpoly objektes aufgebläht mit einem Displacement modifier auf strength 0,050 und Midlevel 0,000.

Bin mir nicht sicher ob das richtig ist. Du musst alle Vertecies in Vertex Normal Richtung verschieben.
Nach meiner Vermutung wird aber durch Displacement die Vertex Positionen einfach nach oben bewegt nicht aber in Normal richtung.

Ich mach das so:
1.So wie du eine Kopie vom Lowpoly diese Kopie nenne ich Cage
2.Ich vergebe der Cage ein rotes Material mit einem hohen Transparenz Anteil. Dadurch sieht du das Highpoly darunter besser.
3.Nun wähle ich alle Vertecies aus, wähle in Maya beim Verschiebe Modus Normal aus. (Bedeutet ich verschiebe die Vertecies in Ihrer Normal Richtung. (Jedes Vertex in seine eigene Richtung sonst würdest du auch die Smootinggroups schrotten)
Das heißt im Fachjargon "Envelop" vielleicht gibts in Blender sowas wie ein Envelop Modifier der besser geeignet ist.

Könnte es sein das hierbei einfach noch zu viele Faces sind? Ich habe ja vor dem Backen STRG + T gemacht um dreiecke zu kreiieren da es ein Game Objekt wird.

Ein Häufiger Fehler. Hab dass nun schon oft gesehen, 3D Modell und es wird einfach ein Subdivide draufgehaben.
Ein Subdivide ist aber keine "Make it Cool" Button.

Smoothinggroups sind ja nichts anderes als Interpolation zwischen mindestens zwei Vertecies. Haust du ein Subdivide drauf, werden dadurch auch die Normals anderst geschmissen.

1.Normalerweise geht alles gut.
2.Wenns aber zb Ngons, kann der Algorithmus nicht sauber arbeiten und das Mesh kann sich komisch verformen wodurch es zu fehlerhaften Normals kommen kann.
Wenn ich aber nach dem Bild beurteile sieht alles sehr ordentlich aus.

Was ich noch nicht richtig verstehe ist ob das Highpoly objekt größer sein muss als das lowpoly objekt oder müssen die gleich groß sein? Wenn man nen Cage benutzt, spielt da die unterschiedliche größe der einzelnen objekte noch ne rolle?

Ich weiß ich bin recht anstrengend mit diesen normal maps problemen aber beim modellierne ist das die größte schwierigkeit der ich begegne und ich möchte endlich lernen wie eine (fast) perfekte normal map gemacht wirdsmile

VIelen dank für eure hilfesmile


Das Highpoly muss nicht größer sein, aber die Cage.

Was heißt den ohne Cage baken ?
Ohne Cage baken heißt mit einer Distanz zu baken also bestimmt die Entfernung händisch.

Ich persönlich finde mit Cage hast du mehr Kontrolle ich bake immer nur mit Cage.
Ich mag dinge nicht, die ich nicht kontrollieren bau so gut es geht alles von Hand.

Was immer ganz wichtig ist, egal ob mit oder ohne Cage.

1.Deine Lowpoly und Highpoly müssen innerhalb der Cage liegen
2.Die UV der Cage muss Identisch sein mit der UV des Lowpolys.
3.Erst die UV des Lowpolys machen dann das Lowpoly Kopieren und daraus die Cage machen.
Sonst sind die UVs ja nicht identisch.

Wenn man nen Cage benutzt, spielt da die unterschiedliche größe der einzelnen objekte noch ne rolle


3.Du solltest das Visuell überprüfen. die Cage oder Cages vor allem bei unterschiedlichen Objekten darf sich nicht überschneiden.

Stell dir das Lowpoly wie ein Planet )zb die Erde) vor. Das Orbit das die Erde umgibt, ist die Cage. Vom Orbit werden nun Stahlen zu Erde geschossen. Alles was zwischen Erde und Orbit ist, wird auf die Erde projeziert.
Das der Stahl ohne Hindernissen fliegen kann, darf ihm nichts im Wegstehen.




Ich könnte mir vorstellen, bei deinem Modell: Wenn die du Cage zu groß machst, die Cage sich in diesen Schachtritzen überschneiden und dann kommt es zu Fehlern.
Vielleicht auch mal ein Bevel statt STRG + T verwenden ?

Du bist nicht anstrengend, du stellst die richtigen Fragen.
Auch für mich ist das super den ich hab das alles mal gelernt und wenn ich anderen helfen kann hole ich die Informationen zurück ins Gedächtnis.
Dadurch das ich mich durch deine Fragen mit dem Thema beschäftige, lerne ich auch wieder etwas.
 
mc477Fr. 10 Apr. 2020, 13:41 Uhr
Hallo Sleepy,
danke noch mal für deine super beschreibung.
Nach mitlerweile verusch 4 mit verbesserter geometrie und anwendung verschiedenster techniken die ich in anderen videos gelernt habe, denke ich das ich so ziemlich eine perfekte normal map erstellt habe.

Nun da mein Auge diesbezüglich natürlich noch nicht gut genug ist um daraus Fehler zu sehen, was haltet ihr von dieser Map?
Seht ihr noch Fehler die ich beseitigen könnte?

Ignoriert den Text in der Normal map, den habe ich separat erstellt mit einer Displace methode.
 
 
SleepyFr. 10 Apr. 2020, 14:14 Uhr
Sieht sehr gut aus kleinere Fehler kann man auch mal eben mit Photoshop wegmachen aber aus Lernzwecken kannst du natürlich auch weiter experimentieren.

Was mir auffällt sind die kleinen Striche in den rechtecken rechts oben neben den Kreisen leicht unterhalb.
Auch der Text, der auf dem Kopf steht ist nach außen gerichtet und der Text wo richtig rum steht nach innen gerichtet.
(Invertiert)

Das kommt sicherlich durch Spiegelung dadurch sind sicherlich auch die Normals invertiert.

Ansonsten TOP
 
mc477Sa. 11 Apr. 2020, 15:54 Uhr
okay ja das mit der schrift das die inverted ist, ist mir eben auch aufgefallen nach längeren hinschauen obwohl ich jetzt nicht denke das es ein fehler ist sondern nur eine optische täuschung da ich die schrift im gimp reinkopfiert habe und dann einfach nur um 180 gedreht damit diese auf dem kopf steht
 
SleepySo. 12 Apr. 2020, 17:09 Uhr
denke das es ein fehler ist sondern nur eine optische täuschung


Nein keine Optische Täuschung sondern ein Fehler und zwar weil:

da ich die schrift im gimp reinkopfiert habe und dann einfach nur um 180 gedreht damit diese auf dem kopf steht


Du erinnerst dich an meinen ersten Post ?
X ist Rot , Y ist Grün und Blau ist Z.

Schaust du dir deine Normal einmal an, stellst du fest das Grün (also Y) meist oben ist und Rot meist unten ist.
Wenn du dein Bild kopierst und um 180 Grad drehst und auf den Kopf stellst, dann vertauscht du im Prinzip Rot und Grün und deswegen siehst es falsch aus. Im Prinzip hast du die Normal dadurch gedreht.

Wenn du das machst, dann darfst du es nicht einfach nur um 180 grad drehen, sondern musst die Grafik die du gedreht hast auch Vertikal Spiegeln dann stimmts wieder.

Am besten gar nicht drehen sondern einfach nur Spiegeln. Das dürfte wohl die einfachste Lösung sein.

Oder den Rot und Grün Channel vertauschen.

 
 

 


 
 
© 3D-Ring - deutsche 3D Software Community, Archiv 2001 - 2006