3D资产生成
3D 资产生成(3D Generation)让 AI 从文本或几张图直接产出三维模型——可旋转、可打光、可放进游戏引擎。它是生成式 AI 在 2023 年后最重要的扩张方向之一,到 2025 年已进入”秒级出高质量可编辑资产”的实用阶段:微软的 TRELLIS(CVPR 2025 Spotlight)和腾讯的 Hunyuan3D 2.x 系列都能在消费级 GPU 上、十几秒内从单张图生成带纹理的高质量 3D 网格,且完全开源。本页梳理从 NeRF 到 3D Gaussian Splatting、再到大规模可微渲染、原生 3D 扩散与 Flow Matching 的完整技术谱系。前置阅读:扩散模型、多模态与视觉语言模型。
想象你想”捏”出一个 3D 茶壶。传统建模要用 Blender 一点一点拉顶点,而 3D 生成有几条完全不同的路子:
- NeRF = 在三维空间里学一个”密度场”:把场景看作一团 3D 云,每个点有一个颜色和一个密度。从任意角度看过去,沿着视线”穿”过去累加,就能渲染出照片级画面——但它是隐式的(不直接给出网格或点云),不能直接导出给游戏引擎用。
- 3D Gaussian Splatting = 在空间里撒一堆彩色水母:用上百万个带颜色、透明度、大小的椭球(高斯点),从相机看过去把它们”摊平”到屏幕上。比 NeRF 快得多,还容易编辑——每个高斯点可以独立移动、删除或改色。
- 可微渲染 + 优化 = 让 2D 评分倒推 3D 形状:固定一个 2D 评分模型(比如图像分类器或扩散模型的似然),让它对”从各个角度渲染出来的图”打分,分数反过来调整 3D 表示,直到每个角度都”看起来像”提示词描述的物体。这里的”可微”指的是整个渲染管线(从 3D 表示到 2D 像素)都能求导,这样 2D 损失的梯度才能一路回传到 3D 参数。
- 原生 3D 扩散 / Flow Matching = 直接在 3D 数据上训生成模型:像图像扩散那样,但生成对象是点云、体素、三平面(triplane,三个正交平面的特征图叠成 3D 特征)或向量集(VecSet,一组 latent 向量表示形状)——一次前向就出 3D,不用逐场景优化。2024-2025 年的主流方法已从传统 DDPM 去噪扩散转向 Rectified Flow(整流流)/ Flow Matching:不模拟”逐步加噪→逐步去噪”的弯路,而是直接学一条从噪声到数据的直线路径,训练更稳定、推理更快。
一句话:NeRF/3DGS 解决”怎么表示和渲染 3D”,可微渲染解决”怎么用 2D 监督优化 3D”,原生 3D 扩散/Flow Matching 解决”怎么一次性生成 3D”。 这三条路线在 2025 年已经深度融合——比如 TRELLIS 先用 Flow Matching 生成统一的 SLAT 表示(一种稀疏 3D 格点 + 多视角特征的混合表示),再按需解码成 NeRF、3DGS 或网格;Hunyuan3D 2.x 则采用”形状 DiT + 纹理 Paint”两阶段流水线,先出裸模再上色,兼顾速度和质量。
术语速查:
- 扩散过程(Diffusion Process):给数据逐步加高斯噪声直到变成纯噪声,然后训练模型学会”去噪”——反向走回去就能从噪声生成数据。
- 潜空间(Latent Space):用一个 encoder 把高维数据(如 3D 形状)压缩到低维向量空间,在这个紧凑空间里做生成,再由 decoder 还原。类比:ZIP 压缩后再传输,比传原始文件快得多。
- Flow Matching / Rectified Flow(整流流):DDPM 式扩散走的是”逐步加噪→逐步去噪”的弯路;Flow Matching 直接学一条从噪声分布到数据分布的直线传输路径(即”整流”),训练更稳定、采样步数更少,2024-2025 年已成为 3D 生成的主流生成范式。
1. 神经辐射场 NeRF
Section titled “1. 神经辐射场 NeRF”NeRF(Mildenhall et al., 2020)用一个 MLP 拟合一个连续函数 F(x, y, z, 视角方向) = (RGB 颜色, 密度 sigma)。给定一堆带位姿的照片,训练这个 MLP,使从每个位姿”渲染”出来的图和真实照片一致。
渲染采用体渲染公式:对每条光线,从近到远采样 N 个点,颜色按密度加权累加:
C(r) = 对 t 求和 T(t) * (1 - exp(-sigma(t)*dt)) * c(t)
其中 T(t) = exp( 负的从近端到 t 的累积密度 ),表示”光线还没被挡住的比例”。这保证遮挡关系正确——前面的物体盖住后面的。
NeRF 的痛点:训练慢(单个场景几小时)、存储大、不能编辑、不能跨场景泛化。
2. 3D Gaussian Splatting
Section titled “2. 3D Gaussian Splatting”3DGS(Kerbl et al., 2023)把场景表示为一组3D 高斯点,每个点有:中心位置(3 维)、协方差(控制椭球形状,3 维缩放 + 4 维四元数)、不透明度 alpha(1 维)、球谐系数(控制视角相关颜色)。
渲染用”泼溅(splatting)“:把每个 3D 高斯投影到屏幕变成 2D 高斯,按深度排序,alpha 混合。因为有解析投影公式,渲染速度比 NeRF 快 10 到 100 倍,且每个高斯可独立编辑/删除。
3. 用 2D 先验优化 3D:DreamFusion 与 Score Distillation
Section titled “3. 用 2D 先验优化 3D:DreamFusion 与 Score Distillation”关键问题:3D 监督数据稀缺,但 2D 图像模型(Stable Diffusion 等)已经很强。DreamFusion(Poole et al., 2022)提出 Score Distillation Sampling(SDS):
- 初始化一个 3D 表示(NeRF 或 3DGS)。
- 随机选一个相机角度,把 3D 渲染成 2D 图。
- 加噪后喂给 2D 扩散模型,得到噪声预测。
- 用扩散模型的分数(梯度方向)通过可微渲染回传,更新 3D 表示。
这样不需要任何 3D 标注,只用 2D 扩散模型当”老师”,就能从文本生成 3D。缺点是纹理常有”多面 Janus”问题(每个角度都生成一个正面)。
4. 原生 3D 扩散与 Flow Matching:一次前向出模型
Section titled “4. 原生 3D 扩散与 Flow Matching:一次前向出模型”另一种思路是在 3D 数据集(如 Objaverse,一个包含 80 万+ 3D 模型的大规模开源数据集)上直接训生成模型,不走逐场景优化的老路。
表示方式的演进是理解这条路线的关键:
- 体素(Voxel):3D 像素网格,最直观但内存爆炸(256³ 就要几千万个格子)。
- 点云(Point Cloud):一组 (x, y, z) 坐标点,轻量但缺少拓扑连接关系。
- 三平面(Triplane):三个正交平面(XY、YZ、ZX)各存一张特征图,叠起来就能表示任意 3D 位置的特征。比体素紧凑几个数量级,是 2023-2024 年的主流隐空间。这里的”隐空间”指:先把 3D 形状编码成三平面特征图(encoder 负责),生成模型在这个低维空间里操作,最后 decoder 再把三平面变回 3D。
- SLAT(Structured LATent,结构化隐变量):微软 TRELLIS(2024)提出的统一表示。核心思想:不把 3D 压成一个均匀的体素网格,而是只保留物体实际占用的稀疏格点(sparse 3D grid),每个格点上挂载从 DINOv2 等视觉基础模型提取的多视角特征。这样既紧凑又信息丰富,更关键的是——同一个 SLAT 可以用不同 decoder 解码成 NeRF、3D Gaussian Splatting 或网格,用户按需选择输出格式。
- 向量集(VecSet):把 3D 形状编码为一组 latent 向量(如 2048 个 1024 维向量),Hunyuan3D 等采用。比三平面更紧凑,适合 Transformer 处理。
生成模型的演进同样重要:
- 早期 DDPM 去噪扩散(Shap-E、Point-E 等 2023 年工作):用经典的逐步去噪范式,需要几十到上百步采样,速度慢且细节有限。
- Rectified Flow / Flow Matching(2024-2025 主流):TRELLIS 和 Hunyuan3D 2.x 都采用这一范式。直觉理解:DDPM 像醉汉走路——从噪声到数据的路径弯弯曲曲、步数多;Rectified Flow 把这条路”拉直”,学一个从噪声到数据的线性速度场,几步就能走完。数学上,Flow Matching 学的是向量场 v(x, t),使得从 t=0 的噪声分布沿 v 积分到 t=1 时刚好落在数据流形上。相比 SDS 方法,原生 3D Flow Matching 的”多面 Janus”问题也大幅缓解,因为模型直接在 3D 数据上学习全局结构一致性。
两阶段流水线(2025 年工业标配):TRELLIS 和 Hunyuan3D 2.x 都发现,把形状和纹理解耦生成效果更好:
- 形状阶段:输入条件图(或文本),Flow Matching 在 3D 隐空间去噪,输出裸几何体(mesh 或 SLAT)。
- 纹理阶段:给定裸几何体 + 条件图,扩散模型在 UV 空间或多视角投影上生成纹理贴图(texture map)。
这种解耦的好处是:形状模型可以专注于几何精度,纹理模型可以专注于材质质感(包括 PBR 材质——基于物理的渲染材质,包含粗糙度、金属度、法线等通道),两者各司其职。Hunyuan3D 2.1(2025 年 6 月)进一步加入了完整的 PBR 生成模型和 VAE encoder,实现端到端可训练。
劣势是:相比 SDS 逐场景优化,原生 3D 生成的极端细节(如布料褶皱、毛发)仍逊一筹,但对于绝大多数游戏、电商、设计场景已经够用。
5. 单图/多图重建
Section titled “5. 单图/多图重建”给定一张或多张物体照片,重建 3D 是 3D 生成最实用的入口。技术路线经历了从”基于图像的渲染”到”前馈式神经网络重建”的范式转变:
- 早期 IBR(Image-Based Rendering):用多张照片做立体匹配和视差合成,效果受限、无法补全背面。
- LRM 范式(Large Reconstruction Model, 2023):关键突破。把单图重建当作一个 sequence-to-sequence 问题——用 ViT(Vision Transformer)编码图像为 token 序列,用一个大型 Transformer decoder 直接回归出三平面表示(triplane),再通过可微渲染解码成 3D。整个管线是前馈式(feedforward)的,一次前向就出模型,不需要测试时优化。LRM 在 50 万个 3D 模型上训练,几秒内就能从单图重建出可用的 3D。
- TripoSR(2024):Tripo AI 与 Stability AI 联合出品,基于 LRM 原理但做了大量工程优化(改进的 camera conditioning、通道数扩展、更高效的 marching cubes),在 A100 上 0.5 秒内完成单图到 3D,质量超过同期所有开源方案。MIT 许可证开源。
- 多视角重建:给定 2-6 张不同角度的照片(或先用多视角扩散模型生成),重建质量大幅提升。Hunyuan3D-2mv(2025 年 3 月)就是专门的多视角版本,TRELLIS 也支持免训练的多图条件。
- 粗模 + 精修管线:2025 年的主流做法是先用前馈模型(TripoSR / TRELLIS / Hunyuan3D-DiT)秒出粗模,再用 SDS 或多视角扩散模型精修纹理和几何。这就是商用平台(Tripo、Meshy、Rodin)的典型管线。
NeRF 体渲染原理
Section titled “NeRF 体渲染原理”3D 生成的四条技术路线
Section titled “3D 生成的四条技术路线”两阶段流水线(TRELLIS / Hunyuan3D 范式)
Section titled “两阶段流水线(TRELLIS / Hunyuan3D 范式)”上图展示了 2025 年主流的”形状 + 纹理”两阶段流水线。其中 DiT(Diffusion Transformer)指用 Transformer 架构做扩散/Flow Matching 的去噪器,每个 token 对应 3D 隐空间中的一个位置;cross-attention 机制让条件图像的特征注入到生成过程中,控制输出形状与输入图对齐。
PyTorch3D:可微渲染最小示例
Section titled “PyTorch3D:可微渲染最小示例”import torchfrom pytorch3d.renderer import ( PerspectiveCameras, RasterizationSettings, MeshRenderer, MeshRasterizer, TexturesVertex, PointLights, PhongPhongShader)from pytorch3d.structures import Meshesfrom pytorch3d.io import load_obj
# 加载一个网格,顶点设为可优化(这是"用 2D 损失倒推 3D"的基础)verts, faces, _ = load_obj("teapot.obj")verts_rgb = torch.ones_like(verts)[None] # 白色材质textures = TexturesVertex(verts_features=verts_rgb)mesh = Meshes(verts=[verts], faces=[faces.verts_idx], textures=textures)mesh.offset_verts_(torch.zeros_like(verts).requires_grad_(True)) # 顶点可微
# 一个相机 + Phong 着色渲染器(整个过程可求导)cameras = PerspectiveCameras(focal_length=500, device=verts.device)raster = MeshRasterizer(cameras=cameras, raster_settings=RasterizationSettings(image_size=256))renderer = MeshRenderer(rasterizer=raster, shader=PhongPhongShader( cameras=cameras, lights=PointLights(device=verts.device, location=[[0, 0, -3]])))image = renderer(mesh) # 渲染出图,梯度可回传到 vertsloss = ((image[..., :3] - target_image) ** 2).mean()loss.backward() # 梯度直接流到 3D 顶点print("可微渲染损失:", loss.item())- 选对表示:要照片级真实感且场景固定,选 NeRF;要快速渲染和可编辑,选 3D Gaussian Splatting;要文本直出可批量,选原生 3D 扩散。
- SDS 的”多面 Janus”问题:2D 模型偏爱正面视角,导致生成的 3D 每个角度都像个正面。缓解办法:加视角文本提示(“side view”、“back view”)、用多视角一致的扩散模型。
- 粗模 + 精修是工业标配:先用原生 3D 扩散秒出粗模,再用 SDS 或多视角图精修纹理,兼顾速度和质量。
- 数据是瓶颈:高质量 3D 资产数据远少于 2D 图像,Objaverse、GObjaverse 是当前主要开源来源。合成数据(用 Blender 渲染)是重要补充。
- 拓扑和 UV 是导出难题:扩散出的隐式表示(点云、体素、SDF)要转成游戏引擎能用的干净网格 + UV 贴图,常用 marching cubes + 网格重拓扑工具。
- 游戏与影视美术:用文本或概念图快速生成道具、建筑、角色的粗模,美术再精修,大幅缩短资产生产周期。Epic、腾讯等已在内部工具链集成。
- 电商 3D 展示:把商品照片转成可旋转 3D 模型,用于 AR 试穿、3D 详情页。Amazon、淘宝均有相关功能。
- 建筑与工业设计:从草图或文本生成建筑体量模型,用于方案探索和客户汇报。
- VR/AR 内容:NeRF/3DGS 把实景扫描变成可在 VR 中漫游的数字孪生,用于看房、博物馆数字化。
- 数字人与虚拟形象:从几张照片重建可驱动的 3D 人头,用于直播虚拟主播、元宇宙社交。
典型类库与工具
Section titled “典型类库与工具”| 类库 | 语言 | 说明 |
|---|---|---|
| Nerfstudio | Python | Nerfstudio 项目,集成 NeRF/3DGS 训练与可视化,学术界标准工具链 |
| gsplat | Python | 高性能 3D Gaussian Splatting 库,支持训练与实时渲染 |
| PyTorch3D | Python | Meta 的 3D 深度学习库,提供可微渲染、网格/点云操作 |
| Three.js | JavaScript | 浏览器端 3D 渲染,常用于在网页展示生成的 glTF/glb 模型 |
| threestudio | Python | 统一框架,集成 DreamFusion/ProlificDreamer 等 SDS 类方法 |
| Tripo / Meshy / Rodin | 在线服务 | 商用 3D 生成平台,文本/图像直出可下载的 3D 资产 |
| 术语 | 英文 | 解释 |
|---|---|---|
| 神经辐射场 | NeRF | 用 MLP 表示 3D 场景的颜色和密度场,通过体渲染合成新视角 |
| 体渲染 | Volume Rendering | 沿光线对密度加权累加颜色的渲染方法,保证正确遮挡 |
| 3D 高斯泼溅 | 3D Gaussian Splatting | 用一组 3D 高斯椭球表示场景,投影到屏幕 alpha 混合渲染 |
| 可微渲染 | Differentiable Rendering | 渲染过程可求导,让 2D 损失能回传梯度优化 3D 表示 |
| 分数蒸馏采样 | SDS / Score Distillation | 用 2D 扩散模型的分数当梯度,优化 3D 表示(DreamFusion 核心思想) |
| 三平面 | Triplane | 用三个正交平面特征图紧凑表示 3D,扩散生成的常用隐空间 |
| 多面 Janus | Janus Problem | SDS 生成 3D 时每个角度都生成一个正面,导致结构错乱 |
| glTF / glb | glTF / glb | 业界标准的 3D 资产交换格式,游戏引擎和网页通用 |
- Mildenhall et al., “NeRF: Representing Scenes as Neural Radiance Fields” (ECCV 2020):NeRF 开山之作,用 MLP + 体渲染实现照片级新视角合成,引爆神经渲染领域。
- Kerbl et al., “3D Gaussian Splatting for Real-Time Radiance Field Rendering” (SIGGRAPH 2023):3DGS 论文,用高斯点实现实时高质量渲染,迅速成为 NeRF 的强力替代。
- Poole et al., “DreamFusion: Text-to-3D using 2D Diffusion” (ICLR 2023):提出 SDS,首次用 2D 扩散模型的分数优化 3D,无需 3D 标注,文本生成 3D 的奠基工作。
- Lin et al., “Magic3D: High-Resolution Text-to-3D Content Creation” (CVPR 2023):NVIDIA 的双阶段方法,粗模 + 高分辨率精修,显著提升纹理质量。
- Hong et al., “LRM: Large Reconstruction Model for Single Image to 3D” (ICLR 2024):大规模单图重建 Transformer,几秒内从一张图预测出完整 3D,推动通用 3D 重建。