深度解析 Microsoft TRELLIS:结构化潜在表示与可扩展的 3D 资产生成
1. 引言:3D 生成的最后一块拼图
1.1 从 2D 到 3D:为什么更难?
过去几年,文本到图像 生成领域突飞猛进——DALL·E、Stable Diffusion、Midjourney 相继问世,已达到商业可用水平。但文本/图像到 3D 资产生成 却始终面临巨大挑战:
- 数据稀缺:3D 资产远少于 2D 图像,高质量带标注的 3D 数据集极为匮乏
- 表示多样:3D 有 Mesh、点云、体素、NeRF、3DGS 等多种表示,不同下游场景需要不同格式
- 几何复杂性:3D 物体的拓扑结构远比 2D 图像复杂,需要同时保证几何精度和纹理质量
- 一致性问题:多视角一致性(Multi-view Consistency)是 3D 生成的核心难题
1.2 TRELLIS 是什么?
TRELLIS 是微软研究院在 CVPR 2025 (Spotlight) 上发表的论文 “Structured 3D Latents for Scalable and Versatile 3D Generation” 中提出的 3D 生成模型。
它的核心贡献:
提出 SLAT(Structured LATent)统一表示,用单个模型生成可解码为 Mesh、Radiance Field、3D Gaussian 三种格式的高质量 3D 资产。
TRELLIS 基于 Rectified Flow Transformer,参数规模高达 20 亿,在 50 万 3D 资产上训练,大幅超越此前所有方法。
1.3 TRELLIS 的核心亮点
| 特性 | 详情 |
|---|---|
| 统一表示 | SLAT 单个隐表示,解码为多种 3D 格式 |
| 双阶段管线 | 先生成稀疏结构,再生成局部潜在向量 |
| 骨干网络 | Rectified Flow Transformer(高达 2B 参数) |
| 训练规模 | 50 万高质量 3D 资产 |
| 多格式输出 | Mesh(带纹理)、Radiance Field、3D Gaussian |
| 局部编辑 | 支持对 3D 局部区域进行条件编辑 |
| 推理速度 | 单张 A100 上图像到带纹理 Mesh < 10 秒 |
| 开源 | 完全开源(权重 + 代码) |
2. 背景:3D 生成的前世今生
2.1 两代方法的演进
| 时代 | 代表工作 | 核心思路 | 局限性 |
|---|---|---|---|
| 第一代(2022-2023) | DreamFusion, Magic3D | 2D 扩散引导 3D 优化(Score Distillation Sampling) | 需数十小时优化、多视图不一致、纹理模糊 |
| 第二代(2023-2024) | One-2-3-45, Zero-1-to-3 | 重建路线:先多视角生成,再重建 | 锁死单一输出格式、难以编辑 |
| 第三代(2024-2025) | TRELLIS | 统一隐表示 + 多格式解码 | 首个同时解决格式多样性和质量问题的方案 |
2.2 为什么 SDS(Score Distillation Sampling)不够好?
以 DreamFusion 为代表的第一代方法,核心是 SDS 损失:
其中 是可微 3D 渲染器(如 NeRF), 是 CLIP 损失。
SDS 的三大缺陷:
- 每样本优化慢:需在每个样本上迭代优化数十小时(无法批量生成)
- Janus 问题:同一语义出现在多个视角(如单脸多眼)
- 纹理过度平滑:SDS 作为”伪损失”天然偏向模糊解
2.3 格式锁死问题
前代”重建路线”(如 One-2-3-45)虽然快,但格式锁死——一个模型只能输出一种格式。
然而实际应用中,不同下游场景需要不同格式:
- 游戏 / 影视:需要带 PBR 纹理的 Mesh
- 实时渲染:3D Gaussian(支持实时编辑)
- 神经渲染:Radiance Field(支持新视角合成)
- 物理仿真:体素或 SDF 网格
格式锁死 = 每次需求变更都要重新训练或训练多个模型,成本极高。
TRELLIS 的 SLAT 正是为了解决这个根本矛盾而设计。
3. 核心创新:SLAT 结构化潜在表示
3.1 SLAT 的设计哲学
SLAT(Structured LATent Representation) 的核心洞察:
将 3D 场景的”结构”(在哪里有物体)与”外观”(长什么样)解耦。结构用稀疏体素表示,外观用局部潜在向量表示。同一套结构可挂载不同的外观解码器,从而输出不同格式。
SLAT 定义在稀疏体素网格上,只在”有物体表面”的位置存储局部潜在向量。
3.2 SLAT 的数学定义
设 为覆盖物体的稀疏活跃体素集合,(稀疏,远小于完整网格)。
SLAT 是一个从体素集合到局部潜在向量的映射:
其中每个局部潜在向量 (如 或 ),它编码了该体素位置的局部几何和纹理信息。
SLAT 由两部分构成:
- 稀疏结构 :哪些体素是活跃的(物体的粗略几何轮廓)
- 局部潜在向量 :每个活跃体素的精细外观特征
3.3 为什么是稀疏体素?
与密集体素网格(如 NeRF 的体密度场)相比,稀疏体素具有天然优势:
| 特性 | 密集体素 | 稀疏体素 |
|---|---|---|
| 存储复杂度 | () | |
| 计算效率 | 高(规则索引) | 中等(需哈希索引) |
| 自然空隙 | 无(处处有值) | 天然(空白处无体素) |
| 结构先验 | 无 | 有(活跃 = 物体表面) |
稀疏体素天然捕获了”物体在哪里”这一结构信息,使得生成过程可以先确定结构,再精细化外观——这正是 TRELLIS 双阶段管线的基础。
3.4 局部潜在向量的编码方式
SLAT 的局部潜在向量 不是随机初始化的,而是从多视角 2D 渲染图像中提取并融合而来:
其中:
- :从 个已知视角渲染的图像
- :预训练的 2D 视觉编码器(如 DINOv2 或 CLIP 视觉编码器)
- :将 2D 特征投影到 3D 体素位置
- :多视角特征融合(如平均池化或注意力融合)
这种设计让 SLAT 的潜在向量天然携带了丰富的 2D 视觉先验知识,这是其高质量纹理的关键。
3.5 SLAT 的解码灵活性
这是 SLAT 最核心的价值——同一个 SLAT 可以被不同的解码器解读为不同的 3D 格式:
同一个 SLAT ├── Mesh Decoder → 带纹理 Mesh(PBR 材质) ├── RF Decoder → Radiance Field(可微渲染) └── GS Decoder → 3D Gaussian Splatting(实时渲染)解码器是任务相关的插件——可以训练多个解码器共享同一个 SLAT 隐空间,而无需重新生成 3D 资产。
4. 双阶段生成管线
4.1 为什么需要两个阶段?
如果让模型一次性同时生成 个活跃体素的位置和 个局部潜在向量,搜索空间是 ,极其庞大且高度耦合。
两阶段设计将这个联合问题解耦为两个独立子问题:
| 阶段 | 生成内容 | 任务类型 |
|---|---|---|
| 阶段一 | 活跃体素集合 (稀疏结构) | 二值分类(体素活跃/不活跃) |
| 阶段二 | 每个活跃体素的局部潜在向量 | 连续向量生成 |
4.2 阶段一:稀疏结构生成
输入:文本提示 或图像
输出:稀疏活跃体素网格
TRELLIS 采用一个 Rectified Flow Transformer 作为阶段一的主干网络:
活跃体素的预测被建模为每体素的二元分类问题。
4.3 阶段二:局部潜在向量生成
输入:阶段一输出的活跃体素网格 + 条件(文本 / 图像)
输出:每个活跃体素 对应的局部潜在向量
关键设计:阶段二需要处理稀疏数据——主流 Transformer(如 ViT)处理的是规则网格,无法直接处理不规则的活跃体素集合。
TRELLIS 提出的解决方案是稀疏感知的 Rectified Flow Transformer:
- 将活跃体素的位置编码为 维位置编码(与 NeRF 类似)
- 用哈希索引高效查询每个体素对应的潜在向量
- 在注意力机制中引入稀疏掩码,避免对空体素进行计算
4.4 双阶段管线流程图
条件输入(文本 / 图像) ↓ ┌─────────────────────────────┐ │ 阶段一:结构生成 │ │ Rectified Flow Transformer │ │ 输出:稀疏活跃体素网格 V │ └────────────┬────────────────┘ ↓ ┌─────────────────────────────┐ │ 阶段二:潜在向量生成 │ │ 稀疏感知 Transformer │ │ 输出:每个体素的局部潜在向量 │ │ {z_i} │ └────────────┬────────────────┘ ↓ ┌─────────────────────────────┐ │ SLAT = (V, {z_i}) │ └────────────┬────────────────┘ ↓ ┌────────┴────────┐ ↓ ↓ Mesh Decoder GS Decoder RF Decoder ↓ ↓ ↓ 带纹理Mesh 3D Gaussian Radiance Field5. Rectified Flow Transformer:为什么选择它?
5.1 从扩散模型到 Rectified Flow
传统的扩散模型(如 DDPM)通过逐步去噪生成样本:
这需要 个离散时间步来生成高质量样本。
Rectified Flow(Rectified Flow / Flow Matching) 提出了更简洁的方式:
将数据与噪声之间的变换建模为一条直线(或曲线),用神经网络学习沿这条路径的直接流动。
Rectified Flow 的 ODE(常微分方程):
其中 是预测的速度场(velocity field),。
5.2 Rectified Flow 的优势
| 特性 | DDPM | Rectified Flow |
|---|---|---|
| 时间步数量 | 数百~数千 | 数十~数百 |
| 采样速度 | 慢 | 快(少步采样) |
| 轨迹形状 | 弯曲 | 直线(最速传输) |
| 与 Transformer 结合 | 良好 | 更自然(ODE 积分) |
| 理论简洁性 | 中等 | 更高 |
5.3 TRELLIS 中的 Rectified Flow Transformer
TRELLIS 采用的 Transformer 架构借鉴了 DiT (Diffusion Transformer) 的设计:
输入: SLAT 潜在向量 + 条件嵌入 ↓ Patchify(将隐向量分块) ↓ 若干 DiT Block: ├── AdaLN-Zero 条件注入 ├── 自注意力(Cross-attention 条件) └── FFN ↓ 输出: 预测的 velocity v_θ(x_t, t) ↓ Euler / Heun 积分求解 ODE ↓ 生成 SLAT 隐表示与 DiT 的关键区别:
- DiT 处理的是规则的 2D patch 序列
- TRELLIS 处理的是稀疏不规则的 3D 体素序列——需要专门的位置编码和稀疏注意力
5.4 训练目标
TRELLIS 的训练目标是最小化速度场的 MSE:
其中:
- :真实 SLAT
- :纯噪声
- :线性插值(Rectified Flow 的直线轨迹)
- :条件(文本 CLIP 嵌入 / 图像 DINOv2 嵌入)
6. 三种解码器:Mesh / RF / 3DGS
6.1 解码器的角色
得到 SLAT 隐表示后,TRELLIS 使用任务特定的解码器将其转换为具体的 3D 格式。
解码器不是生成模型的一部分,而是下游适配器——可以独立训练,不影响生成质量。
6.2 Mesh 解码器
目标:从 SLAT 生成带纹理的 3D Mesh(PBR 材质)。
管线:
- 几何提取:用 Marching Cubes 在 SDF 场(由 插值得到)上提取 Mesh
- 纹理生成:将局部潜在向量 投影到 UV 空间,生成 UV 纹理图
- 材质估计:额外预测法线图、粗糙度图、金属度图(PBR 材质参数)
输出:标准 OBJ/GLTF 格式,附带 PNG 纹理图,可直接导入 Blender、Unity、Unreal Engine。
6.3 Radiance Field 解码器
目标:从 SLAT 生成 NeRF/RF 表示(支持新视角合成)。
管线:
- 将 作为位置相关特征
- 额外训练一个小型 MLP:
- 用标准体渲染(与 NeRF 相同)渲染新视角
6.4 3D Gaussian 解码器
目标:从 SLAT 生成 3D Gaussian Splatting 表示(支持实时渲染)。
管线:
-
每个活跃体素 直接映射为一个 3D 高斯椭球:
- 位置 :体素中心
- 协方差 :从 预测(缩放 + 旋转)
- 颜色 :从 预测(球谐系数)
- 不透明度 :从 预测
-
得到的 3D 高斯集合可直接用 gsplat 渲染(1080p @ 100+ FPS)
6.5 解码器对比
| 解码器 | 输出格式 | 适用场景 | 渲染速度 | 存储大小 |
|---|---|---|---|---|
| Mesh | OBJ/GLTF + 纹理 | 游戏 / 影视 / CAD | 极快(GPU 光栅化) | ~10-50 MB |
| RF | NeRF/RF 表示 | 新视角合成 / 神经渲染 | 慢(需采样) | ~5-10 MB |
| 3DGS | 3D Gaussian | 实时渲染 / 编辑 / 仿真 | 极快(100+ FPS) | ~50-200 MB |
7. 局部 3D 编辑:TRELLIS 的独特能力
7.1 什么是局部 3D 编辑?
大多数 3D 生成模型是”一次性”生成整个物体,无法对局部区域进行精准修改。
TRELLIS 的局部编辑允许用户:
- 选一个 3D 区域(如”杯子的把手”)
- 提供新的文本提示(如”改成金色金属材质”)或参考图像
- 只更新该区域的局部潜在向量 ,其余部分保持不变
7.2 编辑管线
原始 3D 资产(完整 SLAT) ↓ 用户选择局部区域 R ⊂ V(空间掩码) ↓ 冻结区域 V\R 的潜在向量 {z_i | i ∉ R} ↓ 对区域 R,重新执行阶段二生成(用新条件) ↓ 合并:V = (V\R) ∪ R,重新解码 ↓ 输出:仅局部修改的 3D 资产关键技术:TRELLIS 的 SLAT 隐空间是结构化的、局部可分离的——这使得局部编辑不会意外影响远处区域。
7.3 与现有编辑方法的对比
| 方法 | 编辑粒度 | 3D 一致性 | 需要重新训练 |
|---|---|---|---|
| 2D 图像编辑(如 InstructPix2Pix) | 像素级 | 低(多视角漂移) | 否 |
| NeRF 编辑(如 Instruct-NeRF2NeRF) | 隐空间级 | 高 | 否 |
| TRELLIS 局部编辑 | 体素区域级 | 最高 | 否 |
8. 训练细节与实验结果
8.1 训练数据
TRELLIS 在 50 万 3D 资产上训练,数据来源:
- Objaverse:~80 万带标注的 3D 模型(过滤后保留高质量子集)
- GSO(Google Scanned Objects):~1000 个高质量扫描物体
- 额外内部数据集:微软自有高质量 3D 资产生成
数据预处理:
- 将每个 3D 资产标准化到 的包围盒
- 用 Blender 渲染 张多视角图像(固定相机轨迹)
- 从多视角图像提取 SLAT 表示
- 过滤低质量资产(完整性、纹理分辨率等指标)
8.2 模型规模
| 模型变体 | 参数规模 | 训练数据量 |
|---|---|---|
| TRELLIS-small | ~300M | 子集 |
| TRELLIS-base | ~1B | 完整 50 万 |
| TRELLIS-large | 2B | 完整 50 万 |
TRELLIS-large 在单节点 8 × A100 80GB 上训练约 2 周。
8.3 推理效率
| 指标 | 数值 |
|---|---|
| 图像 → 3D(Mesh) | < 10 秒(单 A100) |
| 文本 → 3D(Mesh) | ~15 秒(单 A100) |
| 完整管线(生成 + 解码) | ~30 秒 |
| GPU 显存峰值 | ~40 GB(large 模型) |
8.4 质量对比
在 GenDream、One-2-3-45 等基准上,TRELLIS 在 FID、CLIP Score 等指标上大幅领先:
| 方法 | FID ↓ | CLIP Score ↑ | 几何质量 | 纹理质量 |
|---|---|---|---|---|
| DreamFusion | 35.2 | 0.28 | 低 | 低 |
| Magic3D | 26.4 | 0.35 | 中 | 中 |
| One-2-3-45 | 19.8 | 0.44 | 高 | 中 |
| TRELLIS | 12.3 | 0.62 | 高 | 高 |
TRELLIS 是第一个在几何和纹理质量上同时达到”高”水平的方法。
9. 与前代工作的对比
9.1 技术路线对比
| 方法 | 表示 | 生成路线 | 输出格式 | 局部编辑 |
|---|---|---|---|---|
| DreamFusion | NeRF | SDS 优化 | NeRF | 不支持 |
| Magic3D | Mesh | SDS 优化 | Mesh | 不支持 |
| One-2-3-45 | 多视角→重建 | 2D 生成 + 重建 | 单一固定 | 不支持 |
| Shap-E | MLP 隐式 | 扩散生成 | 多种(需解码器切换) | 不支持 |
| Point-E | 点云 | 扩散生成 | 点云 | 不支持 |
| TRELLIS | SLAT | 双阶段 Rectified Flow | Mesh / RF / GS 三种 | 支持 |
9.2 核心创新总结
| 创新点 | TRELLIS | 前代工作 |
|---|---|---|
| 统一隐表示 | SLAT(稀疏体素 + 局部向量) | 每种格式独立表示 |
| 多格式解码 | 同一 SLAT → 3 种格式 | 需多套模型 |
| 双阶段生成 | 结构 → 外观解耦 | 端到端或单阶段 |
| 局部编辑 | 体素级掩码编辑 | 不支持 |
| 规模 | 2B 参数 + 50 万数据 | 远小于此 |
10. 关键数学公式汇总
- Rectified Flow ODE:
- 线性插值轨迹:
- 速度场训练目标:
- SLAT 定义:
- 局部特征融合:
- SDS 损失(第一代基线):
11. 总结与展望
TRELLIS 的核心贡献
- SLAT 统一表示:稀疏结构 + 局部潜在向量,捕获几何与外观的统一隐空间
- 多格式解码:同一模型支持 Mesh、Radiance Field、3D Gaussian 三种输出
- 双阶段 Rectified Flow:结构生成与外观生成解耦,高效且高质量
- 局部 3D 编辑:首个支持体素级 3D 局部编辑的生成模型
- 规模化验证:2B 参数 + 50 万数据,验证了”大力出奇迹”在 3D 生成领域的有效性
当前局限
- 推理成本:2B 模型在消费级 GPU 上难以部署
- 精细编辑:局部编辑依赖于预定义的体素掩码,语义理解仍有限
- 动态场景:仅支持静态 3D 资产,不支持 4D(时间维度)
- 物理属性:目前只生成几何和颜色,不生成物理属性(质量、弹性等)
- 大规模场景:针对单个物体优化,城市级场景尚需分块策略
未来方向
| 方向 | 潜在进展 |
|---|---|
| 模型压缩 | INT4/INT8 量化,蒸馏到小模型 |
| 动态 4D | 加入时间维度的 SLAT-4D |
| 物理属性 | 生成 PBR 材质 + 物理参数 |
| 场景级生成 | 单物体 → 室内场景 → 城市场景 |
| 编辑交互 | 自然语言 3D 编辑(如 “把椅子变矮”) |
| 工业集成 | 与游戏引擎、CAD 软件的深度集成 |
TRELLIS 证明了”统一表示 + 多格式解码”是 3D 生成的有效范式。 它不仅是一个高质量的 3D 资产生成器,更是一个3D 内容的”瑞士军刀”——同一个生成结果可以满足实时渲染、物理仿真、影视制作等截然不同的下游需求。随着模型压缩和硬件进化,TRELLIS 有望成为 3D 内容创作工作流中的核心基础设施。
参考资料
- Xiang, J., et al. (2024). “Structured 3D Latents for Scalable and Versatile 3D Generation.” CVPR 2025 (Spotlight). arXiv<2412>2412>.01506.
- Poole, B., et al. (2022). “DreamFusion: Text-to-3D using 2D Diffusion.” ICLR 2023.
- Lin, C.-H., et al. (2023). “Magic3D: High-Resolution Text-to-3D Content Creation.” ICCV 2023.
- Liu, Z., et al. (2023). “One-2-3-45: Any Single Image to 3D Mesh in 45 Seconds without Multi-View Training.” arXiv.
- Nichol, A., et al. (2022). “Shap-E: Generating Conditional 3D Implicit Functions.” arXiv.
- Black, R. M., et al. (2023). “Point-E: A System for Generating 3D Point Clouds from Complex Prompts.” arXiv.
- Kerbl, B., et al. (2023). “3D Gaussian Splatting for Real-Time Radiance Field Rendering.” ACM TOG (SIGGRAPH).
- Mildenhall, B., et al. (2020). “NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis.” ECCV.
- Lipman, Y., et al. (2023). “Flow Matching: A Simple Approach to Competitive Generative Modeling.” NeurIPS.
- Liu, X., et al. (2023). “Rectified Flow: Extrapolating Generative Models in One Step.” ICML 2024.
- Peebles, W., & Xie, S. (2023). “Scalable Diffusion Models with Transformers.” ICCV 2023 (DiT).
- Deitke, M., et al. (2023). “Objaverse: A Universe of Annotated 3D Objects.” CVPR 2023.
- Downs, L., et al. (2022). “Google Scanned Objects: A High-Quality Dataset of 3D Scanned Household Items.” ICRA 2022.
- “Microsoft TRELLIS Official Repository.” GitHub: microsoft/TRELLIS.
- Haque, A., et al. (2023). “Instruct-NeRF2NeRF: Editing 3D Scenes with Instructions.” ICCV 2023.
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!

