mobile-optimize
最后更新于
最后更新于
手机性能优化
Static Batching 生成一次 VertexBuffer Dynamic Batching 要每帧动态改变 VertexBuffer
GPU Instancing
Unity 5.5+
OpenGL ES 3.0+ , 国内设备要 3.1
减少纹理绑定次数
总填充数
平均填充倍数 : 总填充数/ 分辨率 需要 <= 3
单像素最大填充数
Mask 组件替换为 Rect Mask, 遮罩替换为裁剪
Unity 自带的 Overdraw 是 shader Replacement, 不透明部分也会叠加
网格资源渲染密度分析
网格模型在每单位像素中, 网格网格顶点的渲染数量
网格资源屏占比分析
平均每帧的渲染像素值
显存和 GPU 的数据传输
Texture
Mipmap
减少数据传输量
减少 Cache Miss 概率
纹理压缩
减少数据量
合理的纹理格式
Dither 算法
减少 Mesh 数据传输
Fast Shadow Receiver 贴花
Dynamic Batching
Skinned Mesh
Particle System
Vertex 10~20w
Fragment Shader 200w 像素
Shader 计算 (ALU)
Standard (Simple)
Vertex : 39(ins), 21.6 (cyc)
Fragment : 37(ins), 13.3(cyc) 建议小于 10
Standard 全屏, 会造成 50ms 的 gpu 压力
避免过多的 Instance Material 生成
蓝色 : Mesh 绿色 : FrameBuffer 红色 : 纹理
精准的分辨率
Standard (Complex)