Ich komme gerade in Beleuchtung mit Unity 3d und habe gerade eine Funktion, die hier die Beleuchtung meiner Szene progressiv vertieft. Ich habe dies über Render getan Einstellungen und haben 3 verschiedene Ansätze mit Beleuchtung versucht, habe ich das gleiche Ergebnis mit allen von ihnen erhalten:Einheit und C#: Wie verändert man die globale Weltbeleuchtung nicht nur am Boden? Andere Objekte, die nicht mit RenderSettings beleuchtet sind?
RenderSettings.ambientLight = Color.Lerp (RenderSettings.ambientLight, colors2 [currentColor], changeTime * Time.deltaTime);
RenderSettings.ambientSkyColor = Color.Lerp (RenderSettings.ambientSkyColor, colors [currentColor], changeTime * Time.deltaTime);
RenderSettings.ambientGroundColor = Color.Lerp (RenderSettings.ambientGroundColor, colors2[currentColor], changeTime*Time.deltaTime);
Ich bin nicht ganz den Unterschied zwischen all diesen zu verstehen und habe ein Problem die Welt beleuchten - wenn sich die Farbe ändert, ändert sich die Farbe des Himmels UND der Boden (der das gleiche Material wie andere Spielobjektblöcke hat, die auf ihm sitzen) ändert sich entsprechend der Beleuchtung. Mein weißer Boden wird orange.
Das Problem ist, dass die Blöcke auf meinem Boden (das gleiche Material mit Standard-Shader) nicht in gleichem Maße betroffen/beleuchtet sind. Sie bleiben im Allgemeinen weiß/unberührt, während mein Boden ganz orange ist. Egal, ob ich ambientGroundColor oder SkyColor ändere, das passiert.
Wie kann ich die ganze Szene gleichmäßig beleuchten? Was läuft hier falsch?
Problem:
Ich warte eine Antwort für diese auch zu sehen. Die Beleuchtung in Unity war bei weitem meine größte Hürde. Vieles davon scheint nicht in irgendeiner Logik verwurzelt zu sein, in die ich mein Gehirn einwickeln kann. –