vaststars资源管线全拆解:gltf.patch热更、图集制作与纹理压缩工具链 vaststars资源管线全拆解gltf.patch热更、图集制作与纹理压缩工具链【免费下载链接】vaststarsA game demo for Ant engine项目地址: https://gitcode.com/gh_mirrors/va/vaststars本文以vaststars一款基于Ant 引擎的火星基建游戏 Demo为例面向新手完整拆解它的资源管线从gltf.patch 热更新的补丁格式、图集Texture Atlas批量制作到ASTC/BC3 纹理压缩工具链以及构建出包 → 运行时只拉增量的完整热更流程。不需要引擎开发经验看懂文件就能上手。 先搞清楚vaststars 的资源长什么样所有美术资源集中在startup/pkg/vaststars.resources/目录下按用途分区目录内容glbs/建筑模型.gltf.bin PBR 贴图 .gltf.patch补丁images/textures/UI 图片与.texture纹理配置effects/粒子特效.efkmaterials/textures/材质、Shader 与平台压缩纹理资源管线要解决的三个经典痛点UI 小图太多→ 几百次 Draw Call需要图集打包同一张图多平台→ Android/iOS/Windows 压缩格式各不相同需要纹理压缩工具版本迭代不想让玩家整包重下→ 需要gltf.patch 编号补丁的热更新机制。下面逐条拆解。 gltf.patch 热更几 KB 的补丁改整个模型补丁文件长什么样打开仓库里的真实补丁 startup/pkg/vaststars.resources/glbs/furnace-1/furnace-1.gltf.patch内容是一串 YAML 操作描述每个补丁块只有四要素file: mesh.prefab # 被修改的文件 op: add # 操作类型如 add path: /- # YAML 节点路径 value: # 写入的内容场景物体、旋转、位置等 data: scene: r: {0, -0.382, 0, 0.923} t: {-10, 4.5, 10}调整模型结构、挂接新部件只需下发这种差量描述而不是重传几 MB 的 gltf 包和 2048×2048 的贴图。构建端编号补丁 哈希基线tools/update/pkg/vaststars.update/main.lua 用并行任务编排三件事编译资源compile_vfs.lua 按平台设置windows-direct3d11、ios-metal多线程编译全部资源并清理过期缓存拉取历史补丁download_patch.lua 从 CDN 枚举并下载所有历史补丁包生成新基线create_zip.lua 对比历史补丁已包含的文件只把增量打进新的编号包core/00.zip、core/01.zip……同时输出对应的.hash根哈希文件用于校验。运行端游戏自动续更service/download.lua 是玩家侧的全部逻辑读本地download/index文件知道自己更到第几个补丁并发下载 CDN 上index之后的编号补丁core 当前平台的 reskey按顺序解压到沙盒vfs/目录已存在的文件绝不重复下载把最新一层.hash写入vfs/root0完成资源基线切换。整个流程玩家无感知弱网下也只传输 KB 级增量。️ 图集制作把小图塞进一张大图工具入口是 tools/make-atlas/make-atlas.lua配套脚本make-atlas.bat一键运行。核心参数--edge1024正方形图集的边长--image_dir递归扫描的小图源目录如images/icons--name/--atlas_file图集名称与输出路径--cleartrue清理上一次生成的产物保证干净重建。它的产出有三份图集大图images/atlas/name.png.atlas布局文件记录每张原图在图中的矩形坐标irpath → rects映射图集对应的.texture配置交给引擎做压缩采样。之后 tools/set-atlas/set-atlas.lua 会扫描所有.atlas文件生成一张纹理路径 → 图集路径的映射表写入startup/pkg/vaststars.settings/atlas_setting.ant。运行时引擎查表即可把单图加载替换为图集子区域采样UI 的 Draw Call 数量随之断崖式下降。 纹理压缩工具链一套配置多平台编码.texture文件是纹理的配方。tools/make-textures/make-textures.lua 递归扫描所有.png并自动生成对应配置一个真实示例textures/crack/下的裂纹贴图compress: android: ASTC4x4 ios: ASTC4x4 windows: BC3 maxsize: 1024x1024 mipmap: 0 colorspace: sRGB sampler: MAG: LINEAR MIN: LINEAR几个值得新手注意的设计平台分化移动端统一 ASTC当前移动 GPU 通用的高压缩率硬件格式桌面端用 BC3一份源图三套编码尺寸护栏maxsize限制 1024×1024防止意外的大图撑爆显存智能清理--cleartrue会删除png 已不存在的孤儿.texture特殊字段保护已有配置里的lattice等扩展字段会被保留不会被覆盖丢失。 工具链全景四条命令走完全流程步骤工具产出1️⃣tools/make-textures/make-textures.bat所有 png 的.texture压缩配方2️⃣tools/make-atlas/make-atlas.bat图集大图 .atlas布局3️⃣tools/set-atlas/set-atlas.batatlas_setting.ant映射表4️⃣tools/update/main.lua平台资源编译 增量补丁包 哈希基线玩家启动游戏后service/download.lua自动补齐增量——构建端管生成差量运行端管应用差量两者靠编号 zip 和.hash基线对齐。 小结vaststars 的资源管线用不到十个脚本搭出了一条教科书级的完整链路gltf.patchYAML 差量描述模型迭代只下发几 KB编号补丁 根哈希00.zip → 99.zip层层叠加断点续更、可校验图集三件套make-atlas 打包 → set-atlas 建表 → 引擎查表采样纹理压缩配方.texture一份配置驱动 ASTC/BC3 多平台编码。如果你想动手体验从tools/目录下的三个.bat脚本读起再对照startup/pkg/vaststars.resources/的目录结构半小时就能跑通整条管线。【免费下载链接】vaststarsA game demo for Ant engine项目地址: https://gitcode.com/gh_mirrors/va/vaststars创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考