https://www.unrealengine.com/zh-CN/blog/chn-pubg-mobile-ue4-development-experience
https://docs.unrealengine.com/en-us/Engine/Performance/Guidelines
不透明性能>cut out > 半透明(overdraw)
uv接缝\软边少用(会增大顶点数)
减少对象的元素数
组合模型使单个模型面数可观(300+)
复杂的顶点处理用在skinmesh上更费
shader指令少,贴图采样少性能更好(材质编辑器stats和shader complex查看)
不同lod不要用不同的、简化的材质球(切换shader开销)
远处的shader设置为极简模式,降低GPU开销。
Dynamic Instancing, 用于大型世界中减少Draw Call。根据当前View动态合并同VertexType的资源,同时可以支持不同的材质实例在单个DC中完成,把材质的uniform拼合到了instance的vertex stream中。
渲染的次序调整,大型物件(如天空、地表)渲染放到最后,提高GPU效率。
添加了移动平台的LLM进行更准确的资源分类的内存统计。
细分增大开销,最好模型本身已经细分过。
大物体减小,更好地遮挡剔除
贴图格式
更小分辨率的贴图更快
不要关掉mipmap,如果贴图会以更小的状态显示,避免贴图cache丢失导致的变慢
一些材质表达式更耗(sin, pow, cos, divide, noise)
unlit光照模型最快,lit用的最多,其他模型更耗费
限制动态、静态光数量
面光更费,尽量别用
调整小物体的渲染距离,更好的剔除
贴花消耗大,他们覆盖的像素都要再渲染一遍
用ProfileGPU(Ctrl + Shift + ,)
关掉投射阴影(物体或光源)
避免Light Propagation volumes.
ctrl+shift+, 能查看gpu
stat Game cpu profiling
stat startfile和stat stopfile能保存profile文件,再从session fronted中打开,可以查看gpu和cpu的数据
stat uint看时间,一些stat命令
lod优化策略:参考这篇https://www.cnblogs.com/TravelingLight/p/9003502.html
https://zhuanlan.zhihu.com/p/56943311
https://zhuanlan.zhihu.com/p/80292708