前言

1、什么是LOD技术

LOD(Level of Detail,细节层次)是一种优化技术,它根据物体与摄像机的距离来动态调整模型的细节程度。基本原理是:

  • 当物体距离摄像机较远时,使用低多边形数量的简化模型

  • 当物体距离摄像机较近时,使用高细节的精模

  • 在这之间可以有多个中间过渡层级

这种技术可以显著减少渲染负担,提高游戏运行效率,特别是在开放世界或场景中有大量复杂模型的游戏中。

官方文档:https://docs.unity.cn/cn/2023.2/Manual/class-LODGroup.html

2、Lod技术的意义

如果模型一直使用同样的精细模型,会造成性能的浪费。比如下面三个模型
在这里插入图片描述
显示网格,查看模型精细程度
在这里插入图片描述
如果距离相机比较远的话,看起来其实是一样的,但是精细的模型肯定会更加消耗性能
在这里插入图片描述
Lod技术就是实现模型离得远自动使用最粗糙的模型,离得近使用精细的模型。

一、实战

1、添加LOD Group组件

新建一个空物体,添加LOD Group组件。
在这里插入图片描述

LOD Group默认包含4个层级:

  • LOD0(最高细节,最近距离)
  • LOD1
  • LOD2
  • Culled(剔除层,完全剔除,不会渲染任何模型,最远距离)

如果我们需要添加第五个层次,可以通过选中一个层次右键/Insert Before插入到前面,再插入一个层次
在这里插入图片描述

2、拖入模型

拖入模型,或者点击ADD来添加不同层次要渲染的Mesh网格,在LOD0层放置最精细的模型,LOD2放置最粗糙的模型 。

这里我分别添加不同形状的mesh模型做演示
在这里插入图片描述

3、效果

随着相机的远近unity会自动切换不同精度的模型
在这里插入图片描述
我们也可以拖动模型距离的占比,拉动相机查看演示效果
在这里插入图片描述

二、补充知识

1、CrossFade淡出淡入效果

LODGroup有这样一个参数:Fade Mode淡化模式。它可以设置层级间过渡方式。
在这里插入图片描述

  • None:直接切换
  • Cross Fade:淡入淡出过渡
  • Speed Tree:专为SpeedTree资源设计

当我们勾选了Cross Fade发现效果不明显
在这里插入图片描述
我们可以修改每层的Fade Transition Width参数,越小越慢渐变,越大越快开始渐变。

比如这里我修改的LOD0、LOD1、LOD2的值分别是0.05、0.1、0.3
在这里插入图片描述
效果
在这里插入图片描述

2、使用LOD的弊端:

弊端也是显而易见的。

  • 增加了建模同事的工作量,要准备不同细节程度的模型,当然有很多自动减面的插件,例如资源商店中的Mesh Simplify插件,但是程序减面多多少少会破坏模型的原有外观,最理想的情况还是建模人员手动减面。

在这里插入图片描述

  • 大量的模型文件不但会增加包体的大小,而且在运行时会大量增加内存消耗,因此使用LOD就是内存换性能。

不过最近出的unity6.2版本新增了一个Mesh LOD功能,很好的解决了这些问题,后面我会出文章单独介绍它,敬请期待。

3、LOD烘焙光照贴图的问题

只有最高层次细节的模型才会参与静态光照的烘焙,如图所示,当集装箱物体上的LOD0过渡到LOD1时会变黑,因为LOD1没有参与静态光照烘焙。
在这里插入图片描述

如果我们希望细节程度较低的模型看起来也正常,需要在周围放置Light Probe Group光照探针,以获取烘焙过程中的间接光照。

具体可以参考官方文档:https://docs.unity.cn/2017.2/Documentation/Manual/LODForBakedGI.html

光照探针知识我后面也会单独写文章介绍,可以参考:待补充

参考

https://docs.unity.cn/cn/2023.2/Manual/class-LODGroup.html
https://cloud.tencent.com/developer/article/2086345
https://chat.deepseek.com/a/chat/s/02ed6f3a-7e3f-480a-93ce-e6b2b1026f1e


专栏推荐

地址
【unity游戏开发入门到精通——C#篇】
【unity游戏开发入门到精通——unity通用篇】
【unity游戏开发入门到精通——unity3D篇】
【unity游戏开发入门到精通——unity2D篇】
【unity实战】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】
【unity游戏开发——模型篇】
【unity游戏开发——InputSystem】
【unity游戏开发——Animator动画】
【unity游戏开发——UGUI】
【unity游戏开发——联网篇】
【unity游戏开发——优化篇】
【unity游戏开发——shader篇】
【unity游戏开发——编辑器扩展】
【unity游戏开发——热更新】
【unity游戏开发——网络】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
在这里插入图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