AI 3D建模工具: Tripo 3D | Meshy AI

一句话结论:渲染外包的瓶颈通常不是 GPU,而是文件怎么送到每一台机器、以及你凭什么相信回来的帧。作者用两轮真实项目验证了这一点:第一轮用 Flamenco 把四台笔记本拼成跨三个城市的农场,有任务队列、有 Web 面板、有私有网络和共享盘——输给了自己一个人跑的那台笔记本;第二轮交给 SheepIt 社区免费农场,成功了,代价是场景必须变成"陌生人机器上能独立运行"的自包含包,并且每次上传前都要先解压、验证、试渲一帧。

本文编译 @lovestaco(Athreya aka Maneshwar,LiveReview 项目)2026 年 10 月的两篇实操记录:We Built a Blender Render Farm Out of Four Laptops(dev.to,2026-10-12)与 We Rendered a HQ Demo Video on a Free Farm Run by Strangers(dev.to,2026-10-14)。立场说明:作者在站内有自己的产品推广段,数字均出自其自述的实测,本文按"方法与数字"引用;两轮方案都有明确边界与失败记录,文中一并保留。


一、先算清楚账:4 分钟动画 = 约 7,300 帧

项目是一部约 4 分钟的影片,分三段,30fps,约 7,300 帧。作者先做了四档质量的实测(GTX 1650 笔记本):

档位 单帧耗时 整片耗时
360p / EEVEE / 8 采样(关光线追踪与运动模糊) ≈ 1 秒 单段 20–50 分钟
1080p / EEVEE(想要的版本) — 10–22 小时
1080p / Cycles(路径追踪) 76–90 秒 约一周
整片在四档质量下的渲染时间对比

本地优化试过两件事,结论都值得记住:

  • GPU 利用率只有约 44%(1.5GB/4GB VRAM)——360p 下 GPU 很快做完自己那部分,然后等 CPU 摆姿势、算群像、写 JPEG。开两个 Blender 进程只快 1.3 倍;开三个反而比一个还慢(八核一卡抢资源,"不是并行,是监护权争夺战")。
  • 唯一有效的免费提速:按帧区间一次性调用渲染,而不是逐帧 render(),省掉重复的场景准备,单 worker 约 +22%——但 22% 救不了一周的任务。

结论很简单:需要的不是更快的脚本,而是更多 GPU。 团队里还有三台周末闲置的笔记本。

二、第一轮:Flamenco 四台笔记本农场(失败)

2.1 架构:两个 Go 二进制就够了

Flamenco 是 Blender 官方的开源渲染农场软件,只有两个程序:Manager(任务队列 + Web 面板 + 把作业切成 chunks)和 Worker(轮询、后台启动 Blender、上报进度)。都是单文件 Go 二进制,没有数据库、没有 Kubernetes。关键机制:

  • 任务按帧块(chunk)切分,空闲 worker 领下一块,快的机器自然做得多;
  • worker 运行中持续向 manager 发"我可以继续吗"——取消作业真正能传到另一个城市的笔记本;
  • 任务失败会在不同 worker 上重试;同一作业失败三次的 worker 被拉黑,不再吃块。

2.2 组网与路径:真正的工程活儿

四台机器分布在三条家宽上,方案是:

  • Tailscale 组私有网络(WireGuard 加密,100.x.y.z 固定地址),协调服务器只负责"谁在网里、公钥是什么",流量机器对机器——但"理论上"三个字后面有坑:直连是路由问题,速度仍受两端最慢的管子上限;
  • Samba 共享只绑定 loopback,再由 tailscale serve --bg --tcp 445 tcp://127.0.0.1:445 转发,只有 tailnet 内可达;
  • 三台 Linux 机器用 mount -t cifs 挂载到同一个路径。

路径才是大头:.blend 里有 31 个外部引用,其中 25 个是 /home/lovestaco/... 绝对路径——Windows 和 pop-os 笔记本上都不存在。修复方式是把项目复制进共享目录,把所有引用改成相对于 .blend 的 //assets/...;作业本身的路径用 Flamenco 的 two-way variables(manager 存占位符,worker 按平台替换)。

2.3 为什么输了

"渲染农场是一个穿着 GPU 外衣的文件分发问题。"

