粒子系统LOD与低中高配置适配
由于我们的项目是固定的上帝视角,所以不需要根据距离做LOD适配,而只需要根据高中低配做LOD即可。
通过复制源码Engine/Config中的BaseScalability.ini环境变量到自己项目config文件下,将名字改成DefaultScalability.ini即可。(*Scalability.ini, * 是你指定的名称,不一定要用Default)
打开刚才复制过来的ini文件,找到[EffectsQuality@0~Cine],在每一层级下加入r.ParticleLODBias=0~x, x取决于粒子系统的LOD层级,@Cine对应引擎中Setting/Engine Scalability Setting中Effects的Cinematic,@0对应low,以此类推。
粒子系统的LODMethod需要设置为Direct Set,这个选项意在通过代码控制LOD的变化,如果选择默认Automatic还是会跟随距离判断。
基本上cmd命令可以看到的命令都可以通过修改项目级别的环境变量(即 *.ini 配置文件)来达到永久性修改的目的,这里只适用于PC端的预览。
安卓端配置
安卓端的Scalability可以视为config下的default scalability,只不过放在Android文件下的优先级更高
参考UE4官方文档关于环境变量配置的优先级:https://docs.unrealengine.com/en-US/SharingAndReleasing/Mobile/Android/CustomizingDeviceProfiles/index.html
移动端的 *DevicesProfiles.ini 配置可见:https://docs.unrealengine.com/en-US/SharingAndReleasing/DeviceProfiles/index.html
这里我只配置了两个属性,一个是根据安卓的高中低配选择粒子的LOD,一个是高中低配时粒子的发射数量(算是官方的一种优化手段)。
由于我测试的机型是骁龙855,引擎自动识别到High Level,所以打包后我的特效显示的是粒子里第一层LOD的效果。