Hub›Part VI · 原生 3D 扩散 · vecset
§6.13DShape2VecSet · vecset 的诞生
3DShape2VecSet— A 3D Shape Representation for Neural Fields and Generative Diffusion Models
网格/三平面/体素这些 latent 对 transformer 都别扭,难 scale 给扩散(痛点 b)。
关键想法:把一个形状表示成一组无序的 $N$ 个 latent 向量("vecset"),用注意力原生处理,而不是规则网格。这一个表示,定义了后面几乎所有模型的 latent。
$$ Z = \mathrm{SelfAttn}\!\big(\mathrm{CrossAttn}(Q,\ \mathrm{PE}(P))\big),\qquad O(x)=\mathrm{FC}\!\big(\mathrm{CrossAttn}(\mathrm{PE}(x),\ Z)\big) $$
采样表面点 $P$,用 farthest-point sampling 选 $N{\approx}512$ 个查询种子 $Q=\mathrm{PE}(\mathrm{FPS}(P))$,cross-attention 把形状压成 $Z\in\mathbb{R}^{N\times C}$;任意点 $x$ 的 occupancy 是 $x$ 对 $Z$ 的一次注意力读出。KL 正则让 $Z$ 可扩散。生成器就是在 $Z$ 上跑的自注意力扩散——3D 的 proto-DiT。
相比 NFD 的 triplane、LION 的点、Shap-E 的 MLP 权重,vecset 置换不变、无网格偏置、天生适配 transformer——这是赢家 latent。
下面这个 demo 把这套 encode→decode 全程画出来——它也是 §1.4 那张流水线的可视化。
Demo 7 · vecset VAE · 把形状压成 N 个向量再解出来
左:输入形状的表面采样点(青)+ FPS 选出的 N 个 latent 锚点(橙)。
中:被压成的 latent 集 $Z\in\mathbb{R}^{N\times C}$。右:decoder 在查询格上解出 occupancy,marching squares 重建出轮廓——
实线 = 重建、虚线(青)= 原形,readout 实时给出两者的 IoU。
把 N 拉到很小(如 4–8):实线偏离虚线、细节丢失、IoU 掉下来——这就是"latent 容量 = 几何上限"。
把 N 拉大:实线贴上虚线、IoU 升高。
§6.2Michelangelo · 先对齐,再生成
Michelangelo— Conditional 3D Shape Generation based on Shape-Image-Text Aligned Latent
image/text→3D 不稳,因为 3D 的分布和 2D/文本差太远。
关键想法:先对齐,再生成——用对比学习把 vecset 形状 latent 训得与图像+文本 CLIP-对齐(SITA-VAE),再在这个对齐空间里扩散(ASLDM)。
在 3DShape2VecSet 的 vecset 上加一层"跨模态对齐"——后来所有条件模型都继承了这个对齐直觉。
§6.3CLAY · 把 vecset 扩到基础模型规模
CLAY— A Controllable Large-scale Generative Model for Creating High-quality 3D Assets
vecset+DiT 的想法对了,但要变成可控的生产级基础模型,得 scale。
关键想法:把 3DShape2VecSet 式 VAE + 一个极简纯 transformer DiT 扩到 1.5B 参数,在巨量精选数据上训,配丰富的 3D-aware 控制(文本、图像、多视图、体素、bbox、点云)。多分辨率 VAE(自适应 latent token 数,粗到细),输出 mesh + 单独的多视图材质扩散出 PBR。
第一次把 vecset+DiT 做成"基础模型 + 强控制 + PBR"的完整生产模板——商用化身即 Rodin。后面所有人都在这张图上加螺丝。
"几何先行、材质后补"为什么成了标配
几何分布和 RGB 差一个量级,几何用 3D-native 的 occupancy/SDF 目标学最好;材质复用预训练 2D/多视图扩散最省。先出一张干净 mesh,就有了精确表面去 condition 材质(渲 depth/normal → 多视图 PBR → 烤 UV),保证对齐,还能模块化升级。CLAY、Hunyuan3D、TripoSG、Step1X-3D 全这么干。材质那一段是 Part VIII。
这一代的 VAE 升级值得记一笔:Dora(2412.17808,Sharp Edge Sampling——在高曲率处重点采样,小 vecset 也能保住锐边)被后面广泛采用;
LaGeM 把 vecset 做成层次化(每层一个 LoD)+ 级联扩散。
§6.4TripoSG · rectified flow 高保真时代
TripoSG— High-Fidelity 3D Shape Synthesis using Large-Scale Rectified Flow Models
DDPM 在大 latent / 大模型上又慢又难训(痛点 d)。
关键想法:vecset latent + 大规模 rectified flow(直线流,少步采样,见 §1.5)+ MoE transformer。VAE 用 vecset 512→2048(推理可到 4096)token,监督 = SDF + 表面法线 + eikonal + KL;生成器 ~1.5B 基座经 MoE(8 专家 top-2) 扩到 ~4B;双 cross-attention 注入全局 CLIP + 局部 DINOv2 图像特征;2M 精选物体。
把 CLAY 的 vecset+DiT 从 DDPM 换成 rectified flow + MoE + 双特征条件——高保真、可少步、可开源复现。
几何细节这条线还有 CraftsMan(粗几何 DiT + 法线图 refiner)和 Hi3DGen(2503.22236,
用法线图当 image→geometry 的桥,几何精度 +~20%)——"法线作中间信号"成了恢复锐利细节的通用招。
§6.5Step1X-3D · 最透明的开源两段式标杆
Step1X-3D— Towards High-Fidelity and Controllable Generation of Textured 3D Assets
主线模型大多闭源 / 半开,社区难复现完整两段式管线。
关键想法:完全开源的两段式原生 3D 系统。阶段一·几何:hybrid VAE-DiT 出 TSDF——perceiver 式(cross-attention)vecset 编码器 + Sharp Edge Sampling(Dora 式)→ flow DiT → TSDF → marching cubes。阶段二·材质:几何条件多视图扩散 → 纹理空间同步保跨视图一致 → 多视图反投影 + UV inpainting。开放数据管线(>5M→2M)、训练代码、2D→3D 可迁移的 LoRA 控制。
把 TripoSG/Hunyuan 式两段式做成端到端全透明——是当下最适合上手读代码的参考实现。
把 §6.1–§6.5 拼成"今天的标准架构"
点云 cross-attention 的 vecset VAE(解码到 occupancy/SDF/TSDF)+ 一个 rectified-flow DiT(条件 = 全局 CLIP + 局部 DINOv2 图像特征)→ marching cubes →
单独一个多视图 PBR paint 阶段。triplane(Direct3D)、自回归(SAR3D)、MLP 权重(Shap-E)都是历史上的备选 latent,但 2025 的事实标准是vecset + 流。
§6.6Hunyuan3D 2.x · 把它做成生产级 PBR 系统
Hunyuan3D 2.0 / 2.1— Scaling Diffusion for High-Res Textured 3D · Production-Ready PBR
要把原生 3D 扩散做成带可重光照 PBR、还能开源的生产系统。
关键想法:Hunyuan3D-ShapeVAE(重要性采样、可变 token 长度的 vecset)+ Hunyuan3D-DiT(flow)出几何;Hunyuan3D-Paint 出多视图纹理。2.1 是首个完全开源的 PBR 版本:albedo / metallic / roughness,空间对齐多注意力 + 3D-aware RoPE + 光照无关 albedo。
在 vecset+flow 主线上补齐"开源 + 生产级 PBR"——成为社区的几何+材质事实参考。(2.5 用 10B 的 LATTICE 基座,见 Part IX。)
§6.7Direct3D-S2 · 为了高分辨率,离开 vecset
Direct3D-S2— Gigascale 3D Generation Made Easy with Spatial Sparse Attention
vecset 解码到 $1024^3$ 这种分辨率,算力会爆(痛点 b/d)。
关键想法:放弃 vecset,改用稀疏 SDF 体积 latent + Spatial Sparse Attention (SSA)——按 3D 坐标把 token 分块(前/后向 3.9×/9.6× 提速),8 卡就能训 $1024^3$。
主线的高分辨率后继,但显著偏离了 vecset、转向稀疏体积——这把我们直接带到下一部"结构化 latent"。
这一部的谱系 + 仍开放的问题
3DShape2VecSet(vecset 诞生)→ Michelangelo(对齐)→ CLAY(扩到基础模型 + PBR 模板)→ rectified-flow 浪潮(TripoSG / Step1X-3D / Hunyuan3D 2.x,换流 + MoE + 双特征 + 开源 PBR)→ Direct3D-S2(为高分辨率离开 vecset 转稀疏体积)。
仍未解决:原生分辨率(稀疏注意力是当前答案)、锐边 / 薄结构(重要性采样、法线桥有帮助但没根治)、生产级 PBR、以及速度(少步流 / 蒸馏,见 Part IX)。
"离开 vecset 转稀疏体积"这件事本身,就是下一部的主题。