Jump to content
Unity Insider Forum
Sign in to follow this  
Kojote

Terrain zu Dunkel

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Licht ist gebacken, Lichtquelle ist nur eine da, Real Time. Static ist auch alles.

Hier mal ein paar Bilder von einem Stein, dessen Unterseite fast schwarz ist:

sG4A4aWO.jpg

veU3PXJ6.jpg

UhEYyK7n.jpg

 

Share this post


Link to post
Share on other sites
vor 4 Stunden schrieb Kojote:

Lichtquelle ist nur eine da, Real Time.

Merkste?

Share this post


Link to post
Share on other sites

Nein, warum? Eine Lichtquelle = Eine Sonne. Ich benutze Enviro Sky, da gibts nur ein Real Time Licht als Sonne.

Erklär mal, was ist daran falsch?

Share this post


Link to post
Share on other sites

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 :)

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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. -,-"

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...