115MB 的 .blend 要经过 5Mbit/s 的家宽上传,再经中继、SMB over Tailscale、Windows/WSL 的 GPU 与网络问题——每台远程机器光读文件就花了大量时间,GPU 真正干活的时间反而是小头。当晚 21:52,作者关掉了 Manager、Worker、Samba 和 Tailscale,什么都没删。

作者给出的复盘(值得抄进自己的方案评审):

  • 先测上传带宽:五分钟的测速能预测掉这个晚上大部分问题;
  • "直连"说的是路由,不是速度:完美的 P2P 隧道也受两端最慢的管子限制;
  • 确认 Blender 真正在用哪块 GPU:双显卡笔记本会悄悄用核显;
  • Flamenco 是对的,是我们用错了场景:它假设"工作室局域网 + 一个 NAS",而作者给了它"四条家宽 + 一台假装 NAS 的笔记本"。

一个更重要的结论是策略层面的:远端要帮上忙,必须同时满足"快速拿到场景"和"拿到后渲染快"——四台笔记本两样都不占。

三、第二轮:SheepIt 社区免费农场(成功)

3.1 用积分换帧:一次"以工换工"

SheepIt 是社区驱动的免费 Blender 渲染农场:你的机器空闲时渲染别人的帧赚积分,你花积分让别人渲染你的帧。 作者当天注册(2026-10-10)并保持客户端运行:

  • 几天内,自己的笔记本为陌生人渲染了 6,981 帧(约 2 天 7 小时);
  • 换回来:17 个项目、18,651 帧的订单;
  • 积分余额仍有 1,261,589,曲线只涨不跌。

迁移基建的成本几乎为零:客户端是一个 Java jar(sheepit-autoupdate.jar,会自更新),上传端就是一个网页拖 ZIP。没有 Samba、没有 tailnet、没有 NAT 考古——文件只交到一个地方,剩下的是"他们把文件分发给一百台机器"。

作者强调这是观察,不是汇率:轻的 360p 帧便宜、重的 1080p 光线追踪帧更贵、GPU 强的赚得快;这台白天剪片、夜里渲染别人"羊"的笔记本,既是客户又是供应商。

SheepIt 个人页:17 个项目、18,651 帧订单、6,981 帧为他人渲染

3.2 唯一的硬约束:陌生人的机器不会跑你的脚本

SheepIt 对你的 .blend 只有一个要求,也是整个工程问题的核心:它必须在一台你从未见过、无人值守、没有任何项目文件的机器上运行。 而作者的场景是靠 Python 脚本构建的——加载城市、重定向动画、K 数千个值、烘焙进 .blend:

  • 纹理等资源是绝对路径(/home/lovestaco/pers/lr_demo/...);
  • 城市里动态屏幕用图片序列;
  • 旁白用音轨;
  • 一部分渲染设置由脚本在渲染时施加。

陌生机器没有这些,也不会运行脚本——用代码施加的设置等于从未发生。于是他写了打包器 sheepit_pack.py,把"构建好的场景"变成自包含(hermetic)的包:

  1. 把所有图片打包进 .blend——纹理跟着文件走;
  2. 图片序列复制到旁边、路径改成 //assets/...(Blender 不能 pack 序列,靠 ZIP 一起带);
  3. 删掉音轨——旁白和音效之后用 ffmpeg 混,农场不需要;
  4. 把渲染设置烘焙进文件:1920×1080、64 采样、全分辨率光线追踪、开运动模糊、输出 PNG;
  5. ZIP 根目录放 .blend,成品 130–240MB(SheepIt 上限 2GB)。

3.3 "Trust nothing, verify everything":验证包,不验证原文件

把场景发给陌生人的最大风险是:如果包是坏的,你要等几个小时后才知道,而陌生人的机器已经用你的积分烧了一百帧黑屏。 所以每个包离开笔记本前都要过一道门:

两条循环:本地便宜的 360p 审片循环,与农场上的 1080p 正式渲染
  • 解压到干净的临时目录再检查——不要测试原始 .blend,要测试"农场看到的那份";
  • 检查:所有外部文件存在且为相对路径;没有残留音轨;分辨率/采样/光线追踪/运动模糊/PNG 格式与预期一致;
  • 从解压副本真实渲染 1–2 帧(1080p 在自己的 GTX 1650 上 7–35 秒)——这是区分"要一天"和"要一周"的廉价办法;
  • 回来后做帧检查:数量、缺口、尺寸、黑帧;不合格的帧重新排单;
  • 旧包移走而不是覆盖("场景变了,旧的帧目录移走,渲进一个干净的新目录")。

