千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:南京千锋IT培训  >  技术干货  >  Unity中正确使用LOD

Unity中正确使用LOD

来源:千锋教育
发布人:qyf
时间: 2023-01-10 16:12:16

  一、明晰概念

  LOD:多细节层次,是最常用的游戏优化技术。通过精度不同建模,在镜头离该物体近的时候使用精度高的建模展示细节,在镜头离得远的时候放上精度较低的建模来加快整体场景的渲染速度。即根据摄像机与物体距离,Unity会自动切换模型,从而达到性能优化的目的。

  优缺点: 高效率优化GPU,但是因为同一套模型需要准备多个(高中低)模型,所以内存占用会增多,相当于用内存换取减轻GPU性能负担,提高GPU效率,从而达到一个高效率的渲染效果。

  官方文档:https://docs.unity3d.com/Manual/LevelOfDetail.html

  LOD 维基:https://zh.wikipedia.org/wiki/细节层次

  二、实战应用

  1、快速学会基础配置。

  1.1 严格设定命名规则,为了统一管理资源和识别使用,模型名称高中低:_LOD0、_LOD1、_LOD2,Culled(模型在场景消失),数字序号最低,复杂程度越高。

  1.2 设置层次细节组,定义一个空对象,添加LODGroup组件。

  1.3 拖拽不同精度的模型在LODGroup组件对应级别上(高精度:LOD0(相机最近显示)、中精度:LOD1、低精度:LOD2)

图片 1

  2、Project Settings中与LOD组件相关参数。

图片 2

  LOD Bias :LOD的偏移值,预先设置的【LOD百分⽐】 / Lod Bias = 当前LOD的百分⽐,当设置⼀个最⾼效果,如果Lod Bias数值越⼤时,那么【LOD百分⽐】越⼩,此时兼容的物体越远,这时细节不变。在真实的环境中这样理解,在⾼配置机器上,设置了⾼画质,并设置对应的Lod Bias⾮常⼤,那么物体的细节就不会根据摄像机距离进⾏变化,反之设置低配置时,Lod Bias设置越⼩,那么细节变化就会⾮常明显。

  Maximum LOD Level:最大LOD级别,表示游戏中使用的最高LOD级别。在该级别以上的模型不会被使用,并且在编译时忽略。(这将节省存储空间和内存空间)。

  3、学会在Unity Shader中设置LOD。

  Shader会有一个LOD值,每个SubShader有一个LOD值,当SubShader的LOD值小于此Shader的LOD值时,SubShader才能工作。默认情况下一个Shader允许的LOD层级是无限大的,也就是只要硬件支持的Shader就可以工作。并且也可以利用Shader的细节表现提升游戏的性能。

  (1)Shader的LOD可以使用Shader.maximumLOD来控制单独的Shader,也可以使Shader.globalMaximumLOD控制全局所有的Shader。

  (2)在SubShader中可以使用LOD命令指定不同的LOD属性,所以可以通过代码动态修改某一个Shader的LOD(注意:当游戏运行修改Shader LOD,结束游戏后保存Shader在LOD中,所以我们在游戏修改就是引用实际的Shader 资源,并且当Shader代码被修改重新编译,LOD值也会被重置)

图片 3

  4、参数 Fade Mode(淡化模式)

图片 4

  三、LOD 优化策略

  我们都知道一套好的LOD系统需要美术在资源上做大量的资源分级工作,同时需要程序搭建完善的LOD框架和辅助工具,每增加一个功能模块都需要把LOD考虑进来。并且在一般情况,我们还需要根据手机机型的不同采用不同的渲染LOD。如安卓系统低端机上使用更为简单的材质,从而来降低低端设备的GPU压力。

  基础LOD使用原则:

  1、高精度复杂物体(面数高、顶点数高)需应用LOD。

  2、远景物件适用。

  3、大面积重复的物体适用。

  确定项目的LOD分档,细节模块分级:

图片 5

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

三元运算符是什么?三元运算符怎么用

2023-06-20

Java常量是什么?

2023-06-14

保证Servlet线程安全的方法有哪些?

2023-06-05

最新文章NEW

什么是javascript?

2023-06-12

javascript常用正则

2023-04-20

用c语言编写爱心的代码

2023-04-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>