Dynamisches Licht erzeugt hässliche Schatten auf Static Mesh

  • Hey Leute, ich habe ein kleines Problem mit ein paar Static Meshes.
    Seht einfach selbst:




    Ich habe leider keine Ahnung woher diese Schatten kommen.
    Ich habe schon mit allen Lichtquellen herumgespielt aber nichts wirkte sich wirklich darauf aus, ausser wenn ich Cast Shadow von den Meshes deaktivere.

    Ich nutze ein dynamisches (moveable) light für die Map.

    Habt ihr da Lösungsvorschläge?

  • Lösung Nr 1: Lighting Rebuilden


    Lösung Nr 2: Mit dem Licht rumspielen, evtl auch mit dem Fog

    Macht das denn Sinn, wenn ich komplett dynamisches Licht benutze?
    Da wird doch alles in Echtzeit berechnet.


    Versuch mal statische lights komplett abzuschalten. Project settings --> Rendering -> Allow static lighting haken raus.

    Ich habs ausgeschaltet und neu compilen lassen, aber leider sieht es 1:1 so aus wie auf den oberen Screenshots :/

  • Also für mich sieht das eher aus, wie ein Ambient Occlusion Fehler.


    Erstell dir spaßeshalber mal eine "Post Process Volume", setz einen Haken bei "Infinite Extent" und spiel ein bisschen mit den "Ambient Occlusion" Werten herum.


    Vielleicht stellst du auch einfach mal das "Ambient Occlusion" aus. Findest du hier: "Edit/Project Settings/Rendering/Ambient Occlusion" und nimm da mal den Haken raus. Wirst ja sehen, was passiert :)


    Ansonsten bin ich da auch überfragt.


    Das selbe Problem hatten mein Partner und ich bei unserem Cardboard Wars Projekt. Das sah dort genau so aus. Bei uns lag es am besagten Shading.

  • Ich habs versucht aber es hat sich leider gar nicht verändert.

    Aber ich habe einfach mal ein wenig im Rendering -> Lighting Tab herum gespielt und habe mal "Generate Mesh Distance Fields" ausgeschaltet.
    Dann waren die Schatten voll in Ordnung.

    Kannst du mir vielleicht sagen, was genau "Generate Mesh Distance Fields" macht?

    • Offizieller Beitrag

    Es ist immer ganz schwierig zu helfen wenn man den Fehler aus einem Screenshot deuten soll.

    Zwar ist es manchmal klar woran der Fehler liegt aber in diesem Fall nicht.


    Bitte selber überlegen welche Informationen für den Betrachter wichtig sind um den Fehlerursache bestimmen zu können.


    1.Screenshot der Light UV

    2.Screenshot der Textur UV

    3. Screenshot den Lightbuild Settings

    4.Screenshot der Light Resolution. (Wenn du ALT + 0 drückst.



    Vor ab aber ein paar Basis Informationen:


    1. Baken ist wie ein Text mit dem Tintenstahl drucker auszudrucken. Beim Drucken werden Informationen auf ein Blatt Papier geschriebenm beim Baken werden Schatten Informationen die die Light UV geschrieben.


    2. So nun rate ich einfach mal:


    Du hast ein Objekt dass in deiner Welt mehrmals vorkommen soll. Du hast eine perperfekte UV.

    Nun Kopierst du das Objekte in Blender & Co. einige male und fast alle Objekte zu einem Objekt zusammen. Combine, verschmelzen oder wie das auch immer in deinem 3D Programm hast.


    3. So was nun beim Baken passiert.

    3.1 Der Bake nimmt das erste Objekt, Checkt wohin der Schatten fällt und schreibt den Schatten wie der Drucker aufs Papier (Seite1). Auf dem Papier steht nun quasi ein Bild des Schattens.

    3.2.Nun nimmt Unreal das nächste Objekt und nimmt hierfür das selbe Blatt papier wie vorher für das Objekt. Unreal prüft den Schtten des 2. Objekts und schreibt auch hier den Schatten auf (Seite1)


    Fürs Verständnis:


    Hast du 30 Objekte zusammen gefasst die die selbe UV haben, dann ist das so als würdest du 30 Seiten Text auf ein Blatt Papier drucken und zwar immer wieder das selbe Blatt Papier.

    Das Ergebnis ist: Dass dein Blatt Papier irgend wann schwarz ist. Weil Text immer wieder woanderst hingedruckt wird und der vorhandene Text immer wieder überschreiben wird.


    So entstehen solche schwarze Artifakte.


    Lösungen:


    1.Die Light UV MUSS sich immer innerhalb des UV Spaces befinden. Alles was ausserhalb des UV- Spaces wird Automatisch wiederholt und auf die selbe Seite gedruckt.

    Das Prüfen und bewerkstelligen.

    Unreal zeigt glaube ich direkt nach dem Import an wieviel Fläche sich bei den Meshes überlappen.

    "Lightmap UV are overlapping by 40%" heißt 40% überlappung!


    2.Die Auflösung Checken wenn du mit 64 Resolution Baken tust, ist dass als willst du ein Ultra HD Bild auf einem Taschenrechner darstellen.


    Vielleicht findest du durch diese Tipps selber das Problem

  • Wenn er static lighting ausgeschaltet hat und das Problem war immer noch da kann man doch ein Problem mit der Lightmap ausschliessen da es ohne statische lights keine Lightmap gibt.


    Generate distance fields berechnet die Distanzen zwischen mehreren static meshes und baut eine volumetrische Distanzmap daraus. Das macht dynamische Schatten, AO und particle effects performanter da hier nicht benötigte Lichtmengen einfach nicht berechnet werden müssen. Normal macht das nur bei sehr großen oder extremunterschiedlichen Meshes Probleme. bei dir scheint das aber irgendwie der Fall zu sein. Vielleicht auch weil deine Meshes doch relativ low poly zu sein scheinen.

  • Danke für die super Erklärung, aber wie kyodai sagte, habe ich nur eine dynamische Sonne/Lichtquelle und den Static Light ausgeschaltet.

    So müsste doch alles dynamisch berechnet werden und kein light gebaket werden.
    Also fällt die Möglichkeit mit den UVs weg, oder nicht?

    Fällt euch sonst noch was ein? Oder kann ich irgendwelche Informationen geben, die euch helfen könnten das Problem zu analysieren?

    • Offizieller Beitrag

    So müsste doch alles dynamisch berechnet werden und kein light gebaket werden.
    Also fällt die Möglichkeit mit den UVs weg, oder nicht?

    Wenn ihr nicht auf Build geklickt habt, sollte so oder so nichts gebaked werden.


    Kann sein das Eurer Mesh sehr Ngons Lastig ist und habt ihr mal die Smoothing groups gecheckt ?


    Wenn Unreal eiin Mesh mit Ngons importiert, tut Unreal dieses Mesh Automatisch solange triangulieren bis die Ngons in Tris aufgelöst sind.

    Die Edges die Dabei hinzukommen, könnten die falschen Smootinggroups haben wodurch solche Fehler entstehen könnten.

    Mach mal in den Import Settings den Haken bei Remove Degenerates raus.


    Bitte auch sicherstellen dass:


    1. Keine Textur mehr auf dem Mesh liegt.

    2.Keine Normal mehr auf dem Mesh liegt.

    3.Überall das selbe Material drauf ist.


    Dann auch das Mesh einmal aus Unreal exportieren und im 3D Programm öffnen.


    Hier die Facenormals, Vertex Normals usw checken.

  • Danke für deine sehr ausführliche Hilfe!

    Ich habe diese Assets aus dem Store gekauft und halt direkt via Launcher in das Projekt eingefügt.
    Also kann ich beim importieren keinen Haken entfernen, da es ja direkt im Projekt ist.

    Leider habe ich noch nicht DIE Erfahrung mit 3D Programmen.