Skip to content

P37 技术评审:Spine 4096 单图集的兼容性决策

1467 字

游戏项目里「升级纹理尺寸」总是让人紧张——兼容性够不够?低端机撑不住怎么办?要不要留后路?

P37 最近就在讨论这样一个问题:新立绘的 Spine 图集,从 2 张 2048² 升级到 1 张 4096×2048。两边的争论都很有代表性,于是做了一次完整的技术评审。


一、为什么要改

新立绘有几个特点:

  • 精细细节特写:纹理质量要求高
  • 一镜到底的展示:角色全身 + 局部放大,对纹理分辨率是硬需求
  • Spine 分层极其细腻:各层级穿插复杂度高

当前方案用 2 张 2048² 图集,但 Spine 分层越细,跨图集的 submesh 就越多。每一层穿插都可能产生一次纹理切换,极端情况下 几十个 drawcall 就这么来的。

Spine 官方其实有明确推荐:单图集最佳。因为纹理切换在 GPU 层面是昂贵的操作。


二、升级到 4096×2048 的优劣

直观对比

维度2×2048²1×4096×2048
纹理切换每次 submesh 可能切零切换
Drawcall多层穿插 → 几十个大幅减少
纹理槽占用2 个1 个
内存占用~10.7MB~10.7MB(相同)
美术拆分规划需要不需要
图集导出2 次1 次

关键点:4096×2048 和 2×2048² 的纹理面积完全相同,所以内存不会增加。GPU 只需 1 个纹理槽而不是 2 个,效率更高。


三、Android 兼容性:到底有多少设备支持?

这是所有人最关心的问题。

OpenGL ES 规格的说法

标准最小保证实际主流
OpenGL ES 2.010244096
OpenGL ES 3.0+20484096-16384
OpenGL ES 3.220484096-16384

规格上的「最小保证 2048」类似交通法规说「高速公路最低限速 60km/h」——实际上没有车只能开 60。

实际设备数据(2024-2025)

全球活跃 Android 设备中,4096×4096 纹理支持率约为 99%+。限制在 2048 的设备:

  • Mali-400 MP 系列(2012 年)
  • Adreno 200/300 系列(2013 年前)
  • PowerVR SGX 系列(2013 年前)

关键判断:这些设备根本跑不动 P37 的画质要求。所以兼容性风险不是「有大量用户受影响」,而是「有用户用的设备本身就该被排除」。

公司测试结果

研发组已经在公司低端机上跑过——全部支持。这个信号比外部统计更有说服力,因为公司的测试机已经代表了内部对「最低可接受体验」的定义。


四、1200 元的兼容性测试

为了彻底排除风险,P37 计划用 1200 元预算做一次系统化的兼容性测试。

推荐方案

不跑云平台全量遍历(那个要几千上万),而是买二手真机覆盖 GPU 矩阵

机型GPU定位二手价
红米 9APowerVR GE8320低端 PowerVR¥150
荣耀 8XMali-T8302018 老 Mali¥200
OPPO A5Adreno 5062019 低端 Adreno¥180
红米 Note 5Adreno 5092018 中端 Adreno¥150
华为畅享 9Mali-G512018 中低端 Mali¥180
合计三家 GPU + 三档水平全覆¥860

剩下的 ¥340 还能补一台最极端的低端机。真机可以反复使用,后续任何变更随时验证,不用再走审批。

测试内容

每台设备验证:

  1. GL_MAX_TEXTURE_SIZE 运行时检查
  2. 新立绘 Spine 单图集加载 + 渲染 → 无花屏/黑块/错位
  3. 帧率对比(应该≥双图集方案)
  4. 截图留档

五、对美术工艺的影响

一个容易被忽略但很重要的问题:这个改动会不会增加美术的工作量?

答案:不会。反而更简单了。

因为 Spine 创作阶段用的是矢量和骨骼系统,跟图集尺寸完全解耦。图集只是导出产物,不是创作工具。

阶段以前(双图集)方案(单图集)变化
创作高精度源文件相同不变
拆分规划决定哪个层进哪张 → 30-60 分钟不需要✅ 省
导出2 次1 次✅ 省
拼接验收检查跨图集对齐不需要✅ 省

如果 P37 有 10 个角色,光是拆分规划这一步就省了 5-10 小时。1200 元的测试费远小于省下的工时。


六、结论

采用 4096×2048 单图集方案。 四个理由:

  1. 性能提升 — drawcall 大幅减少,画质上限更高
  2. 内存不变 — 纹理面积相同
  3. 风险可控 — 99%+ 设备支持,不支持的也跑不动画质
  4. 工艺简化 — 美术少一步拆分规划,导出从两次变一次

唯一需要做的:花 1200 元做一次系统化的 GPU 覆盖测试,把「理论上的 99%+」变成「实测过的 100%」。

风险很低,收益明确。


2026-05-12,极致游戏 P37 项目技术评审记录