标签:资源管线
-
导入管线:EditorFileSystem 的扫描与 .godot/imported 目录
Godot 运行时不直接读 PNG/WAV,而是读 .godot/imported 里的转换产物。这篇讲 EditorFileSystem 的全量与增量扫描、.import 文件的字段含义,以及改一张贴图到底触发了哪些连锁反应。
-
PackedScene 的序列化格式:.tscn 文本与 .scn 二进制对照
.tscn 和 .scn 装的是同一份 SceneState,只是一个用文本一个用二进制。这篇逐段解剖文本格式的四个区块,对照二进制格式的 RSCC 文件头结构,以及什么场景该选哪种。
-
大工程资源扫描优化:EditorFileSystem 缓存与冷启动时间
万级资源工程打开编辑器为什么要等几分钟?答案在 .godot/filesystem_cache。这篇讲全量扫描与增量扫描的成本模型、导入缓存的命中条件,以及把冷启动时间压下来的几个开关。
-
Resource 的引用计数与 ResourceCache:资源为什么不会重复加载
从 Ref 模板到 ResourceCache 全局哈希表再到 ResourceLoader 的加载链,讲清 Godot 4.x 里一份资源从磁盘到内存、再到被共享和释放的完整生命周期。
-
Shader 缓存与变体编译:首次运行卡顿的来源与预热
Godot 4 的 shader 不是加载时编译好的:SPIR-V 变体按需编译造成首次卡顿,引擎用磁盘 pipeline 缓存和 ubershader 异步编译两招缓解。这篇讲变体组合爆炸的数学、缓存的命中条件,以及导出时预热缓存的正确姿势。
-
Node 的 owner 与持久化:场景保存时哪些节点会被写盘
owner 字段决定一个节点在保存场景时被写进哪份 PackedScene;它只影响序列化、不影响运行时查找,运行时 add_child 出来的节点 owner 为 null,天然不会被保存。
-
ResourceUID 冲突与工程迁移:合并工程时的 uid 撞车处理
uid:// 引用靠 64 位整数保证唯一,但合并两个工程、拷贝资产目录时撞车仍会发生。这篇讲 uid 的生成结构与生日碰撞概率、撞车后的表现,以及用 ResourceUID 单例手工消冲突的流程。
-
ResourceLoader 的加载链:ResourceFormatLoader 的注册与选择
load("res://foo.tscn") 的第一个分叉点是 recognize 而不是扩展名:ResourceFormatLoader 列表按优先级询问"你认这个路径吗"。这篇拆加载链的每一环和自定义 loader 的接入方式。
-
TranslationServer:CSV 变 .translation 的导入与运行时查找链
Godot 的多语言不是运行时读 CSV,而是导入期把翻译表编译成二进制 .translation 资源。这篇讲导入格式的细节、TranslationServer 的 locale 回退链,以及 tr() 从调用到拿到译文经过的每一站。
-
音频导入:WAV/OGG/MP3 的解码后端与循环点之谜
三分钟的音乐存 WAV 要 32 MB,存 OGG 只要 3.6 MB,但为什么循环音乐从来不用 MP3?这篇算清三种格式的数据量与解码成本,讲 stb_vorbis/minimp3 后端差异,以及循环点精度问题的物理根源。
-
自定义 ResourceFormatSaver/Loader:让引擎认一种新资源类型
想让 load() 直接读你的存档格式或关卡数据文件,就要实现一对 ResourceFormatLoader/Saver。这篇给一套可运行的存档格式代码,讲清加载链怎么把请求路由到你的 loader,以及缓存和递归加载两个坑。
-
线程化资源加载:`load_threaded_request` 的状态机与令牌
load_threaded_request 把资源加载挪到后台线程,主线程靠状态轮询拿结果。这篇讲 ThreadLoadTask 的状态机、三个公开 API 的调用契约,以及它为什么解决不了"加载瞬间的卡顿"的全部问题。
-
PCK 文件格式与加密导出:资源包能不能被解包
PCK 是公开格式的资源包,任何人都能解出你的脚本和贴图。这篇按字节解剖 PCK 的文件布局——为什么目录表在文件尾、GDPC magic 怎么寻址,以及 AES-256 加密导出的真实防护等级。
-
纹理导入:VRAM 压缩格式的选择逻辑
PNG 再小也要解码成 RGBA8 上显存,VRAM 占用和磁盘体积是两回事。这篇算清 BC/ETC2/ASTC 的块压缩数学,讲 Godot 四种压缩模式的取舍,以及 export 时按平台选格式的具体配置。
-
资源热更新:导出后替换 PCK 的可行性边界
Godot 的 PCK 支持运行时挂载补丁包,load_resource_pack 一行就能把下载的资源盖进运行中的游戏。这篇讲补丁包的覆盖语义、ResourceCache 导致热更不生效的坑、脚本热更的限制,以及引擎不管的那半边商用方案。
-
UID 系统:uid:// 路径如何映射到文件
Godot 4 用 64 位 UID 取代路径做资源引用,移动文件不再断链。这篇讲 UID 的编码格式、三处存储位置、ResourceUID 单例的查表流程,以及复制文件导致 UID 撞车的踩坑现场。
-
模型导入:glTF/FBX 到 ImporterMesh 的转换与拆分策略
模型文件进 Godot 不是"加载"而是"翻译":glTF 走内置解析器,FBX 走 ufbx,最终都落成场景节点树加 ImporterMesh 资源。这篇讲导入管线的产物结构、mesh 与 scene 的拆分策略,以及单位/坐标系/材质三个默认就会踩的坑。