Unity 模型的动态LOD优化

Posted 吾无法无天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 模型的动态LOD优化相关的知识,希望对你有一定的参考价值。

文章目录


前言

  上一节主要讲述了动态生成球体模型的思路及正二十面体的生成,这一节我们来讲讲如何实现实现。因为将来要是生成的是一个6371km并具有一定分辨率的球体,若将每个顶点都细分计算出来,这样的顶点数无疑会是个天文数字,如此巨大的开销在目前的主流PC设备上,想要流畅运行几乎是不可能的。并且unity中单个模型的顶点数也不能超过65535,所以必须用多个模型来组成一个球体,这些模型的管理也是一个比较大的性能开销。所以这里使用LOD技术,在不影响整体效果的情况下,对距离玩家近的部分,细节程度越高,顶点越密集;反之细节程度越低,顶点越稀疏。


关于LOD技术

  LOD技术(Level Of Detail)指用若干不同复杂度的模型来表示同一对象的技术。此技术主要根据视点距离对象位置的变化调用不同复杂度的模型,即在较远时调用低复杂度模型,在较近时调用高复杂度模型。采用该技术虽然会损失一定的逼真程度,但可以减少场景绘制的多边形的数量,节约了系统资源,与它提高的性能来说ÿ

Unity学习-优化_LOD技术

 

最近项目的需求被策划那边卡流程了,在大改,没什么事情做

于是开始自己找点不会的东西来学一下了

这里会记录我得学习经历,采用费曼学习法来提示自己

 

LOD

Unity会根据摄像机的远近距离调整模型的显示效果

其中效果是需要我们去提供的

技术图片

 

在给物体添加LOD Group组件之后  会出现有4块颜色不同的区域,这里就是告诉我们的层级权重关系

在scene视图下我们可以拖动上面的摄像机小图标可以预览实际效果

其中分为4个层级

1:LOD0 100% 权重显示

2:LOD1 60% 权重显示

3:LOD2 30%权重显示

4:这是看不到的位置,做剔除处理

这上面的30% 60% 100%不是一个具体参数,只是在告诉我们这个物体的距离和显示关系。越小越看不到

点击其中一个LOD

技术图片

可以增加renderers,这里的检索范围是Hierachy里面的物体,也就是被创建出来的物体,而且只会检索带MeshRender组件的物体

我们在每一个阶段放一个CUBE,位置相同,颜色不同以作区分,因为在实际的用处中,这里会替换成实际的模型 ,3个显示等级

对应【1种物体的3种规格模型】,没一种规格的模型顶点,贴图都会做不同的精度设置 达到我们优化的目的

这里我们用3种颜色代替3种精度达到我们想要的效果

技术图片

拖动摄像机,即可预览实际效果

 首先设置3种显示效果

1.创建3个CUBE

2.新建3个材质球,达到我们自定义CUBE颜色的目的

3.将材质球赋给各个CUBE

如图

cube1:

技术图片

cube2:

技术图片

 

cube3:

技术图片

 

 

技术图片

 

 

 

 当实际的摄像机和物体的距离在LOD1的阶段时显示为红色

 技术图片

在距离达到LOD1位置的生活,显示为黑色

技术图片

LOD2的生活 显示为绿色

 

到这里,我们就可以从逻辑上面达到可以根据摄像机的距离,来控制物体的显示效果了

接下来就可以和美术沟通,如果对应实际需求了。

这样做有一个弊端,每个游戏物体都需要对应3套精度的模型,在效率上会增加,但是优化的效果不错。

而且在场景比较简单的情况下,实用LOD本身会占用一部分的开销,如果一个简单的场景,本身的开销并不大

实用LOD的开销甚至比优化掉的开销还打,就会得不偿失了。

至于具体决定使不使用就看小伙伴们的项目组啦~

 

以上是关于Unity 模型的动态LOD优化的主要内容,如果未能解决你的问题,请参考以下文章

Unity优化篇| Unity3D场景 常用优化策略,遮挡剔除层消隐距离技术 和 LOD多层次细节

Unity学习-优化_LOD技术

Unity3D 官方移动游戏优化指南4.自适应性能

Unity3D 官方移动游戏优化指南4.自适应性能

Unity优化篇| Unity3D场景 常用优化策略,遮挡剔除层消隐距离技术 和 LOD多层次细节

100个 Unity踩坑小知识点| Unity 的 LOD技术(多细节层次)