前言:渲染是个老大难
去掉渲染效果
-
搭建一个简单模型,其他都是默认设置如图:
-
选择Linear颜色空间
1)点击PlayerSetting
2)Other Settings里Color Space选择Linear(以前的显示屏都是CRT设备,准备的颜色需要比原来更亮,最终显示在屏幕上才是正确的颜色,所以有了Gamma颜色空间;而如今的屏幕都是LCD设备,什么颜色输出就是什么颜色,所以有了Linear颜色空间)
3)颜色空间对比:
-
去掉环境光
1)Window菜单>>Lighting>>Settings
2)Environment Lighting>>Source>>Color
3)效果:
-
去掉环境反射
1)Environment Reflections>>Source>>Custom
2)效果:
-
去掉天空盒
1)Skybox Material>>Select Material>>None
2)效果:
-
去掉摄像机上的背景色
1)选中主摄像机,Camera>>Clear Flags>>Solid Color
2)颜色选黑色
3)效果:
-
去掉太阳光的颜色
1)选中平行光,Light>>Color>>白色
2)效果:
继续分析
上面我们已经把最开始Unity给我添加的一些东西给去除了,接下来分析拆掉他们之后的场景
-
使用Frame Debugger(Frame Debugger可以帮助你更好的分析绘制的顺序,以及每一帧都绘制了哪些东西)
-
点选Enable进行分析
-
渲染的过程是先得到深度图,再得到影子,再把物体的颜色画上去
-
ShadowMap
1)选中Shadows.RenderShadowMap,可以看到Game视图是4分格的ShadowMap(分别代表4个不同距离的ShadowMap--根据物体离摄像机的远近构成的黑白不同的图)
2)Edit菜单>>Porject Settings>>Quality
3)Shadow Cascades>>Four Cascades(这里选择的是4分格所以game视图显示的ShadowMap是4分格,可以调整成其他分格)
4)摄像机能够渲染的最远影子的距离
5)根据你的分格,根据下面的距离比例进行分割成4个不同距离的ShadowMap
-
颜色绘制的过程
1)为了方便观察,我们新建两个材质球,一个蓝色给地板,一个红色给墙面
2)颜色绘制过程,清空--画出墙面颜色--画出地板颜色
我们可以设置动态批处理,Edit菜单>>Project Settings>>Player
Other Settings>>Dynamic Batching
让物体显得有层次
1)首先将物体的帧绘制选中最后一个绘制帧,可以发现中间的阴影部分没有层级感
2)增加层次感
1)Window菜单>>Lighting>>Settings
2)方法一:添加天空盒+添加来自Skybox的环境光
3)方法二:添加天空盒+添加来自Skybox的环境反射
4)方法一+方法二:添加天空盒+添加来自Skybox的环境光+添加来自Skybox的环境反射