打包脚本本身也翻过一次车,值得所有写校验脚本的人看:unzip -Z1 "$ZIP" | grep -q ... 因为 SIGPIPE 在文件明明存在时误报"不在 ZIP 根目录"。文件没问题,是检查写错了——修法是先把列表存进变量再 grep。

3.4 稳定下来的工作流

  • 草稿在本地:360p EEVEE、关光线追踪与运动模糊,约 0.7 秒/帧——第二段 2,441 帧约 30 分钟,全片约 2 小时。团队能打开审片;
  • 成片在农场:1080p、64 采样、光线追踪反射、运动模糊,约"一天笔记本算力"分摊给不需要你的机器群;
  • 目前两段已经拿回 1080p 成片(第一段 2GB ZIP、第二段 3.7GB ZIP);团队反馈一到,重新出一个包再送。

四、两种方案怎么选

维度 自建(Flamenco + Tailscale + Samba) 社区农场(SheepIt)
前置成本 组网、共享盘、路径修复、每台机器调 GPU 注册 + 打包脚本
瓶颈 文件分发(上传带宽 + 跨平台路径) 场景必须自包含、不能跑脚本
速度 四台家宽笔记本输给单台本地机 帧数换帧数,重活靠 GPU 强的成员
失败处理 worker 重试 + 三次失败拉黑 积分烧在黑帧上 → 必须前置验证
数据与隐私 文件在自己机器间流动 文件进入陌生人的机器,只上传可公开的场景
适用场景 同局域网 + 一个 NAS 的工作室 独立项目,愿意以工换工

作者的三个"早知道":别自建已经有人在跑的农场;先让场景自包含,再让它快——"只在你机器上能跑的文件,就只在一台机器上能跑";验证包,不验证原始文件。

五、外包渲染前的检查清单

  • [ ] 先测带宽,再决定"分布式"还是"集中渲染";
  • [ ] 把 .blend 里的绝对路径全部改成相对路径,外部资源打包或随 ZIP 携带;
  • [ ] 删除不必要资产(音轨、草稿序列),把渲染设置烘焙进文件而不是靠脚本施加;
  • [ ] 解压到干净目录后验证:路径、设置、依赖、无多余素材;
  • [ ] 试渲 1–2 帧再上传/下单;
  • [ ] 回来后做帧检查(数量、缺口、黑帧),失败帧单独重排;
  • [ ] 不删旧包,移走留痕;版本变更时渲进新目录;
  • [ ] 上传前确认:不包含未授权素材、个人数据或不能离开本地网络的资产;无人值守运行意味着你要把"陌生机器上没有你的脚本"当作既定条件;
  • [ ] 把"审片循环"留在本地且便宜——它是团队反馈能进门的前提。

喜欢先看导出结果再发出去,可以用 3D 模型在线查看器 打开 STL/OBJ/GLB/FBX 检查网格与朝向,或把成片素材转成 glTF / GLB 格式 用于网页预览。

同主题阅读

本系列另两篇:AI Agent 安全:九起事故、六项控制与 MCP 供应链(把工具、凭据与陌生代码交给 Agent 时的边界)与 合约管理员是谁:146 个 Morpho 金库的权限实测(把资产交给链上合约时,"谁能换掉代码"同样要自己查)。

来源

  • @lovestaco(Athreya aka Maneshwar), We Built a Blender Render Farm Out of Four Laptops(dev.to,2026-10-12):https://dev.to/lovestaco/we-built-a-blender-render-farm-out-of-four-laptops-1h32
  • @lovestaco, We Rendered a HQ Demo Video on a Free Farm Run by Strangers(dev.to,2026-10-14):https://dev.to/lovestaco/we-rendered-a-hq-demo-video-on-a-free-farm-run-by-strangers-1440
  • Flamenco 渲染农场(Blender 官方开源项目):https://flamenco.blender.org/
  • SheepIt 社区渲染农场:https://www.sheepit-renderfarm.com/

本文由 BimAnt 编译整理,转载请注明出处。

本文属于「AI × 3D」专题。查看专题全部文章 →