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,都会发生这种情况.
如何均匀照亮整个场景?这里出了什么问题?
问题:
解决方法 Unity实现了一个通常结合了实时和预先计算的照明的照明系统.您看到的影响地面的环境光可能是预计算的.但是,地面顶部的块不包含在预先计算的照明中.因此,将这些块标记为静态会将它们添加到预先计算的照明中,但也会使它们在运行时不可编辑.请查看以下链接以获取更多信息.TL; DR:
Only static geometry is consIDered by Unity’s precomputed lighting solutions. To begin the lighting precompute process we need at least one GameObject marked as ‘static’ in our scene. This can either be done indivIDually,or by shift-selecting multiple GameObjects from the hIErarchy panel.
Quoted from the unity 5 documentation about lighting and rendering
总结以上是内存溢出为你收集整理的Unity和C#:如何改变整体世界照明而不仅仅是地面?其他未使用RenderSettings点亮的对象?全部内容,希望文章能够帮你解决Unity和C#:如何改变整体世界照明而不仅仅是地面?其他未使用RenderSettings点亮的对象?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)