性能优化(24)——远景简化

  1. 1. 远景简化
    1. 1.0.1. 做法

远景简化

  • 一般情况下,我们通过传送就能走到的远景,一般都会选用模型;而不能走到的远景,一般都是使用天空盒完成的

做法

  • 只需将场景中除远景外的对象先隐藏
  • 然后在场景中添加一个反射探针烘焙Cubemap即可
  • 注意要选择反射探针的类型为Baked,当然Custom也可以,选择后需要开启Static选项中的Reflection Probe Static选项

  • 之后取消Windows-Rendering-Lighting下面的Auto Generate的复选框
  • 这时会发现添加的反射探针Inspector面板中会出现Bake按钮
  • 接下来要根据实际远景裁剪距离设置裁剪平面
  • 同时可以提高渲染分辨率,这个大小与实际模型表现的质量最为接近
  • 如果不需要HDR的Cube Map还可以取消HDR选项,这样烘焙出的非HDR的PNG格式Cubemap会更小
  • 之后点击烘焙按钮,会烘焙出对应的Cubemap

  • 接下来,创建天空盒材质
  • 首先创建一个新材质(Material),选择它的Shader为Skybox/Cubemapm,并在贴图中指定刚刚生成的Cubemap
  • 之后我们需要替换Windows-Rendering-Lighting中的Environment标签下的天空盒材质为我们刚才创建的材质
  • 这样就将远景模型替换成天空盒的简化做好了
  • 我们可以调整天空盒材质的曝光系数开控制远景天空盒的明暗,来模拟天空的变化;也可以通过旋转系数控制远景贴图的旋转显示角度

  • 另外:Unity下生成Cubemap并不是只有反射探针这一种方式,还有两种常用方式:
    • 通过Assets-Create-Legacy-Cubemap来创建Cubemap资源。
    • 这种格式未来Unity可能不太支持了

    • 还有一种是利用Camera.RenderToCubemap接口来进行创建
    • 可通过官方文档学习
    • 官方文档给出了三种案例的代码,如果你需要通过脚本创建,或者在运行时创建,设置是创建stereo Cubemap都可以