Unity学习(十二)场景优化LOD

标签:
unity&lod |
分类: Unity |
最近项目真机测试,在场景没跑多久就有比较明显的发热情况,分析后发现渲染的消耗比较大,还好unity提供比较方便的渲染优化工具LOD。
LOD技术即Levels of
Detail的简称,意为多细节层次。LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
一.场景LOD
1.QualitySettings中的两个参数Lod Bias和Maximun LOD Level
Lod
Bias:LOD的偏移值,预先设置的【LOD百分比】 / Lod Bias = 当前LOD的百分比
当设置一个最高效果,如果Lod Bias数值越大时,那么【LOD百分比】越小,此时兼容的物体越远,这时细节不变。在真实的环境中这样理解,在高配置机器上,设置了高画质,并设置对应的Lod
Bias非常大,那么物体的细节就不会根据摄像机距离进行变化,反之设置低配置时,Lod
Bias设置越小,那么细节变化就会非常明显。
Maximun LOD
Level:游戏中使用的最高LOD级别。在该级别以上的模型不会被使用,并且在编译时忽略。(这将节省存储空间和内存空间)。
2.LOD Group组件(为了设置LOD百分比更加准确,将Lod Bias设置为1)
1.创建空对象,增加LodGroup组件。
2.将要区分细节等级的模型分别加上_lod0,_lod1,_lod2,然后分别拖到对应的百分比上。
3.观察scene试图,设置对应的百分比即可。
二.Shader LOD
在弄shader的时候,经常会看到LOD这个关键词,或许我们只知道有这个功能,并没有真正去使用过。其实可以想象一下,一个优化的非常好的游戏,绝不放过任何可以优化的方案,只是要付出更多的时间和精力。
在弄shader的时候,经常会看到LOD这个关键词,或许我们只知道有这个功能,并没有真正去使用过。其实可以想象一下,一个优化的非常好的游戏,绝不放过任何可以优化的方案,只是要付出更多的时间和精力。
方法比较简单,在同一shader不同的subshader中设置了LOD的参数之后,然后在代码中通过设置Shader.globalMaximumLOD的值来控制选用哪个级别的shader。