学习目标
你要能够解释什么
能画出资源到渲染结果的管线,并指出缓存、流式加载和可观测性的位置。
Interview evidence
题库练习
把这一节课的画面证据,接回 PDF 里的原题。先做一个小预测,再去题目页整理成自己的回答。
-
AssetBundle 与 Addressables
先自己猜:这道题在考什么?
参考答案:AssetBundle 是底层构建/加载单元,Addressables 在其上提供地址、依赖和生命周期管理;选型看团队需要的控制粒度和工具成本。热更新用版本化 manifest、hash 校验、依赖闭包和原子切换,失败保留旧版本回滚。
可观察证据:只改一个参数,记下画面变化,再写一句“所以它说明了什么”。
-
DCC 与引擎同步
先自己猜:这道题在考什么?
参考答案:我会定义带版本的导出 schema,明确单位、轴向、坐标系、资产 ID 和元数据;插件先做 diff/校验,再导入引擎,冲突给迁移或阻断,所有写回可回滚。没有实际插件经历时,我会说清这条验证流程。
可观察证据:只改一个参数,记下画面变化,再写一句“所以它说明了什么”。
-
Draw Call 合并
先自己猜:这道题在考什么?
参考答案:Draw Call 合并是在不破坏材质、排序和阴影语义的前提下共享提交。材质合并/图集减少状态切换,Instancing 复用相同几何;我会同时记录 draw calls、GPU、带宽和画质,避免只报一个下降数字。
可观察证据:只改一个参数,记下画面变化,再写一句“所以它说明了什么”。
-
异步资源加载
先自己猜:这道题在考什么?
参考答案:我会先构建资源依赖闭包和版本化 manifest,再按优先级异步下载、解压、实例化,配合缓存预算、取消、重试和 fallback。验证要看首帧 hitch、cache hit、峰值内存和长时间运行,不只看加载平均值。
可观察证据:只改一个参数,记下画面变化,再写一句“所以它说明了什么”。
实验循环
按顺序做一次实验
-
Step 1
拆开生命周期
- 改什么
- Load → Decode → Upload → Draw
- 怎么做
- 逐阶段显示耗时和状态。
- 你会看到
- 同一个模型在不同阶段占用不同资源。
- 它代表
- “加载慢”不是单一问题,必须先定位阶段。
Code anchor · engine-pipeline · lifecycle
-
Step 2
打开缓存与流式
- 改什么
- Cache / streaming budget
- 怎么做
- 比较冷启动、缓存命中和分块加载。
- 你会看到
- 首屏速度与峰值显存之间出现可见交换。
- 它代表
- 体验优化是在时间、内存和带宽之间分配预算。
Code anchor · engine-pipeline · streaming
-
Step 3
模拟平台约束
- 改什么
- GPU / memory / network
- 怎么做
- 降低一个平台预算,观察 fallback。
- 你会看到
- 资源质量或更新频率按策略降级。
- 它代表
- 管线设计要把降级当作产品行为,而不是异常。
Code anchor · engine-pipeline · fallback
快速复习
用三分钟找回因果链
这里没有第二套答案。以下内容直接来自上面的课程事实,方便你在面试前快速检索。
一句话核心
沿着一份资产的生命周期观察 CPU、GPU、显存与网络边界。
- “加载慢”不是单一问题,必须先定位阶段。
画面证据:同一个模型在不同阶段占用不同资源。
- 体验优化是在时间、内存和带宽之间分配预算。
画面证据:首屏速度与峰值显存之间出现可见交换。
- 管线设计要把降级当作产品行为,而不是异常。
画面证据:资源质量或更新频率按策略降级。
代码定位
- engine-pipeline · lifecycle
- engine-pipeline · streaming
- engine-pipeline · fallback