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

2022-01-13 11:32:59 浏览数 (1)

Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:

  • Unity是 实时3D互动内容创作和运营平台 。
  • 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。
  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!

Unity 踩坑小知识点学习

Unity中的 LOD技术(多细节层次)

LOD(Level of detail) 多层次细节,是最常⽤的游戏优化技术。 它按照模型的位置和重要程度决定 物体渲染的资源分配,降低⾮重要物体的⾯数和细节度,从⽽获得⾼效率的渲染运算。

这就是说,根据摄像机与模型的距离,来决定显示哪一个模型,一般距离近的时候显示高精度多细节模型,距离远的时候显示低精度低细节模型,来加快整体场景的渲染速度。

  • 作用:优化GPU
  • 缺点:同一模型要准备多个模型,消耗内存
  • 特点:以内存做消耗来优化GPU
使用示例

在场景中对某一个游戏对象 准备三个不同精度的模型

创建一个空物体,并把3个精度的模型放下边,给空对象添加上 LOD组件

然后点击 LOD组件 的各个精度添加上不同精度的模型

然后此时移动 场景摄像机 或者 组件的摄像机 就可以看到效果了,如下所示:

它会根据游戏对象与摄像机之间的距离来切换不同精度的模型,达到一个高效率的渲染效果。

就像我们 大逃杀游戏 里面的效果一样,在飞机上的时候看地面都是光秃秃的,等到了地上之后才能看到房子和花花草草之类的图形。

LOD组件参数

LOD组件 有一个参数 Fade Mode(淡化模式)

有三种模式可以选择,NoneCross FadeSpeed Tree

None 就是一个默认模式,不作处理。

其中Cross Fade为交叉淡入淡出,在这个选下还有一个可变属性叫Fade Transition Width(淡入淡出过渡宽度)

Fade Transition Width 是一个从0~1之间的值,代表淡入淡出的过渡区域占当前LOD级别的比例。如果值较小的话,可以延迟两个LOD级别混合的开始并且过渡更快,因为Unity通常使用的是屏幕空间抖动或透明度来实现交叉渐变。

Speed Tree 只需要物体提供0~1的状态,然后两个LOD级别的混合是从0开始到1结束的,也就是开始时是与前一级别的LOD一致,转换结束时就与后一个LOD级别完全匹配了。

Speed Tree 模式仅用于在两个Mesh LOD级别之间进行混合,即当前和下一个LOD级别都具有Mesh Renderer(网格渲染器)时。当转换到Billboard LOD级别或完全淡出时,Unity会执行Cross Fade风格的混合。

Project Settings中与LOD组件相关参数

菜单栏:Edit > Project Settings > Quality,打开Quality Setting窗口

找到Other下的参数,如图所示:

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

LOD Bias:LOD偏离 ,LOD级别基于物体在屏幕上的大小。当物体大小在两个LOD级别之间,可以选择使用低细节模型或高细节模型。数值取值范围为0-1,数值越接近0,越偏向于选择低细节模型。

0 人点赞