Unity和C#:如何改变整体世界照明而不仅仅是地面?其他未使用Ren
我刚刚使用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,都会发生这种情况. 如何均匀照亮整个场景?这里出了什么问题? 问题: 解决方法
Unity实现了一个通常结合了实时和预先计算的照明的照明系统.您看到的影响地面的环境光可能是预计算的.但是,地面顶部的块不包含在预先计算的照明中.因此,将这些块标记为静态会将它们添加到预先计算的照明中,但也会使它们在运行时不可编辑.请查看以下链接以获取更多信息.
TL; DR:
Quoted from the unity 5 documentation about lighting and rendering (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails-3 – ActionModel的未定义的方法’
- SWFupload在servlet使用中的一些问题
- ios – Xcode 6 Beta – Apple Mach-O Linker错误
- VB.NET SQL Server插入 – ExecuteNonQuery:尚未
- flex bug
- flash视频舞台全屏和视频全屏分开
- reactjs – 放置firebase.auth()的位置.onAuthSt
- 【hibernate框架】关系映射之一对一单向外键关联
- ruby-on-rails – Postgres:按字符串列排序,具有
- flash – Youtube网络摄像头录制如何工作?其他摄