Unity LOD 技术
LOD(Level of detail) 多层次细节,常用的Unity 优化技术
它是根据物体在游戏画面中所占视图百分比来调用显示不同精度的模型
说白了就是
当物体距离摄像机距离较近时显示高精度模型
当物体距离摄像机距离较远时显示低精度模型
优点:优化GPU 性能
缺点:同一个模型需要多个模型,增加内存消耗
就是以内存消耗来优化GPU
使用如下
准备 3 种精度的模型,下面 立方体、球体 、胶囊体 依次代表 高、中、低 精度的模型
(1)创建 GameObject,将立方体、球体 、胶囊体 放在 GameObject 下方作为子物体(非必须)
(2)挂脚本 LODGroup
然后可以看到划分了 4 个等级
LOD0、LOD1、LOD2、Culled
(3)将立方体 添加为 LOD0 的引用
将球体 添加为 LOD1 的引用
将胶囊体 添加为 LOD2 的引用
Culled 不需要添加引用了,到达Culled 级别时将模型剔除不再显示
鼠标按下两个层次中间的位置,可以左右拖拽层级占用比例关系
预览:左右拖拽 LODGroup 组件下方显示的 摄像机图标,可以在编辑器下实时预览摄像机距离模型不同位置时显示的模型,同一时刻只会显示 立方体、球体 、胶囊体 中的某一个
运行Unity,拖拽摄像机或者 GameObject 控制 摄像机与物体的距离,查看模型的切换
LOD 设置
打开 Editor->ProjectSettings -> Quality
找到 Level of Detail
LOD Bias: LOD 偏离,LOD 级别基于物体在屏幕上的大小,当物体大小在两个LOD级别之间时,可以选择使用低细节模型或高细节模型,数值范围 [0, 1],数值越接近0,越偏向于显示低细节模型。
Maximum LOD Level:最大LOD 级别,游戏支持的最高LOD级别,在该级别以上的模型不会使用,并且在编译时忽略(节省存储空间和内存空间)
LOD 级别是什么?
上面使用看到有 4 个等级
LOD0、LOD1、LOD2、Culled
其中 0、1 、2 就是级别,0 为最高级(使用精度最高的模型),2 为最低级(使用精度最低的模型)
当 设置 Maximum LOD 为 1 时,LOD0 级别的模型将不会被使用
我设置 Maximum LOD 为 2,摄像机距离虽然已经在 LOD0 位置了,但是显示的却还是 LOD2 的模型