我刚刚开始使用 Unity 3d 进行照明,现在有一个功能可以逐渐加深我的场景的照明。我已经通过渲染设置完成了这项工作,并尝试了 3 种不同的照明方法,我都收到了相同的结果:
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);
我并不完全理解所有这些之间的区别,并且在照亮世界时遇到了问题 - 当颜色发生变化时,天空和地面的颜色(与位于顶部的其他游戏对象块具有相同的材料)它)根据照明变化。即我的白色地面变成橙色。
问题是我地面上的块(与标准着色器相同的材料)没有受到相同程度的影响/照明。当我的地面一直是橙色时,它们通常保持白色/不受影响。无论我是更改ambientGroundColor 还是SkyColor,都会发生这种情况。
我怎样才能均匀地照亮整个场景?这里出了什么问题?
问题: