apex-legends-mobile
性能优化挑战
还原度
场景复杂
Gameplay 复杂
高帧率
基础开销
功耗控制
适配性
伸缩性
基础消耗
场景渲染优化
间接光

阴影

物件和关卡

植被

MipBias : Mipmap 生成纹理时, 纹理减小比例的增大系数 MipBias 知乎
静态合批
Hism 层级实例化静态合批
Hierarchical stattic instance batching
Drawcall and GPU
Scalability
LOD distance scale
为了防止 Batch 被不可见物体打断, 再加一个动态合批

动态合批

UE 的 GpuScene 需要依赖 Compute Shader, 顶点着色器采样 TextureBuffer
不使用 GpuScene, 更改使用 Uniform buffer 来存储 Primitive
Uniform 超过 2K 有兼容性的问题.
剔除

遮挡剔除
软光栅剔除
视锥剔除
基于格子的预缓存, 和分区
基于三角形簇的剔除管线

基于空间划分三角形簇
剔除三角形簇并减少三角形提交次数

场景渲染优化小结

RenderPass 优化
UE 的渲染流水

自定义的 HDR 渲染管线

Tonemapping 比较
使用拟合 Filmic 的 aces, 好处是通过公式计算得到,不需要多一个 LUT Pass, 还能使用 Filmic 的参数

自动曝光
分帧处理

小结

Lite HDR
在画 pass 到 backbuffer 的同时, 在 Subpass 画一堆画面的平铺点的到 Hdr Storage 的 Texture, 来计算总体屏幕亮度. 进行 ToneMapping 和自动曝光

用 Subpass 另外画 depth 到低像素纹理, 去渲染低精度特效

最后更新于
这有帮助吗?