跳到主要内容
腾讯题库 · Q40
先读 30 秒回答

第 40 题 / 50

学习状态 未开始

纹理压缩格式

面试官问

PDF 第 85 页

请解释“纹理压缩格式”(ETC2、ASTC、DXT)在 Android 与 iOS 平台的选型原则。(常问题,理清逻辑)

工具与管线 compression · mobile 对应课程:texture-sampling

先把问题答上

你可以直接这样回答

约 30 秒

我先按 Android/iOS 目标 GPU 建能力矩阵,再在包体、显存、带宽、法线和透明质量之间选 ASTC/ETC2/BC/DXT 或 RGBA fallback。选择后用真实设备检查 mip、边缘和加载,而不是只看格式名称。

这道题真正想听什么?

先确认比较对象和回答边界,再决定要不要展开公式、工程实现或性能取舍。

它考平台能力矩阵和工程 fallback,不是背格式全称。压缩格式影响包体、显存、带宽、解码支持和法线/透明质量;Android/iOS 的 GPU 家族不同,必须先查目标设备支持,再决定 ASTC、ETC2、DXT/BC 或 RGBA fallback。这里的 Lab 只模拟预算与选择,不宣称浏览器真的把纹理编码成这些格式。

把答案讲到 2 分钟面试必答 · 约 2 分钟 · 补足因果、输入和取舍

纹理压缩要绑定平台、纹理类型和质量档位。颜色图可用较激进块压缩,法线要看方向误差,UI/透明可能需要更保守格式;构建时生成平台变体并记录版本,运行时按能力选择。低端机 fallback 需要可解释且可回滚。

面试官可能继续追问什么?补充自测 · 约 3 分钟 · 检查自己是不是真的懂了
  • 问:ASTC 一定比 ETC2 好吗? 答:不一定。要看硬件支持、块大小、法线/透明是否可接受以及工具链和包体策略。
  • 问:压缩格式只影响显存吗? 答:不只;采样带宽、缓存行为、解码质量和加载包体都会变,法线还要关注方向误差。
  • 因果链: 平台能力 → 编码格式/块大小 → 内存与采样 → 画质/带宽 → fallback 与 QA。
如果概念还是悬空,就去做实验关键证据 · 约 5–15 分钟 · 预测 → 单变量 → 观察

实验不是第二份答案,它只负责证明答案

如果上面的解释已经听懂,可以直接跳过。卡住时,再沿着这三步把抽象词变成画面证据。

  1. 先猜 输入经过哪些阶段才变成输出?最可能失败或变慢的那一步在哪里?
  2. 去取证 固定其他条件,只改一个参数。先写下变化,不用“更真实”“更高级”这种空词代替证据。
  3. 再追问为什么 是哪一步造成这个结果?如果结果相反,先检查输入、空间、算法,还是显示输出?
我完全没头绪,给我一个起点

先截下默认状态,只动页面当前开放的那个参数。你只需要说清楚“原来怎样 → 改了什么 → 现在怎样”。

1. 先预测

Texture Sampling Labresolution=2048compression=rgba8renderScale=1debugMode=bandwidth;再比较 compression=etc2/astc。在 Quality Tier Labscene=mobile-texture,观察 textureResolutionmobileBandwidthdeviceMemoryGbdebugMode=budget输入 → 变化 → 输出: 格式/分辨率/设备预算 → 选择或 fallback → Bandwidth、VRAM、视觉分数与风险。

老师追问

先别急着查答案: 先画出输入 → 处理 → 输出的路径:你猜瓶颈在哪一段,准备拿什么日志或 profiler 证明?

为什么: 你刚才的预测依赖哪个前提?如果把“纹理压缩格式”里最关键的变量或约束关掉,画面/输出会先坏在哪里?

如果结果相反: 先排除哪一层,再谈结论?这个规则的边界是什么?

2. 再动手

固定场景与 UV,只改 compressionresolutionrenderScalesampleBudget;分别记录 Texture Sampling 的 Bandwidth/Mip/aliasing 证据。再在 Quality Tier 只改 mobileBandwidthdeviceMemoryGbtextureResolution,记录 requested/effective tier、GPU、BANDWIDTH 和 fallback 原因。为每个平台写“首选格式、可接受 fallback、验收纹理”。

3. 最后对证据

分辨率和采样预算上涨通常使带宽/显存压力上升;Quality Tier 预算不足时会产生解释性 fallback。Texture Sampling 的压缩选择是教学参数,不能当成真实 ASTC/ETC2 编码质量;必须在 Android/iOS 真机用平台纹理工具检查法线、透明边缘、mip 和色差。

答案在代码哪里发生?实现定位 · 约 3 分钟 · 变量、函数和关键行
完整 5 分钟版本面试扩展 · 约 5 分钟 · 项目边界、验证与降级

交付会建立纹理资产报告:格式、分辨率、mip、包体、VRAM、带宽和视觉差异。对移动端按设备分层,关键角色与 UI 设更高质量,远景和重复材质降档;真实机跑热量/加载/长时间内存回归。浏览器 Lab 只帮我理解预算,不替代平台压缩工具和硬件采样验证。

哪些说法最容易答歪?必看陷阱 · 约 1 分钟 · 面试前最后检查
  • 用“ASTC 最新”替代平台能力矩阵。
  • 只压缩颜色图,忘了法线和透明边缘。
  • 只看包体,不看 VRAM、带宽和 mip 闪烁。
  • 没有不可支持格式的 fallback 和回滚。