特效在移动端的性能,主要由四个关键指标决定:帧率、内存、包体大小与加载速度、CPU/GPU 占用。
决定观看与录制的流畅度
* 此帧率指手机渲染能力,与动画本身 FPS 无关
特效启用后占用的新增内存
暴涨原因:高分辨率图片/序列帧、重复创建的 Texture/Material
包大小越大,加载越慢
* 黑屏、白屏代表加载失败或资源未准备好
复杂算法、粒子、大量序列帧都会压垮 GPU
优化帧率和内存后占比通常也会下降
通用素材 512px,装饰小图 200px。
美瞳/眉毛/面具图层尽量合并,减少 Draw Call。
分割 + Blingbling + 染发 = 必卡。
单组推荐 20-50 帧,建议帧率 12 FPS(无需 30 FPS)。多组叠加是 GPU 杀手。
美瞳 → 眉毛 → 面具 → 白牙 → 眼妆(从高到低)。将多层美妆图合并为一张。
背景抠图、分屏、Blingbling、染发。叠加会大幅降低性能,不建议同时使用多项。
优先使用 Unlit (无光)。PBR 材质总数 < 5。
必须居中、清理历史、冻结变换。禁止负 Scale。多模型应尽量挂载在同一人脸下,避免多张脸重复追踪。
最多 3 盏。非必要关闭所有阴影。
多个模型共用同一个材质球,避免重复实例。关闭 Alpha Test。降低法线贴图和复杂纹理的使用。
高负载视觉与增强功能(需谨慎叠加)
实时背景抠图,高耗时高计算量。
实时骨骼推理与驱动,负载极高。
大量粒子、长生命周期、复杂计算都会推高 GPU 压力。
尤其是 Android,多路解码极易崩溃。
会造成 Overdraw(过度绘制),是移动端常见瓶颈。
持续渲染整个场景的背景环境,属于高负载模块。
避免构建巨大且杂乱的图表结构。
避免在单帧执行大量循环(For Loop)。
减少使用多个 Timer 造成持续开销。
避免动态扩展大数组(会触发频繁内存分配与 GC)。避免每帧执行字符串拼接等高成本操作。
在 Effect Settings 中降低"接触速度迭代次数"和"位置迭代次数"。减少物理刚体数量。避免复杂的多点碰撞与实时链式结构。