LOD全称Level of Detail,是Unity提供的一项提高渲染性能的特性。它根据摄像机和对象的距离来渲染对象不同精度的mesh,越远时所需渲染的mesh精度会越低。
Unity中GameObject通过添加LOD Group组件来使用LOD特性。参考:http://docs.unity3d.com/Manual/class-LODGroup.html
LOD Group中可以设置多个level,如LOD:0、LOD:1、LOD:2等。不同level会设置一个百分比,当对象包围盒的高度相对屏幕高度的百分比小于这个百分比时就会进入这个level。
需要注意的是当QualitySettings中LOD Bias的设置不为1时,发生两个level间的过渡,摄像机所在的位置不会是两个level间之前设置好的位置(百分比),而是会有个由LOD Bias决定的偏差。LOD Bias的设置越趋近于0,对象越趋近于Culled。
不同level还可以设置它们的renderers,renderer实际上是一个拥有相应level的mesh的GameObject,通常它就是使用LOD Group组件的对象的孩子节点。
LOD的详细介绍参考:http://docs.unity3d.com/Manual/LevelOfDetail.html
Unity编辑器环境和项目出的手机版本可能会出现LOD表现不一致的情况,通常是由于LOD Bias引起的。Unity的默认QualitySettings在编辑器下会选择Fantastic而出版本会选择Fasttest。
如图Fantastic项上有白色蒙板表示编辑器下选择的品质,而绿色的checkbox表示不同平台出版本时的品质。不同品质下的Lod Bias默认设置会不一样。
Unity各品质的Lod Bias默认值分别为:Fastest 0.3、Fast 0.4、Simple 0.7、Good 1、Beautiful 1.5、Fantastic 2。在编辑器中可以通过LOD Group组件查看当前的LOD Bias的值,如下图。
当出现不同平台LOD表现不一致时记得检查QualitySettings。参考:http://docs.unity3d.com/Manual/class-QualitySettings.html