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

高斯泼溅最难受的一步一直是"进不了主流程":扫描出来的是 .ply 或 .spz,想看、想调、想跟别的资产摆在一起,就得先绕到第三方查看器或者插件里。Blender 5.3 把这步抹掉了——拖进去就导入,EEVEE、Cycles、Workbench 三个引擎全能渲染。

但"支持"和"能当生产工具"是两件事。官方这篇开发日志最有价值的地方不在"欢迎使用",而在后面那句:重光照目前只是早期阶段。下面把它讲的实现和代价逐条拆开。

本文完整编译 Blender Developers Blog,2026-10-30,Mark van de Ruit 与 Sergey Sharybin《Splatting the Gaussians into Blender》。文中所有行为描述来自原文,我们未在本地安装 5.3 Beta 复现。


一、splat 不是 mesh,也不是普通点云

原文对它的定义很清楚:3D 高斯泼溅不产出网格,产出的是一团由大量微小高斯球组成的辐射场。它像点云,但能表达更复杂的结构——材质、光照、透明度、毛发、细节,全都装在一个对象里。

这句话决定了后面所有工程细节:没有面、没有 UV、没有法线,只有一堆带方向、带尺度、带视角相关颜色的"糊状体"。所以"编辑 splat"本质上是编辑点云,而不是编辑模型。

二、怎么用:两种格式加一条 USD 路

  • 支持导入 .PLY 与 .SPZ(后者是压缩格式,网上分享的扫描场景多为它),另外可以从 USD 里加载。
  • 操作就是把文件拖进视口,确认导入。
  • 官方提供了一个演示文件 dogwalk_assets_capture.ply——Blender 总部那批 DOGWALK 游戏资产(真东西)的照片扫描。

三、在 Blender 里,splat 是一种点云

这是全文最"能照着做"的一节。Blender 把 gsplat 实现成点云的一种,并为此新增了一个 Pointcloud Type 几何节点。但它需要一组和普通点云不同的属性:

属性 含义 和普通点云的区别
Position 位置 与点云同名属性一致
Scaling 三维向量 不是点云里的半径,因为 splat 可以在三个轴上拉伸
Rotation 四元数 配合 Scaling 才能形成非均匀的复杂形状
Radiance 辐射亮度 不是颜色,而是"向各个方向发出自发光颜色"的数据;底层存的是球谐系数(视角相关的光照)

在几何节点里写属性时有个坑:Radiance 被拆成 radiance:base(常数项)和 radiance:sh(视角相关的球谐项)。当然也可以直接往 radiance 属性写纯颜色。

默认材质是自发光,取的就是 radiance 的输出。想重光照就去着色器编辑器改——但原文立刻补了一句:重光照支持还在早期。

四、三条渲染路径:同一份数据,两种物理

原文的写法是"结果大体一样,但技术上有差别,你需要知道"。差别其实是根本性的。

EEVEE 与 Workbench:光栅化,也就是别的 splat 查看器那套

思路和其他 gsplat 渲染器一致:每个 3D 高斯朝相机投影,变成一个 2D quad,再算一个对应的 2D 高斯;这些透明 billboard 从后往前叠上去,就是"splatting"。

初版实现里,透明用的是 EEVEE 的 dithered 模式。理由是工程性的:比别家那套排序/分块(sorting/tiling)好实现得多,和 EEVEE 架构冲突也小,而且将来把剔除做好之后性能更好。

代价写得很直白:这种随机做法噪点很重,处理 gsplat 时要把 EEVEE 的采样数(Render > Sampling > Viewport/Render)调高一点。

Workbench 有个单独的坑:视口着色设置对所有对象生效。想让 splat 看起来正常,得把 Viewport Shading > Lighting 选成 Flat。

Cycles:路径追踪,所以它不能"投影"

Cycles 是路径追踪器,光栅化那套技巧在这里不成立——次级光线没法用"投影到相机"来近似。于是 Cycles 换了个问题:对每条射线,求它与 splat 的交点,位置取这条射线上不透明度最大的点。

不透明度用随机方式处理:交点的点不透明度被当作概率——不透明度越高,这个交点被接受的可能性越大。这样就不用维护内存密集的状态,对 GPU 也友好。

这么做的收益是实打实的:splat 能原生进 Cycles,反射、间接光这些全局光照算法全都适用。

还有一个值得记的工程细节:如果按最直观的方式算点不透明度(显式计算协方差矩阵),又大又扁的 splat 会出伪影,比如训练场景 Bicycle 里就能看到。解决办法是调整乘法顺序——和算交点时的处理一样。原文放了两张对照图(问题 / 解决后)。

Bicycle 场景里的数值伪影

扁 splat 的数值伪影(上)与调整乘法顺序后的结果。图:Blender Developers Blog

五、法线怎么来,重光照就有多认真

要让 splat 能被灯光照亮,EEVEE 和 Cycles 都得估一个"splat 的法线"。逐点查邻居太慢,所以做法是在着色点就地估计:

假设表面由被压扁的 splat 组成(像一张饼),法线就指向尺度最小的那个方向。

