移动端纹理流送:内存预算、清晰度与反复换入换出
纹理流送既要控制内存,又要保证视野变化时画面及时清晰。预算过小会频繁换入换出,预算过大则挤压其他资源。本文建立请求、驻留、欠载和抖动的联合分析方法。
一、四个核心集合
- 需要集合:当前和预测视野期望的 Mip;
- 驻留集合:已经在内存中的 Mip;
- 请求集合:正在读取、解压或上传的内容;
- 淘汰集合:因预算和优先级准备释放的内容。
分析时为纹理保存稳定身份、期望 Mip、驻留 Mip、字节数、优先级和最后使用时间。
二、欠载与过载
期望清晰度高于实际驻留表示欠载;大量低价值纹理长期驻留则可能过载。两个问题可能同时存在:预算被错误资源占用,关键纹理仍然模糊。
三、流送抖动
同一纹理在短时间内反复加载和淘汰,会浪费 IO、解压、上传和内存带宽。统计单位时间换入换出次数、重复传输字节和最短驻留时间。
增加滞回和最短驻留可以减少抖动,但会提高内存占用,应按设备档校准。
四、优先级
优先级可考虑屏幕面积、距离、可见性、内容重要度、相机运动方向和预加载置信度。不能只按距离,因为近处遮挡物和关键 UI 具有不同价值。
五、相机路径与预测
固定相机路径用于回归,记录转向、传送和高速移动后的清晰度恢复时间。预测加载要评估命中率与浪费,错误预测会提前占满预算。
六、和资源加载流水线关联
纹理请求进入 IO、解压和 GPU 上传队列。若清晰度恢复慢,分别检查排队时间、传输吞吐、上传预算和主线程汇合,不能只提高内存池。
七、验收指标
- 预算峰值与稳定占用;
- 欠载纹理数量和持续时间;
- 关键纹理清晰度恢复时间;
- 重复换入换出字节;
- IO 与 GPU 上传峰值;
- 场景切换后的恢复能力。
结语
纹理流送是内存、IO、GPU 上传和画质之间的动态平衡。预算、优先级、滞回和预测必须用同一条路径数据联合评估。
网硕互联帮助中心







评论前必须登录!
注册