
Unity社区大咖,带你学习多细节层次技术(Level Of Detail,以下简称LOD)。
LOD是非常常用的游戏优化技术。通过精度不同建模,在镜头离该物体近的时候使用精度高的建模展示细节,在镜头离得远的时候放上精度较低的建模来加快整体场景的渲染速度。即根据摄像机与物体距离,Unity会自动切换模型,从而达到性能优化的目的。
优缺点:高效率优化GPU,但是因为同一套模型需要准备多个(高中低)模型,所以内存占用会增多,相当于用内存换取减轻GPU性能负担,提高GPU效率,从而达到一个高效率的渲染效果。
官方文档:https://docs.unity3d.com/Manual/LevelOfDetail.html
LOD维基:https://zh.wikipedia.org/wiki/细节层次
实战应用
快速学会基础配置
严格设定命名规则,为了统一管理资源和识别使用,模型名称高中低:_LOD0、_LOD1、_LOD2,Culled(模型在场景消失),数字序号最低,复杂程度越高。
设置层次细节组,定义一个空对象,添加LODGroup组件。
拖拽不同精度的模型在LODGroup组件对应级别上(高精度:LOD0(相机最近显示)、中精度:LOD1、低精度:LOD2)
Project Settings中与LOD组件相关参数
LOD Bias:LOD的偏移值,预先设置的【LOD百分比】/Lod Bias=当前LOD的百分比,当设置?个最?效果,如果Lod Bias数值越?时,那么【LOD百分比】越小,此时兼容的物体越远,这时细节不变。
在真实的环境中这样理解,在?配置机器上,设置了高画质,并设置对应的Lod Bias非常大,那么物体的细节就不会根据摄像机距离进?变化,反之设置低配置时,Lod Bias设置越小,那么细节变化就会非常明显。
Maximum LOD Level:最大LOD级别,表示游戏中使用的最高LOD级别。在该级别以上的模型不会被使用,并且在编译时忽略。(这将节省存储空间和内存空间)。
学会在Unity Shader中设置LOD
Shader会有一个LOD值,每个SubShader有一个LOD值,当SubShader的LOD值小于此Shader的LOD值时,SubShader才能工作。默认情况下一个Shader允许的LOD层级是无限大的,也就是只要硬件支持的Shader就可以工作。并且也可以利用Shader的细节表现提升游戏的性能。
Shader的LOD可以使用Shader.maximumLOD来控制单独的Shader,也可以使用Shader.globalMaximumLOD控制全局所有的Shader。
在SubShader中可以使用LOD命令指定不同的LOD属性,所以可以通过代码动态修改某一个Shader的LOD(注意:当游戏运行修改Shader LOD,结束游戏后保存Shader在LOD中,所以我们在游戏修改就是引用实际的Shader资源,并且当Shader代码被修改重新编译,LOD值也会被重置)
ShaderLad为子着色器指定LOD值:
https://docs.unity3d.com/cn/current/Manual/SL-ShaderLOD.html
参数Fade Mode(淡化模式)
LOD优化策略
我们都知道一套好的LOD系统需要美术在资源上做大量的资源分级工作,同时需要程序搭建完善的LOD框架和辅助工具,每增加一个功能模块都需要把LOD考虑进来。并且在一般情况,我们还需要根据手机机型的不同采用不同的渲染LOD。如安卓系统低端机上使用更为简单的材质,从而来降低低端设备的GPU压力。
基础LOD使用原则:
精度复杂物体(面数高、顶点数高)需应用LOD
远景物件适用
大面积重复的物体适用
确定项目的LOD分档,细节模块分级:
三方资源优秀分享
1,按需制作LOD,自动生成LOD插件:
PolyFew、MantisLODEditor、UltimateLODSystemMT
2,自动生成LOD插件AutoLod:
https://assetstore.unity.com/packages/tools/utilities/autolod-impostors-199759
3,自动生成LOD插件(Github):
https://github.com/manaporkun/Automatic-LOD-Generator
4,自动减面工具:
https://github.com/huailiang/lod
5,草、树(地形)LOD生成:
https://github.com/Tiggilyboo/UnityQuadTreePlanet
6,地形生成:
https://github.com/barrettotte/Terrain-Generation-Study
7,在Unity中加载Max3D文件:
https://github.com/ProjSEED/Unity-3mx
随着全球疫情持续升级,日本、韩国、美国、意大利、伊朗、德国等多国均出现了口罩短缺或限制口罩供应的情况。 民众的恐慌囤货更是加重了口罩的紧缺,亚马逊医用口罩和防护口罩搜索量增长17000%,多个口罩用品销量狂涨排名激增。 据报道,目前美国仅有3000万个医用口罩…
码刀科技(www.lekshop.cn)是国内知名企业级电商平台提供商,为企业级商家提供最佳的电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售/跨境等)、平台管理系统开发及互联网采购解决方案服务, 联系客服了解更多.