[{"data":1,"prerenderedAt":402},["ShallowReactive",2],{"docs-nav:docs_zh":3,"docs-page:\u002Fdocs\u002Fconcepts\u002Fassets":155,"docs-surround:\u002Fdocs\u002Fconcepts\u002Fassets":397},[4],{"title":5,"path":6,"stem":7,"children":8,"page":70},"Docs","\u002Fdocs","docs",[9,71,130],{"title":10,"icon":11,"path":12,"stem":13,"children":14,"page":70},"指南","i-lucide-book-open","\u002Fdocs\u002Fguides","docs\u002F1.guides",[15,20,25,30,35,40,45,50,55,60,65],{"title":16,"path":17,"stem":18,"icon":19},"简介","\u002Fdocs\u002Fguides\u002Fintroduction","docs\u002F1.guides\u002F01.introduction","i-lucide-info",{"title":21,"path":22,"stem":23,"icon":24},"快速上手","\u002Fdocs\u002Fguides\u002Fquick-start","docs\u002F1.guides\u002F02.quick-start","i-lucide-play",{"title":26,"path":27,"stem":28,"icon":29},"把办公室的电脑加进来","\u002Fdocs\u002Fguides\u002Foffice","docs\u002F1.guides\u002F03.office","i-lucide-building-2",{"title":31,"path":32,"stem":33,"icon":34},"在 GPU 租用平台渲染","\u002Fdocs\u002Fguides\u002Fcloud","docs\u002F1.guides\u002F04.cloud","i-lucide-cloud",{"title":36,"path":37,"stem":38,"icon":39},"配置 Cloudflare R2 存储","\u002Fdocs\u002Fguides\u002Fr2","docs\u002F1.guides\u002F05.r2","i-lucide-database",{"title":41,"path":42,"stem":43,"icon":44},"把主机放到 NAS 上","\u002Fdocs\u002Fguides\u002Fnas","docs\u002F1.guides\u002F06.nas","i-lucide-hard-drive",{"title":46,"path":47,"stem":48,"icon":49},"设备不在一处","\u002Fdocs\u002Fguides\u002Fremote","docs\u002F1.guides\u002F07.remote","i-lucide-globe",{"title":51,"path":52,"stem":53,"icon":54},"拿到成片","\u002Fdocs\u002Fguides\u002Ffilm","docs\u002F1.guides\u002F08.film","i-lucide-film",{"title":56,"path":57,"stem":58,"icon":59},"改了文件怎么办","\u002Fdocs\u002Fguides\u002Fupdate","docs\u002F1.guides\u002F09.update","i-lucide-refresh-cw",{"title":61,"path":62,"stem":63,"icon":64},"主机坏了或要换主机","\u002Fdocs\u002Fguides\u002Fhost","docs\u002F1.guides\u002F10.host","i-lucide-server-cog",{"title":66,"path":67,"stem":68,"icon":69},"常见问题","\u002Fdocs\u002Fguides\u002Ffaq","docs\u002F1.guides\u002F11.faq","i-lucide-circle-help",false,{"title":72,"icon":73,"path":74,"stem":75,"children":76,"page":70},"概念","i-lucide-box","\u002Fdocs\u002Fconcepts","docs\u002F2.concepts",[77,82,86,91,96,101,105,110,115,120,125],{"title":78,"path":79,"stem":80,"icon":81},"工作区和主机","\u002Fdocs\u002Fconcepts\u002Fworkspace","docs\u002F2.concepts\u002F01.workspace","i-lucide-network",{"title":83,"path":84,"stem":85,"icon":44},"存储","\u002Fdocs\u002Fconcepts\u002Fstorage","docs\u002F2.concepts\u002F02.storage",{"title":87,"path":88,"stem":89,"icon":90},"资产、解包与按需拉取","\u002Fdocs\u002Fconcepts\u002Fassets","docs\u002F2.concepts\u002F03.assets","i-lucide-images",{"title":92,"path":93,"stem":94,"icon":95},"项目、任务和版本","\u002Fdocs\u002Fconcepts\u002Ftasks","docs\u002F2.concepts\u002F04.tasks","i-lucide-list-checks",{"title":97,"path":98,"stem":99,"icon":100},"镜头和分段","\u002Fdocs\u002Fconcepts\u002Fshots","docs\u002F2.concepts\u002F05.shots","i-lucide-clapperboard",{"title":102,"path":103,"stem":104,"icon":54},"成片","\u002Fdocs\u002Fconcepts\u002Ffilm","docs\u002F2.concepts\u002F06.film",{"title":106,"path":107,"stem":108,"icon":109},"Blender 和 FFmpeg","\u002Fdocs\u002Fconcepts\u002Fruntimes","docs\u002F2.concepts\u002F07.runtimes","i-lucide-package",{"title":111,"path":112,"stem":113,"icon":114},"加入与权限","\u002Fdocs\u002Fconcepts\u002Fjoining","docs\u002F2.concepts\u002F08.joining","i-lucide-key-round",{"title":116,"path":117,"stem":118,"icon":119},"渲染名额","\u002Fdocs\u002Fconcepts\u002Fseats","docs\u002F2.concepts\u002F09.seats","i-lucide-gauge",{"title":121,"path":122,"stem":123,"icon":124},"备份和接管","\u002Fdocs\u002Fconcepts\u002Fbackup","docs\u002F2.concepts\u002F10.backup","i-lucide-life-buoy",{"title":126,"path":127,"stem":128,"icon":129},"插件","\u002Fdocs\u002Fconcepts\u002Fplugins","docs\u002F2.concepts\u002F11.plugins","i-lucide-puzzle",{"title":131,"icon":132,"path":133,"stem":134,"children":135,"page":70},"参考","i-lucide-library","\u002Fdocs\u002Freference","docs\u002F3.reference",[136,141,146,151],{"title":137,"path":138,"stem":139,"icon":140},"命令行","\u002Fdocs\u002Freference\u002Fcli","docs\u002F3.reference\u002F1.cli","i-lucide-terminal",{"title":142,"path":143,"stem":144,"icon":145},"本机配置","\u002Fdocs\u002Freference\u002Fconfig","docs\u002F3.reference\u002F2.config","i-lucide-sliders",{"title":147,"path":148,"stem":149,"icon":150},"HTTP 接口","\u002Fdocs\u002Freference\u002Fapi","docs\u002F3.reference\u002F3.api","i-lucide-code-xml",{"title":152,"path":153,"stem":154,"icon":129},"插件开发","\u002Fdocs\u002Freference\u002Fplugins","docs\u002F3.reference\u002F4.plugins",{"id":156,"title":87,"body":157,"description":391,"extension":392,"meta":393,"navigation":394,"path":88,"seo":395,"stem":89,"__hash__":396},"docs_zh\u002Fdocs\u002F2.concepts\u002F03.assets.md",{"type":158,"value":159,"toc":381},"minimark",[160,164,168,176,207,222,225,228,262,266,273,303,307,310,348,351,354],[161,162,163],"h2",{"id":163},"资产与传统农场的痛点",[165,166,167],"p",{},"在 3D 动画与视效制作中，资产（贴图、HDRI、缓存序列、音效和引用库）往往占据了工程 90% 以上的体积。",[165,169,170,171,175],{},"在日常制作中，美术往往习惯在 Blender 中开启“自动打包资源（Pack Resources）”，把几百张贴图内嵌进 ",[172,173,174],"code",{},".blend","，或者在多个镜头中反复引用同一个角色与场景库。这在传统渲染农场中会带来严重的效率瓶颈：",[177,178,179,187,193],"ul",{},[180,181,182,186],"li",{},[183,184,185],"strong",{},"工程臃肿，版本爆炸","：改动几个关键帧或调整一次灯光，保存的新文件依然包含数 GB 的内嵌贴图，每次提交都要重新传输几 GB，存储空间成倍浪费。",[180,188,189,192],{},[183,190,191],{},"重复传输","：同一个镜头中 5 台渲染机各自分工，传统做法要求每台机器完整同步几十 GB 的全部工程资产，哪怕它只渲染一个远景镜头。",[180,194,195,198,199,202,203,206],{},[183,196,197],{},"跨平台路径灾难","：Windows 制作环境下引用的贴图路径（如 ",[172,200,201],{},"Tex\\Wood.PNG","），在 Linux 云端渲染机上因为大小写不匹配（磁盘上为 ",[172,204,205],{},"tex\\wood.png","）或斜杠方向而直接报红甚至渲染出紫黑缺失贴图。",[165,208,209,210,213,214,217,218,221],{},"danio 通过",[183,211,212],{},"自动解包","、",[183,215,216],{},"内容寻址去重","与",[183,219,220],{},"按需 Range 拉取","，彻底解决了这些问题。",[161,223,224],{"id":224},"自动解包与轻量化",[165,226,227],{},"当你在 Blender 扩展中点击提交、或把文件拖进 danio 时，danio 的后台分析模块会自动追踪工程所有的外部与内部依赖：",[229,230,231,244,253],"ol",{},[180,232,233,236,237,239,240,243],{},[183,234,235],{},"内嵌资源自动解包","：打包在主 ",[172,238,174],{}," 或链接库里的贴图、字体和音效，会被解出到本机的 danio 缓存目录中，按",[183,241,242],{},"内容哈希","命名，绝不会改动美术原本的文件。",[180,245,246,249,250,252],{},[183,247,248],{},"轻量快照与引用改写","：解包后的资源在快照中被映射为统一的相对引用。提交到存储的入口 ",[172,251,174],{}," 副本解除了庞大的内嵌贴图，体积缩减为轻巧的工程骨架（通常只有几 MB 到几十 MB）。",[180,254,255,258,259,261],{},[183,256,257],{},"缓存加速","：同一个库文件或同一个 ",[172,260,174],{}," 再次提交时，若内容未发生修改，直接沿用上一次的解包与改写结果，大工程扫描可在数秒内完成。",[161,263,265],{"id":264},"_1-张贴图只上传-1-次全局去重","1 张贴图只上传 1 次（全局去重）",[165,267,268,269,272],{},"danio 的存储不按文件名或文件夹路径管理资产，而是采用",[183,270,271],{},"内容寻址（Content-Addressable）","，以文件内容的 SHA-256 哈希作为唯一身份标识：",[177,274,275,288,297],{},[180,276,277,280,281,284,285,287],{},[183,278,279],{},"跨版本去重","：更新任务生成版本 2、版本 3 时，只要材质贴图没有修改，它们的哈希完全一致。提交时 danio 会向主机查询已有资产列表，存储中已有的贴图",[183,282,283],{},"彻底跳过上传","，只上传修改过的 ",[172,286,174],{},"。",[180,289,290,293,294,287],{},[183,291,292],{},"跨工程与跨镜头去重","：整个工作区内的去重是全局的。如果镜头 01、镜头 02、甚至另一个完全独立的项目使用了同一张 4K 环境贴图或同一个角色模型，这张贴图在工作区存储里",[183,295,296],{},"永远只存 1 份、只上传 1 次",[180,298,299,302],{},[183,300,301],{},"共享 NAS 本地就地处理","：当工程引用了工作室 NAS 上的共享资产时，如果主机运行在 NAS 上（如 Docker），主机可以直接在本地磁盘就地计算并打包存储，美术电脑无需经由局域网将庞大资产来回传输。",[161,304,306],{"id":305},"pack-分卷与按需-range-拉取","Pack 分卷与按需 Range 拉取",[165,308,309],{},"为了兼顾网络传输效率与对象存储性能，danio 并不将每个文件单独散落在存储里（避免成千上万小文件产生海量 API 费用），也不会简单打包成一个巨大的不可变压缩包（避免必须全量下载）：",[177,311,312,321,338],{},[180,313,314,317,318,320],{},[183,315,316],{},"~256MB Pack 分卷","：小于 64MB 的文件（如贴图、着色器脚本）按路径邻近原则合并打包成约 256MB 的不可变 tar 数据包，内部条目采用 zstd 级别 3 快速压缩（已压缩的 PNG\u002FJPEG\u002FMP4 会自动识别并原样存放）。64MB 以上的文件与主 ",[172,319,174],{}," 独立成包。",[180,322,323,325,326,329,330,333,334,337],{},[183,324,220],{},"：渲染机领取到一个镜头后，先比对本机缓存，列出该镜头真正缺失的文件。在对象存储（如 Cloudflare R2）中，渲染机利用 HTTP ",[172,327,328],{},"Range"," 头（",[172,331,332],{},"bytes=offset-length","）",[183,335,336],{},"精确读取目标文件对应的字节区间","，无需下载整个 256MB 数据包。",[180,339,340,343,344,347],{},[183,341,342],{},"硬链接零拷贝挂载","：拉取下来的文件校验哈希后存入渲染机的缓存目录。当为任务准备工作环境时，danio 通过文件系统的**硬链接（Hardlink）**或块克隆将文件铺进 ",[172,345,346],{},"jobs\u002F"," 工作目录，瞬间完成文件准备，且不消耗额外的物理磁盘空间。",[161,349,350],{"id":350},"引用工程与跨平台修复",[165,352,353],{},"大型制作中普遍使用 Blender 的链接库（Linked Libraries），danio 在后台提交与渲染阶段提供了全流程自动保障：",[177,355,356,365,371],{},[180,357,358,361,362,364],{},[183,359,360],{},"缺失库提醒与一键重链接","：提交时若检测到某个外部引用的 ",[172,363,174],{}," 库路径失效，提交界面会以黄色警告标注，并支持在提交对话框中直接指定新位置，仅改写本次提交的快照，不污染美术原文件。",[180,366,367,370],{},[183,368,369],{},"大小写敏感性修复","：Windows 和 macOS 文件系统不区分大小写，美术引用的材质路径经常与磁盘真实文件名大小写不一致。Linux 渲染节点对此极其严格。danio 在分析时会核对磁盘实际文件名，自动重写为真实大小写，确保在云端 Linux 实例上渲染时纹理完好。",[180,372,373,376,377,380],{},[183,374,375],{},"超长路径防护","：Windows 存在 260 字符路径长度限制。对于多层嵌套引用的项目，danio 在渲染时会自动使用 ",[172,378,379],{},"\\\\?\\UNC"," 扩展路径前缀重写副本，避免 Blender 因路径超长而无法加载资产。",{"title":382,"searchDepth":383,"depth":384,"links":385},"",2,3,[386,387,388,389,390],{"id":163,"depth":383,"text":163},{"id":224,"depth":383,"text":224},{"id":264,"depth":383,"text":265},{"id":305,"depth":383,"text":306},{"id":350,"depth":383,"text":350},"打包资产怎么自动解出，1 张贴图如何只上传 1 次，按需拉取与引用库改写。","md",{},{"icon":90},{"title":87,"description":391},"LUpn1uuKTWUuUrKyiMRoemMsS3_4ne87mlF3KfSCLF4",[398,400],{"title":83,"path":84,"stem":85,"description":399,"icon":44,"children":-1},"工作区的文件放在哪，怎么选存储，缓存、存储占用和回收。",{"title":92,"path":93,"stem":94,"description":401,"icon":95,"children":-1},"项目、任务、版本各是什么，任务有哪些状态，排队和本机渲染怎么用。",1794619223479]