Jump to content
Unity Insider Forum

Terrain zu Dunkel


Kojote

Recommended Posts

Grüße!

Hier mal ein Bild aus meinem aktuallen Projekt.

Ich hab ein kleines Problem mit Schattenseiten. Wie man sieht, sind die Bäume in einem Braun-Ton gehalten. Schatten liegen eigentlich ganz gut da und auch die Umgebung ist in der Helligkeit, wie ich es mir wünsche. Problem sieht man an den vom Licht abgewendeten Seiten, diese kommen zu schwarz rüber. Hab nun schon mit der Licht intensität und der Farbe gespielt, auch mit dem Indirect Multiplier. Aber irgendwie bekomme ich das nicht weg.

Intensity ist nun auf 1.5, Indirect auf 2. Gehe ich noch höher, werden wieder die jetzt schon hellen Stellen überbelichtet. Schatten-Stärke ist auf 0.86.

Was fällt mir noch ein, nun man könnte noch mit Lichtsonden arbeiten, aber diese sind ja eigentlich nur für bewegliche Objekte und nicht für Statische.

Hat einer ne Idee?

Grüße von Kojote

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Indirect Multiplier bringt nur etwas, wenn du das Licht backst. Tust du das, und sind alle Einstellungen dafür richtig? Dass die Objekte statisch sind, zum Beispiel.

Ansonsten gehen immer Ambient Light bzw. Skybox und PBS-Shading. Aber auch dafür muss man ja backen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, falsch... ich merke aber selber gerade: Wenn man da nicht so drin ist, ist's echt ein bisschen komplex. Dass du da ein Addon/Plugin benutzt macht's noch komplizierter.

Prinzipiell muss man sich mal vor Augen führen, wo das Licht herkommt, das eine Fläche bzw. ein Pixel beleuchtet. Um mal schön ein bisschen vollständig zu sein:

  • Das Pixel ist selbstleuchtend, ignoriert also (teilweise) Lichtberechnungen völlig. Wenn du im Standard-Shader Emission anmachst, zum Beispiel. Nur der Albedo-Kanal eines Pixels wird mit einem Lichtwert multipliziert.
  • Das Pixel wird von einem Licht getroffen. Ist klar.
  • Der Renderer hat eine Lightmap. Das ist dann eine vorgerenderte Textur, die auf den Albedo-Kanal draufmultipliziert wird. Sie entsteht beim Backen einer Lightmap, und nur bei statischen Lichtern (realtime ist raus) auf statischen Objekten, da eine potentielle Änderung des Verhältnisses zwischen Licht und Objekt (eines von beiden bewegt sich oder Lichtfarbe/-Stärke ändert sich) nicht von der Lightmap wiedergegeben werden kann.
  • Du hast eine Realtime Lightmap. Das ist eine spezielle Lightmap, die nicht einfach nur sagt "an dieser Stelle ist Licht dieser Farbe und Stärke", sondern "an diesem Punkt ist Lichteinfall von diesen anderen Punkten", und wenn ein Punkt mit einem Echtzeitlicht beleuchtet wird, kann sich dieses Licht ausbreiten.
  • Du hast eine Form von Ambient Lighting, welches stumpf auf den Albedokanal aller Pixel draufmultipliziert wird.

Die beiden Lightmap-Optionen benutzen Raytracing, um diese Maps für den statischen Teil deiner Szene zu erzeugen. Damit ist es möglich, das natürliche Verhalten von Licht, an Oberflächen abzuprallen, zu imitieren. Darum müssen die Renderer dafür auch statisch sein, weil sich sonst die Wege des Lichts ändern würden. Bei der normalen Lightmap muss das Licht ebenfalls statisch ("baked") sein, da nur das Endergebnis der Lichtberechnung gespeichert wird; eine Änderung des Lichts würde bedeuten, dass eine komplett neue Berechnung angestoßen werden müsste. Die Realtime Lightmap dagegen hat ja sozusagen eine Menge an Zwischenergebnissen, die es dir Erlauben, nur noch die letzten paar Schritte der Berechnung nachzuholen, wenn sich das Licht ändert. Deshalb kannst du damit zur Laufzeit dynamisches Licht haben und hast trotzdem noch abprallende Strahlen. Wenn man jetzt Realtime Raytracing hat, was ja jetzt das dicke Thema ist, dann passiert eben doch wieder die gesamte Berechnung zur Laufzeit, und alles kann dynamisch sein.

Wenn du jetzt Light hast, das offenbar nicht vom Boden abprallt, dann bist du keinen dieser Wege gegangen. Dein Licht ist ein Echtzeitlicht, also kann keine statische Lightmap gebacken werden. Eine Realtime Lightmap müsstest du in den Optionen anschalten und richtig konfigurieren. Weiß nicht, was da gerade ist... ich glaube, Unity war da beim letzten Mal, als ich geguckt habe, mal wieder im Umbruch. Lange Zeit gab's dafür ja Enlighten, das ist jetzt iirc wieder auf dem Abstellgleis.

Es gibt aber noch das Ambient Lighting. Davon gibt es, wenn man so will, zwei Varianten: Das eine ist ein Farbwert, den du im Lighting-Fenster einstellen kannst. Der wird dann einfach als Licht auf alle Pixel draufgerechnet. Du kannst aber auch eine Skybox angeben, die dann für Reflection Probe-Gedöns verwendet wird. Man sieht das hier ganz gut:

StandardShaderEnergyConservation.jpg

Auch die "nicht" reflektierende Kugel ist oben eher blau und unten eher braun, weil das Licht der Skybox so drauffällt. Wenn du eine Skybox hast und damit dein Licht backst, dann wird die Skybox so angewendet. Kannst du auch testen, mit einer weißen Kugel in einer leeren Szene und der Standard-Skybox. Einfach mal das Licht backen und dann das gebackene wieder löschen.

Jetzt weiß ich natürlich nicht, was dein Plugin so treibt, damit könnte sich das alles wieder ändern :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das untere Bild ist nicht verlinkt.^^

Oh man du hast dir da ne arbeit gemacht, dass muss ich erst ma durcharbeiten, echt komplex. Für die Lichtberechnung nutz ich jetzt Enlighten. Backe gerade seit 6 h ma sehn was raus kommt. Ist das eigentlich richtig mit "Ignore Normals" im Mesh Renderer. Hab den harken mal raus gemacht, da dauert das Backen gleich Stunden mehr.

Wo finde ich dieses "Ambient Lighting"? Ich lese immer darüber aber finde da nichts drüber. Habe nur im Lightning diese Einstellungen:

veU3PXJ6.jpg

EDIT: An den Normals hats nicht gelegen. Die schwarzen Flächen sind immer noch da. :( Das einzige was es gebracht hat, dass es genau so aussieht wie ohne Normals aktiviert und ich nun 130 DC mehr hab.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 4 Stunden schrieb Kojote:

Wo finde ich dieses "Ambient Lighting"? Ich lese immer darüber aber finde da nichts drüber.

Die ganze erste Kategorie deines Screenshots ist dafür da. Stell' mal Environment Lighting/Source auf Skybox. Danach mal "Generate Lighting" und wiederum danach kannst du mal am Intensity-Regler drehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nach fast 4 Tagen suche hab ichs gefunden. Schuld ist das Post Processing. Genauer gesagt unter "Color Grading", da steht der Mode auf "ACES". Stell ich auf "None" sind die schwarzen Flächen weg. Muss ds PPV noch mal überarbeiten - darauf hätte ich auch echt eher kommen können. -,-"

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...