目录
在 Unreal Engine 中,LOD(Level of Detail,细节层次)是一种优化技术,用于在不同距离或屏幕空间尺寸下使用不同的模型或网格,以提高性能并减少资源消耗。LOD 技术的主要目标是在远距离或较小的屏幕上使用较低分辨率的模型,而在近距离或较大的屏幕上使用高分辨率的模型。在粒子系统中也具有 LOD,LOD 粒子系统通过在不同距离和视图条件下使用不同的粒子级别,降低了性能开销。
首先随便打开一个粒子效果
我们在如下输入框中输入大于0的数字发现它会自动变回0则表示当前粒子系统没有设置LOD,只有默认的一个LOD
或者通过另一种方法,我们首先点击粒子系统中的空白区域
然后在细节面板中发现“LOD设置”或“LOD距离”选项中只有一组元素则表示没有设置新的LOD,只有默认的LOD
点击如下按钮添加LOD,左边的是在当前项前添加LOD,右边的是在当前项后添加LOD
当我们添加了一个LOD后,可以在细节面板中看见“LOD设置”和“LOD距离”中此时拥有2数组元素
此时我们就可以在如下输入框中输入0或1
“LOD距离检查时间”默认为0.25,表示4s检查一次
如果我们把“LOD距离”中的第二个元素设置为300,表示当我们距离粒子超过300时就会使用LOD1
下面开始分别编辑处于LOD0中的粒子系统,以及处于LOD1中的粒子系统,通过如下控件来切换:
当切换到LOD1时可以发现我们无法编辑发射器中的模块(可以看到每个模块都糊上了斑点)
点击模块可以看到细节面板中都是灰色的
此时如果我们想在LOD1中改变某些模块,可以鼠标右键点击需要修改的模块(这里我点击的是生成模块)然后选择“从更高级复制”
点击后就可以在LOD1中编辑生成模块了
这里我将生成比率改为1(1s生成1个粒子,如果设置的是0.5的话就表示2s生成一个粒子)
此时运行游戏,可以看到当我们距离粒子很近的时候烟雾粒子数量很多,当远离一段距离后粒子就会减少:
首先我们复制一份发射器
为了区分这两个发射器产生的粒子,我将第二个发射器的初始位置做了一点修改
然后修改一下颜色,此时我们就可以知道左边的烟雾是第二个发射器产生的粒子
此时他们都处于LOD0层级
若我们希望在LOD1层级不显示第二个发射器的粒子,我们可以在LOD1点击如下按钮来隐藏粒子
由于LOD切换的距离太小,这里将LOD1触发的条件改为超过粒子1000个单位时才会从LOD0转为LOD1
效果如下,可以看到当我们远离粒子系统超过一定距离后,粒子系统的第二个发射器产生的粒子消失,第一个发射器产生的粒子数量骤减