原文自己评价"非常基础",但也说清楚了它的用途:够做简单重光照。同一思路在 PGSR(Planar-based Gaussian Splatting for Efficient and High-Fidelity Surface Reconstruction,Danpeng Chen 等)的 Flattening 3D Gaussian 一节里有类似描述。

Cycles 的射线与高斯球求交

Cycles 的求交方式:射线打到 splat 上不透明度最大的位置。图:Blender Developers Blog

六、两条路渲染同一个 splat,会不一样

这一节值得单独拎出来,因为它解释了一个很多人会踩的"我的模型在别的软件里不是这个样子":

  • EEVEE 里 splat 画成朝相机的 billboard;
  • Cycles 里是朝射线的(ray-oriented);
  • 纸面上 Cycles 那套才是透视正确的——但绝大多数 gsplat 数据是按 EEVEE 那套拟合出来的,所以在某些场景里这个差别肉眼可见。

原文用 Renderbricks 的一个场景当最坏情况演示。意思是:你拿线上扫来的 splat 在 Cycles 里渲,感觉"没有在查看器里好看",未必是你的错。

单个 splat 从浅角度渲染

单个 splat 的浅角度渲染:Cycles 的结果更接近真实体(有同样的透视变换),但和光栅化实现有差别。图:Blender Developers Blog

七、我们的整理:三条路怎么选

把上面的信息压成一张表,按"你现在要干什么"来选:

你要做的事 用哪个 必须做的设置 已知代价
快速看扫描结果、摆位置、剪裁 Workbench Viewport Shading > Lighting 改 Flat 全局生效,会影响场景里别的对象
出图、要快、能接受噪点 EEVEE 调高 Viewport/Render 采样数 dithered 是随机的,噪点明显;重叠 splat 会被重复绘制(overdraw)
要反射、间接光、跟别的资产一起打光 Cycles 知道它会和光栅化结果有肉眼差异 与查看器/EEVEE 结果不完全一致;重光照仍是早期
交付前把扫描转成可打印的实体 别在 Blender 里硬转 走视觉壳/等深面那条独立流程 splat 里没有表面,转 mesh 是另一个问题

两个实用判据:

  1. 导入后第一件事是把采样数加上去,否则 EEVEE 的噪点会被误判成"数据有噪"。
  2. 别人给的 .spz 比 .ply 省带宽,但两者都不带可编辑拓扑——想改形状,得先想清楚改的是点云还是几何。

八、官方自己列的四条限制

原文"未来计划"一节,比我预想的诚实:

  • EEVEE 的性能还能提。 被别的 splat 挡住的 splat 常常照样被绘制,低端设备扛不住高 overdraw——这也是他们想改 GPU 剔除的直接动机。
  • 编辑工具还是点云那一套。 原文用词是"开始显得笨重"(clunky)。也就是说,5.3 解决了"能进来",没解决"好编辑"。
  • 重光照用的是 splat 的辐射亮度,而它是视角相关的。 想做得更好,得往 albedo 提取走——这是个研究问题,不是排期问题。
  • 官方定位是整个大工程的地基("a lot of groundwork"),后续版本继续打磨。

边界

  • 本文编译自开发者博客,我们未安装 Blender 5.3 Beta 实测;所有行为、参数名与图注均来自原文,截图版权归 Blender Foundation。
  • 原文发布时对应的是 5.3 Beta;正式版的具体行为可能有微调,以 release notes 为准。
  • 文中提到的论文(3D Gaussian Ray Tracing、Stochastic ray tracing of transparent 3D Gaussians、PGSR)我们未逐篇复现,仅按原文引用标注。
  • 这是一次渲染与导入的集成,不是"高斯泼溅能当 CAD 用"的信号:splat 无拓扑、无 UV、无参数,改不了形状。

想在浏览器里先确认一个 splat 或扫描文件(PLY / GLB / STL / OBJ)有没有明显破面、朝向对不对,用在线 3D 查看器打开比装一个 Blender 快得多——它读的就是同一批 PLY。

Sources

  • 主源文:Mark van de Ruit、Sergey Sharybin《Splatting the Gaussians into Blender》,Blender Developers Blog,2026-10-30 https://code.blender.org/2026/10/splatting-the-gaussians-into-blender/
  • 演示文件:dogwalk_assets_capture.ply(原文提供下载)
  • 引用论文:Nicolas Moenne-Loccoz 等《3D Gaussian Ray Tracing: Fast Tracing of Particle Scenes》;Xin Sun 等《Stochastic ray tracing of transparent 3D Gaussians》;Danpeng Chen 等《PGSR: Planar-based Gaussian Splatting for Efficient and High-Fidelity Surface Reconstruction》
  • 相关:Blender 5.3 release notes 与 Gaussian Splatting 路线图条目

同主题阅读

本文属于「AI × 3D / 生成式 AI」专题。BimAnt 编译整理,转载请注明出处。文中实现细节与技术判断均来自 Blender 官方开发者博客,我们未做本地复现。