参考网址:https://docs.unrealengine.com/zh-CN/Platforms/Mobile/Performance/index.html
Unreal的分级分成两种:
一种是通过CVar配合Proile进行简单的分级。
另外一种是针对Shader相关的分级。
CVar与Profile分级
Unreal最简单的分级在
针对GPU、机型、OpenGL ES版本以及其他进行匹配。以调整各种自带以及自定义参数。
大部分的机型适配都是以这样的方式进行的。
常用的参数r.MobileContentScaleFactor表示分辨率
Shader分级
Shader主要是通过Unreal提供的MaterialQuality的参数进行分级。
实际上这个参数也是跟着profile走的。
在材质球上可以直接通过相关节点来调整不同分级的参数。
而在shader中,我们则需要特定的宏来帮助我们在不同的设备上使用不同的shader。
需要主要的是,在安装包中会包含所有分级的shader。
在MobileBasePassRendering.cpp中
这个函数的作用就是在不同的分级上,对shader开启不同的宏。
在ShaderPlatformQualitySetting上定义了相关的变量,提供给引擎进行具体设置
查看相关shader的时候可以发现,具体的宏会在shader中得到体现。
基本上shader相关的分级就是这么来做的。
在项目设置中可以直接设置相关参数
在Engine下的Rendering中
扩展
实际上可以添加自己的宏来达成一定的优化目的。举个例子,在极端低端的机型中强制使用Unlit
这样在Shader中就可以直接进行使用了。
在Profile中设置低端机型,
手机上即可反映出来。