Fehler in der gespiegelten Transparenz

  • Hallo ihr Lieben!


    Ich habe festgestellt, das Lumen ziemlich geil ist, was die Berechnung von Licht angeht, also habe ich damit mal ein bisschen herum gespielt und bin auf folgendes Problem gestoßen. Ich habe ein Spielfeld gebastelt, welches mit einer Glasabdeckung überdacht ist. Das Glas Material ist standartmäßig und hat keine besonderen Eigenschaften. Nun habe ich eine Metallische Murmel im Spielfeld platziert und ich stelle fest, dass die Transparenz auf der reflektierenden Metallmurmel nicht reflektiert wird. Das Einzige, was auf der Murmel gespiegelt wird, ist eine schwarze Fläche. Dort, wo eigentlich das Glasdach ist und man hindurch schauen müsste (Beispielbilder im Anhang - Einmal mit Glasdach und ein Mal ohne).

    Es gibt sicher eine Möglichkeit, dieses Problem zu beheben, nur weis ich leider nicht, wo bzw. was ich einstellen muss. Helft mir doch bitte auf die Sprünge, das wäre super toll!


    Ich habe mir auch vorgestellt, dass das Glasmaterial einfach nicht mit gerendert werden könnte bzw. das Modell, worauf das Glas Material eingefügt ist. Aber wo finde ich eine solch passende Option?


    Liebe Grüße,

    GameMaker

    • Offizieller Beitrag

    Schwer zu sagen woran das liegen könnte aber ein paar dinge fallen mir ein:


    1.Glas ist nicht gleich Glas. Es gibt ja beispielsweise auch Glas das kein Licht hindurchlässt. Die Transparenz einer Glasscheibe, zeigt hierbei nur die Transparenz des Materials an nicht aber wieviel Licht die Glasscheibe hindurch lassen soll.

    Das geschieht im Material mit der Translucency.

    Mit Translucency steuerst du wieviel Licht die Scheibe hindurch lassen soll.


    2.Die Berechnung die Licht in einen Raum zieht wird Lightmass Berechnung genannt. Wenn diese Einstellungen falsch sind, könnte es zu solchen problemen kommen. Du müsstest an den Lightmass Settings ein bisschen rumspielen und schauen ob sich das Ergebnis zum besseren wendet.


    3.Stichwort Lightmass Portal. Die Lightmass Portals kannst du in der Unreal setzen wie Lichter. Sie sind im grunde Multiplikatoren für die Lightmass Berechnung. (So etwas wie ein Strudel der Licht in einen Raum zieht.

    Es empfehlenswert ein Lightmass Portal an allen Fenster anzubringen.

    Lightmass Portals
    Help increase the quality of baked interior lighting.
    docs.unrealengine.com

    Ich bin mir nicht sicher, aber ich glaube die Lightmass Portals hatte auch eine RIchtung. Du kannst also Licht vom einen Raum in den anderen ziehen oder auch umgekehrt. Wenn du falsch setzt, wird Licht aus deinem Raum rausgezogen statt rein. (Diese Annahme könnte aber auch veraltet sein)

  • Sleepy
    An den Translucensy-EInstellungen ändert sich nichts.

    An den Lightmass-EInstellungen ändert sich nichts.

    An den Lightmass Portals ändert sich ebenfalls nichts.


    Ich bin auch der Meinung, dass es nichts mit Licht oder Schatten zu tun hat. Eher liegt es am Lumen-Rendering. Kann mich da natürlich auch irren. Mit Lumen hab ich noch nicht so die großer Erfahrung. Bei dem Projekt nutze ich die UE5.1er Version. Stelle ich meine PostProcessing-Einstellungen bei Global Illumination auf "Screen Space (Beta), dann wird die Transparenz mit gerendert und ich kann in der Spiegelung meiner Kugel die Transparenz des Glases sehen. Bei Lumen geht das nicht, da werden nur schwarze Flächen gerendert.


    Ich habe auch mit ein paar anderen Einstellungen in den Project Settings herum gespielt und sogar Chat GPT habe ich um Rat gefragt aber nichts von allem hilft mir bei meinem Problem.


    Tomarr

    Nein, mit Nanite arbeite ich bei diesem Projekt nicht.

  • Hat keiner ne Idee?
    Ich wollte schon von Lumen auf das normale Screen Space Reflection zurück wechseln aber leider habe ich bemerkt, dass Reflection Captures nicht in Realtime Funktionieren. Das sieht zwar bei meinem Murmel Blueprint gut aus, wenn ich ihr eine Sphere Reflection Capture zuweise aber wenn ich los Spielen möchte, wird nichts gecaptured. Builden nützt mir da leider nicht viel, da die Reflection auf der Murmel immer flexibel bleiben muss.

    • Offizieller Beitrag

    Ich hab damit leider auch kaum praktische Erfahrungen.


    Die Normalen Reflektionen in Unreal werden ja Planr Reflections genannt. Sie basieren IMMER auf vorberechneten oder statischen Reflektionskarten. Genau wie die Lightmaps auch.

    Ein weiter Nachteil ist auch, das nur eine vereinfachte Darstellung der Reflektion auf Objekten sichtbar ist. (keine Details)


    Was du willst und brauchst sind SSR Reflektionen Hier werden Reflektionen basierend auf dem Sichtbereich, dem Kamerawinkel und der Beleuchtung in Echtzeit berechnet.

    SSR ist somit deutlich besser als die Planar Reflections. Aber SSR hat auch Grenzen zb wird nicht der gesamte Bildschirmraum in die Berechnung mit einbezogen sondern nur der Nahbereich der Reflektion.

    Um dann noch mehr rauszuholen, brauchst du definitiv Raytraceing welches ja ab Unreal5 möglich mit der entsprechenden Hardware. Also einer Grafikkarte die Raytraceing unterstützt.

    Wenn deine Spiel einem Handy oder einem Tablet laufen soll, musst du auf SSR und Raytraceing verzichten. So oder so braucht dein Player eine gute Grafikkarte.

  • Tomarr Ist nicht schlimm, denn:

    Ich habe mein Problem nach guter Recherche gelöst bekommen. Das Hauptproblem war "Global Illumination oder kurz GI" Für die, die eventuell auch mal auf das Problem (Was eigentlich kein Problem war sondern nur eine simple Einstellungssache) stoßen sollten, hier der Lösungsweg:

    In meinem Fall war es so, dass ich einen Actor mit zwei Static Meshes besetzt hatte. Eins davon war das normale Objekt und das andere, was darüber lag, war ein Collision-Modell, was ich extra dafür gebaut hatte. Ich weiß, Collisions kann man auch anders Händeln (UCX_NameDesModells_001.fbx) aber in meinem Fall brauchte ich es etwas "spezieller". Jedenfalls musste ich in den Actor rein, das Collision-Modell auswählen, welches ein Masked-Material besitzt um somit das Collision-Model unsichtbar zu machen, und nach "affect distance field lighting" suchen und es deaktivieren. Somit wird Lumens Global Illumination nicht mehr für das Collision-Modell gerendert und ignoriert nun Lumens Lichteigenschaften.


    Sleepy Nicht ganz, RayTracing brauch ich dann wohl doch nicht. Ich wusste doch, dass es nur ne simple Einstellungsfrage ist. Irgendwie kommt man immer zum Ziel und ihr wisst jetzt auch mehr ^^


    Auf jeden Fall danke für eure Mühe!

  • Ich habe mein Problem nach guter Recherche gelöst bekommen. Das Hauptproblem war "Global Illumination oder kurz GI"

    Naja, gut zu wissen. Aber inzwischen bin ich ganz froh, dass ich mich bei meinem Projekt für einen Comicstil entschieden habe. Ist zwar auch etwas aufwendiger einen richtig tauglichen Shader hinzubekommen, aber solche Probleme stellen sich mir da dann doch nicht.

  • Sleepy
    Ganz genau. Ich bin von vorn herein davon ausgegangen, dass eine Mask Transparenz sowieso nicht berechnet wird aber dann war es wohl doch das Objekt als Solches :)

    Tomarr

    Na ja, ich wollte ja unbedingt ein bisschen mehr Realismus, was das Shading und das Licht angeht. Man lernt halt nie aus. Ich weiß ja immer, dass bestimmte Dinge funktionieren sollen aber ich hab leider zu selten die passenden Anhaltspunkte, dass man sein Problem wirklich auf das kleinste runter brechen muss, bis man endlich am Ziel ist :D