HubPart II · 史前史
Part II · 史前史 · 2016–2022

现代之前:三条线 + 第一波扩散

在 SDS 和原生扩散出现之前,3D 生成已经热闹了七年。这一部速读——只点里程碑, 重点是看清哪些东西活到了现代triplane(EG3D)、auto-decoder 隐式场(DeepSDF)、 DMTet 取面(GET3D)、以及逐场景蒸馏(DreamFields → DreamFusion)。

本页 4 节 · 速读
  1. §2.1Voxel / Point GAN
  2. §2.2隐式场自解码器
  3. §2.3Triplane GAN
  4. §2.4第一波 3D 扩散

§2.1School A · 在显式体素 / 点云上做 GAN

最早的思路最朴素:把 2D GAN 直接搬到 3D 网格或点云上。它们证明了"3D 可以被生成",但很快撞上分辨率 / 内存的墙—— 这正是痛点 (b)的第一次现身。

3D-GAN— Learning a Probabilistic Latent Space of Object Shapes via 3D GAN
NeurIPS 2016 Wu, Zhang, Xue, Freeman, Tenenbaum · MIT · arXiv:1610.07584

怎么从一个 latent 空间采样出新的 3D 物体,而不靠参考图或 CAD 模型?

关键想法:一个体积卷积 GAN——生成器输出 voxel 占据网格,判别器逼它隐式抓住物体结构。第一个真正意义上的 3D 生成模型。

把 2D 图像 GAN 整套搬到 $O(N^3)$ 的体素网格上;代价是分辨率被死死压在 $\sim 64^3$。

同期的 PrGAN / PlatonicGAN / HoloGAN 用可微投影从 2D 视图反推 voxel;点云一支有 r-GAN / l-GAN(Achlioptas, 在预训练自编码器的 latent 里跑 GAN——"latent 空间生成"这个套路从这里立起)与流模型 PointFlow(连续正规化流,精确似然)。 这些今天基本只作为历史脚注,但"在 latent 空间而非原始空间里生成"的思想活到了今天。

§2.2School B · 隐式场自解码器(活下来的表示)

这一组本身不是生成器,但它们贡献了现代几乎所有生成器都在用的连续隐式表示,以及 DeepSDF 的 auto-decoder 套路—— 这是原生 3D 扩散的直接祖先。

OccNet / IM-NET— Occupancy Networks · Learning Implicit Fields for Generative Shape Modeling
CVPR 2019 Mescheder et al. (MPI) · Chen & Zhang (SFU) · arXiv:1812.03828 · 1812.02822

体素的立方内存让分辨率上不去(痛点 b)。

关键想法:把表面表示成一个连续神经分类器的决策边界——MLP 吃 3D 坐标,吐"在内 / 在外"。分辨率不再受网格限制,想多细查多细。

从"存一个离散网格"变成"存一个连续函数";占据场 = 把表面定义为 $\{o(x)=0.5\}$。

DeepSDF— Learning Continuous Signed Distance Functions for Shape Representation
CVPR 2019 Park, Florence, Straub, Newcombe, Lovegrove · UW / FRL · arXiv:1901.05103

想要一个紧凑、连续、还能补全的形状表示。

关键想法auto-decoder——每个形状有一个 latent code,和一个共享的 SDF MLP 联合优化,不需要 encoder。这正是"把形状压成 latent、再在 latent 上学分布"这套现代范式的祖型。

相比 OccNet 学的是有符号距离(而非二分占据),且确立了"逐形状 latent + 共享解码器"的 auto-decoder 训练法。

网格一支的 AtlasNet(把形状解码成若干参数曲面片)和 Pixel2Mesh(图卷积变形椭球模板)也属于这一代—— 它们的 mesh-as-output 直觉,会在很久以后的 mesh 自回归生成(Part VIII)里复活。

§2.3School C · 3D-aware GAN 与 triplane 的诞生

把体渲染嫁接进 StyleGAN,催生了这一代最重要的遗产——triplane。它会成为后来 LRM、原生扩散的默认 latent 之一。

EG3D— Efficient Geometry-Aware 3D Generative Adversarial Networks
CVPR 2022 Chan et al. · Stanford / NVIDIA · arXiv:2112.07945

3D-aware GAN 又慢又糊,到不了实时高分辨率。

关键想法tri-plane 混合表示——StyleGAN2 生成器产出三张 2D 特征平面(XY/XZ/YZ),查询任意 3D 点时投影到三平面、采样、求和,再喂一个极小 MLP 出密度+颜色。3D 生成一下变得又便宜又高质。

用三张 2D 平面($O(3R^2)$)替代稠密体素($O(R^3)$),是整个时代被复用最多的一个想法

GET3D— A Generative Model of High Quality 3D Textured Shapes Learned from Images
NeurIPS 2022 Gao, Shen, ... Fidler · NVIDIA · arXiv:2209.11163

前面那些都只能渲图,给不了游戏能直接用的带纹理网格

关键想法:triplane SDF + 纹理场,接 DMTet 可微取面 + 可微渲染,在 2D 上对抗训练,直接吐带纹理 mesh

第一次把 triplane(来自 EG3D)和 DMTet(来自 NeurIPS'21)拼起来端到端出网格——这个组合后来在 Fantasia3D、InstantMesh、MeshLRM 反复出现。

§2.4第一波 3D 扩散 · 通往现代的桥

2022 年底,扩散模型涌入 3D,分裂成两条今天仍在主导的路线:"原生 3D 扩散""把 2D 扩散当先验"

DreamFields— Zero-Shot Text-Guided Object Generation with Dream Fields
CVPR 2022 Jain et al. · Berkeley / Google · arXiv:2112.01455

没有任何 3D 训练数据,怎么从文字生成 3D(痛点 a)?

关键想法:逐 prompt 优化一个 NeRF,让它的多视图渲染最大化 CLIP 相似度。这套"逐场景优化 / 蒸馏"的配方,被 DreamFusion 原样继承、只把 CLIP 换成扩散模型。

SDS(Part III)的直接前身——只差把 CLIP 评委换成扩散评委。

Point-E / Shap-E— 点云扩散 → 隐式函数参数扩散
2022–2023 Nichol, Jun et al. · OpenAI · arXiv:2212.08751 · 2305.02463

DreamFields 一个 prompt 要优化几小时(痛点 d)。

关键想法:Point-E 走"文本→合成图→图像条件的点云扩散",几分钟出结果(牺牲质量换 ~100× 速度);Shap-E 更进一步,直接扩散一个隐式函数(NeRF+mesh)的参数。"扩散一个 3D 表示"的雏形。

第一批前馈、原生 3D 的扩散生成器;但点云 / MLP 权重这两个 latent 都不好 scale,很快被 vecset 取代。

同一波里还有 NFD(triplane 上跑标准 2D 扩散)、LION(latent 点云扩散)、DiffRF(体素辐射场扩散)、 GAUDI(场景级 latent 扩散)、Diffusion-SDF。它们各押了一种 latent(triplane / 点 / voxel / MLP 权重), 谁都没赢——直到 2023 年初 3DShape2VecSet 给出了那个对的答案:vecset。那是 Part VI 的开篇。

史前史留给现代的四样东西

① triplane(EG3D → NFD、LRM、Direct3D)· ② auto-decoder 隐式场(DeepSDF → 3DShape2VecSet、Shap-E)· ③ DMTet 可微取面(GET3D → Fantasia3D、InstantMesh)· ④ 逐场景蒸馏(DreamFields → DreamFusion 的 SDS)。 其余的 voxel-GAN、点云扩散都只是脚注。把这四样记住,下面四部就有了根。