Keine Reflexion nach dem Starten des Spiels

  • Hallo Leute,


    ich beschäftige mich seit einigen Tagen mit dem Thema Lightning. Ist aufjedenfall komplexer als ich mir jemals vorgestellt habe. Mein Problem ist allerdings etwas merkwürdig: Ich habe eine Szene erstellt, in denen man Gläser, Flaschen und einige andere Objekte sieht (siehe Bilder unten). Im Editor sieht die Szene ganz gut aus. Starte ich allerdings das Spiel mit dem Play-Button oben (und ich mache sonst nicht anderes), sind die ganzen Reflexionen plötzlich weg. Warum? Und vor allem: Wie mache ich, dass die Reflexionen bleiben?


    Damit die Reflexionen so aussehen, wie sie im Editor aussehen, habe ich ein "SphereReflectionCapture" verwendet.


    Reflexionen im Editor:



    "Reflexionen" nach dem Starten des Spiels:



    Ich brauche wohl nicht zu erwähnen, dass das Obere zwar auch nicht perfekt aussieht, aber das Untere einfach fürchterlich ist :D


    Liebe Grüße

    Hans Ulrich

  • Erstmal Danke für die super schnelle Hilfe :)

    Aber genau das klappt eben nicht :(


    Das untere Bild kommt zustande, wenn ich das Licht "gebuildet" habe. Erst wenn ich Objekte und Lichtquellen kurz bewege (und dannach z.B. mit [STRG][Z] einen Schritt zurück mache), wird das Licht plötzlich schöner. Direkt nach dem Build sieht alles einfach furchtbar hässlich aus. Alle Objekte haben bei mir den Haken unter "Details" und dann "Overridden Light Map Res" aktiviert". Der Wert beträgt dort 64.


    Was auch oft vorkommt: Wenn Ich Builde, dann deaktivieren sich Lichtquellen komplett. Auch hier wieder: Wenn ich es kurz bewege, sind sie wieder normal


    Gibt es da noch Einstellungen die ich übersehen habe?

  • Hey Zusammen


    Das Licht wird "schöner", weil dein Problem beim statischen Light Build liegt. Sobald du die Lichtquelle bewegst wird nicht mehr der statische Lightbuild verwendet, sondern das Licht wird dynamisch in echtzeit berechnet.

    Du kannst auch für dein Spiel das Licht dynamisch berechnen lassen. Es ist grundsätzlich natürlich Rechenintensiver bietet dir aber die maximale Flexibelität.

    Wenn du beim statischen Licht bleiben möchtest, musst du die Lightmap UV's anschauen, ich vermute das Problem bei denen. Setzt mal die Lightmap Res. auf einen hohen Wert, dann dürfte sich das Problem beheben. Am Besten achtest du beim Erstellen von deiner Mesh auf saubere Lightmap UVs.

    Für beste Qualität würde ich dir static Lighting empfehlen, weil es dir die beste Kontrolle gibt.

    Die Docs sind dazu hilfreich, in diesem Thread habe ich aber auch schonmal kurz was darüber geschrieben.


    Gruss

    • Offizieller Beitrag

    Gibt es da noch Einstellungen die ich übersehen habe?

    Eine Resolution von 64 ist auf jeden Fall eine sehr geringe Resolution.


    Drück mal die Taste Alt + F4 um die Resolution anzeigen zu lassen. Mit Alt + 0 kommst du aus diesem Modus wieder raus.

    Beim Baken werden Pixel Informationen in die Lightmap geschrieben das heißt umso größer die Resolution umso umso größer ist im Prinzip die Map in die der Schatten gespeichert wird. Mehr Resolution bedeutet also das statt der Schatten in einem Pixel gespeichert wird, wird der Schatten in 4 Pixel oder mehr gespeichert. und somit sieht dein Schatten besser aus.


    Nachdem du Alt+F4 gedrückt hast, siehst du das deine Szene in unterschiedlichen Farben dargestellt wird. Schaust du genau hin, siehst du das Kachelmuster umso feiner dieses Kachelmuster ist, umso feiner und hochaufgelöster ist die Resolution. Anhand der Farben siehst du welche Resolution eingestellt ist. Wenn du ein Objekt statt auf 64 auf 2048 stellst, ist deine Wand irgend wann Rot ist. Bei Großen Objekten braucht man eine Hohe Resolution wobei hierbei meist 512 reicht. Bei kleineren Objekten reicht vielleicht auch eine Resolution von 64.

    Umso höher die Resolution eingestellt ist, umso länger braucht der Bake (Das ist leider Fakt)

    Wenn die Resolution höcher eingestellt ist heißt das aber nicht unbedingt das Qualität besser wird.


    Das ist so als ob du eine Garage für dein Auto suchst und für ein Auto eine Parkhaus anmieten würdest. Das ist einfach overpowered.


    Damit sollte die Light UV Geschichte klarer sein.


    Wichtig für dein Bake Ergebnis ist auch die Qualität deiner Light UV. Wenn du die Light UV Automatisch beim Import generieren lässt, verwendet Unreal hierfür die Textur UV als Basis. Das bedeutet dann: Umso besser deine Textur UV umso besser wird deine Light UV.


    Ich hoffe damit gibts nun mehr Klarheit.


    Stell doch mal alles auf eine Resolution von 2048 und bake das neu durch, sollte das immer noch seltsam aussehen, poste mal bitte deine Import Settings und deine Light UV als Screenshot.

  • Danke wieder für eure Hilfe. Ich habe tatsächlich Fehler in meinem Objekten gehabt. Nämlich, dass UVs überlappen. Allerdings weisen einige Objekte von mir immernoch diesen Überlappungsfehler auf, obwohl ich diesen in 3Ds-Max beseitigt habe. Dort nämlich sind keine Fehler mehr vorhanden. Woher kommt das denn?


    Aber mein Altbekanntes Problem, und das von sehrwitzig besteht auch noch weiterhin: Nach dem Bulid sind die Lichtquellen deaktiviert. Erst wenn ich diese kurz bewege, strahlen diese wieder Licht. Ich habe bisher nichts gefunden um das zu unterbinden

  • Aber mein Altbekanntes Problem, und das von sehrwitzig besteht auch noch weiterhin: Nach dem Bulid sind die Lichtquellen deaktiviert. Erst wenn ich diese kurz bewege, strahlen diese wieder Licht. Ich habe bisher nichts gefunden um das zu unterbinden

    Bin mir jetzt nicht 100%ig sicher.


    Ich denke mir das die Lichtquellen deaktiviert werden weil zur Beleuchtung die Daten benutzt werden die beim Bake erzeugt werden. Die Lampen werden ja nicht mehr zur Berechnung des Lichtes benutzt.


    Wenn du die Lampe wieder bewegst stimmen Lichtquelle und Bake-Daten nicht mehr überein. Die Lampe wird aktiviert und du musst neu baken.

  • Mit so wenigen Informationen wird das echt schwierig.


    Kannst du mal Screenshots machen vor allem womit das zu tun haben könnte?

    Ich weiß nicht so recht von was ich Bilder machen soll, habe mal Vorher-Nachher-Vergleich gemacht :)


    Licht vor dem Build:



    Licht nach dem Build:



    Diese Objekte, auf das dass Licht scheint, haben keine Fehler mehr im Log. Weder beim Import noch beim Build...



    Ich denke mir das die Lichtquellen deaktiviert werden weil zur Beleuchtung die Daten benutzt werden die beim Bake erzeugt werden. Die Lampen werden ja nicht mehr zur Berechnung des Lichtes benutzt.

    Was wird denn sonst beim Baken benutzt? :O



    Wenn du die Lampe wieder bewegst stimmen Lichtquelle und Bake-Daten nicht mehr überein. Die Lampe wird aktiviert und du musst neu baken.

    Das bringt mir leider gar nichts, weil dann das Licht wieder Mist ist :/

    • Offizieller Beitrag

    Was genau stärt dich den ?


    Ich kenne deine Material Einstellungen nicht aber ich finde deine Flaschen sehen unbuild aus. (Vielleicht ist das aber auch so beabsichtigt ?)


    Eins könnte ich mir vorstellen: Es gibt 2 Möglichkeiten um Lightuvs zu erstellen:


    1.Man macht den Haken Auto Light UV Haken beim Import an, dann passiert folgendes:

    Die Light UV wird aus der Textur UV erstellt. Unreal schaut sich die Textur UV an und Skaliert, Rotiert die UV Shells. Das Problem dabei ist: Wenn keine Textur UV vorhanden ist oder die Textur UV kapput ist warum auch immer, dann kann auch die Light UV nicht ordnungs gemäß erstellt werde.


    2.Man erstellt die Light UV im 3D Programm, dann ist es wichtig das man den Haken fürs Auto Generieren der Light UV beim Import deaktivert. Den sonst nimmt unreal nicht deine im 3D Programm erstellte Light UV sondern generiert sich eine wie in Punkt 1.


    ZU beidem: Ist keine Light UV da, kann Unreal auch keinen Schatten in die Light UV baken ergo: Deine Modelle sehen unbuild aus.

    Man kann beide Steps falsch Combieren: Wenn du deine Light UV im 3D Programm erstellt hast, weil du zb wissen tust dass deine textur UV Trash ist, aber deine Light UV optimiert ist. DU aber vergisst den Haken für Auto generieren auszumachen, so wird deine Light UV aus deiner Trash textur UV erstellt.


    Vielleicht ist das das Problem ?


    Du kannst auch mal in Unreal die UV anzeigen lassen und diese hier posten.

  • OK,jetzt muß ich malne Lanze brechen für Dynamic lighting - vielleicht auch weil ich lange zu der Fraktion gehört habe die 20 Stunden am Stücklighting gebaked haben für einen Level und irgendwann angefangen habe eine Serverfarm für diesen Irrsinn aufzubauen.


    Also nur ein paar Ideen und Tips in den Raum geworfen.


    1. Finale Weisheit.Gibts bei mir nicht. Nimm es alles als lockeren Denkansatz. Nehmen oder vergessen.


    2. Dynamic vs. Static lighting. Klar spart static lighting etwas Rechenaufwand - bei manchen betagten Plattformen wie low end PCs, Nintendo Wii oder Handys macht das Welten Unterschied. Bei einem Mittelklasse PC (Sagen wir mal GTX 960) aufwärts mußt du aber schon ein Feuerwerk von hunderten Lichtern werfen um überhaupt einen Unterschied festzustellen.


    3. Das Light baking, das light baking, das light baking. Wahrscheinlich bist du noch so weit daß du dein Light in ein paar Minuten baken kannst. Warte mal bis das etliche Stunden dauert. Und dann fügst du ein besch****es Objekt ein und kannst light neu baken. Zumindest wenn du ein neues Release machen willst. Mich hat das wahnsinnig gemacht. Ich hatte bei einem großen Level eine ganze Serverfarm zum light baken und dann hat es immer noch so lange gedauert daß ich gesagt habe "OK ich bake gerade lights für die neue Version, morgen früh ist die fertig dann package ich die und lade die morgen mittag hoch".


    4. Effing UV maps. Gefühlt 90% aller 3D modelle auf der Welt haben overlapping UV maps. Das ist nicht schlimm, in 3ds max, Maya, Cinema 4D usw renderst du die und ist ja egal, die sehen immer gut aus. UE4 ist das einzige Softwareprodukt auf der Welt das keine overlapping UVs verträgt - sofern du light baking nutzt. Bei dynamic lighting kein Thema, aber bei baking hast du 0% overlapping UVs oder ein unbrauchbares model. End of story. Ja klar wenn du alles brav im UE4 marketplace kaufst oder selber in Blendermachst kommst du damit zu rande, aber sag mal bye bye zuallen models von komerziellen Anbietern die nicht "UE4marketplace" heissen. Muß man dann mit leben.


    5. Sag bye bye zum light propagation volume. LPV - ich schreibs nicht nochmal aus - das Wort ist ein Ungetüm und man kann auch ohne wenn man ohne Area lights auskommt. Sprich wenn du mal ein Beleuchtetes Werbeschild haben wills oder ne anständige Neonreklame dann kommst du irgendwann auf den Trichter wie man diese bescheuert implementierte Funktion nutzen kann (Ist laut epic seit dem 17. Jahrhundert nur beta und wird es wohl auch immer sein), aber wenn du es mal zum laufen bekommen hast willst du wahrscheinlich nicht mehr ohne leben und dann gehen leider nur noch dynamische lights.


    6. Was du oben schon mitbekommen hast - beim static lighting wird aus performance Gründen ein Licht ignoriert wenn es zu nah (??? Ja ich weiß auch nicht!!!) an einem andern ist, also de Fakto einfach abgeschaltet. Ja richtig geil, ich hatte auch schon so viele disabled lights. Klar kannst du die bewegen, aber spätestens wenn du die bakest merkt UE4 "Oh nööö die sind mir zu nah beieinander, ich werfe mal ne Münze und ignoriere eins". Ja ich hab mich auch immer richtig gefreut.




    So ich könnte noch weitermachen aber ich glaube meinen Tenor haste mitbekommen - warum nicht mal alle static lights disabeln (gibs ne checkbox in den Project settings bei rendering) und mal schauen wie sehr das die Performance beeinflusst. und vielleicht sagst du ja wie ich F**k it! und wirst nie mehr Zeit beim Baking vergeuden. Ansonsten: Viel Glück!

  • 1.Man macht den Haken Auto Light UV Haken beim Import an, dann passiert folgendes:

    Die Light UV wird aus der Textur UV erstellt. Unreal schaut sich die Textur UV an und Skaliert, Rotiert die UV Shells. Das Problem dabei ist: Wenn keine Textur UV vorhanden ist oder die Textur UV kapput ist warum auch immer, dann kann auch die Light UV nicht ordnungs gemäß erstellt werde.

    Okay ich hab das Problem dadurch tatsächlich gefunden! Das Licht war gar nicht weg. Die Engine ist nur zu blöd, dass Licht richtig darzustellen, wenn die UV´s überlappen, bzw. über den Rand von dem Schachbrettmuster (Keine Ahnung wie sich das nennt) hinausragen. In der Engine selbst muss man dann die Lightmap Resolution so einstellen, dass es bei jedem Objekt passt. Das kann man folgendermaßen kontrollieren: In der 3D-Ansicht oben auf "Lit" klicken, dann auf "Optimazion Viewmodes" und dann auf "Lightmap Densitiy". Alles Was Rot (zu fein eingestellt) bzw. Blau (zu wenig eingestellt) ist Mist. Am besten ist es, wenn es Grün ist. Profis mögen mich bitte korrigieren. Jetzt wird bei den Objekten das Licht richtig drauf gebacken.


    sehrwitzig: Wenn du Hilfe benötigst, kann ich dir gerne eine Schritt-für-Schritt Anleitung schreiben. Mit welcher Software hast du deine Models erstellt?


    OK,jetzt muß ich malne Lanze brechen für Dynamic lighting - vielleicht auch weil ich lange zu der Fraktion gehört habe die 20 Stunden am Stücklighting gebaked haben für einen Level und irgendwann angefangen habe eine Serverfarm für diesen Irrsinn aufzubauen.

    Ich muss zugeben, dass ich deinen sarkastischen Text feiere :D Ich würde es ja genauso machen, nur das Problem mit dynamischen Lichtern ist, dass man halt nicht so viele in unmittelbarer Nähe platzieren kann, da sie sich sonst deaktivieren, was man ja am roten Kreuz sieht... Wenn du dafür eine Lösung parat hast, tausche ich die Staticlights gerne gegen die Dynamsichen aus ;)


    Aber ansonsten kann ich deinen Text unterschreiben. Die Engine wirkt auf den ersten Blick bedienerfreundlich und hochentwickelt und scheitert doch an so unfassbar vielen Kinderkrankheiten.... Manchmal kommt es einem so vor, als sei die Entwicklung von einigen Sachen vor 10 Jahren stehen geblieben. Echt bes****

    • Offizieller Beitrag

    Okay ich hab das Problem dadurch tatsächlich gefunden! Das Licht war gar nicht weg. Die Engine ist nur zu blöd, dass Licht richtig darzustellen, wenn die UV´s überlappen,

    Das hat nichts mit Blöd zu tun sondern damit wie Engines funktionieren.


    Beim Baken wird der Schatten in die Light UV geschrieben. Wenn sich die UV überlappen wird das vorige Bake Ergebnis einfach überschrieben.

    Das ist das selbe als wenn du ein Blatt Papier mehrmals durch den Drucker lässt. Irgend wann ist das Blatt Komplett schwarz.

    über den Rand von dem Schachbrettmuster (Keine Ahnung wie sich das nennt)

    Die Uvs müssen innerhalb vom UV-Space liegen.

  • Das hat nichts mit Blöd zu tun sondern damit wie Engines funktionieren.


    Beim Baken wird der Schatten in die Light UV geschrieben. Wenn sich die UV überlappen wird das vorige Bake Ergebnis einfach überschrieben.

    Das ist das selbe als wenn du ein Blatt Papier mehrmals durch den Drucker lässt. Irgend wann ist das Blatt Komplett schwarz.

    Okay, dass ergibt verdammt viel Sinn :O Gut erklärt!


    Die Uvs müssen innerhalb vom UV-Space liegen.

    Danke :)