3D内容生成正在成为AIGC领域的下一个热点方向。相比2D图像生成的成熟生态,从单张图片或一段文字快速生成可用的3D资产仍然充满挑战。传统基于NeRF的生成方案往往需要对每个场景进行数分钟的优化,难以满足实际生产的需求。LGM(Large Gaussian Model)由SIGGRAPH 2024提出,借助3D高斯溅射(3D Gaussian Splatting)的显式表达与高效光栅化能力,将单图生成3D的时间缩短到几秒钟,是目前速度与质量平衡得较好的开源方案之一。

一、从3D高斯溅射说起:为什么LGM选择高斯表达
要理解LGM的设计思路,首先要理解3D高斯溅射(3D Gaussian Splatting,简称3DGS)这一3D表达方式。3DGS用数百万个带颜色的各向异性高斯椭球来表达场景,每个高斯由中心位置、协方差矩阵(可分解为缩放和旋转)、不透明度和球谐系数表示。渲染时不需要像NeRF那样逐像素发射光线做体渲染积分,而是把所有高斯投影到屏幕空间后做排序与alpha混合,配合定制的CUDA光栅化器,渲染速度可以比NeRF快一到两个数量级。
对生成任务来说,显式表达还有一个关键优势:高斯点云本身就是最终资产,可以直接导出Mesh或直接用于实时渲染,省去了从隐式场提取表面的Marching Cubes步骤。LGM正是看中了这一点,它把原本用于重建的3DGS改造成一个可微的生成目标,让神经网络直接输出大规模高斯点云,从而实现前馈式的快速生成。
二、LGM的核心架构:多视角生成加高斯重建
LGM的整体流程分为两步。第一步是多视角图像生成:使用预训练的文生图或多视角扩散模型(如MVDream、ImageDream),从单张输入图像或文本生成四个固定视角的正交图像,分别为正面、右面、背面和左面。第二步是高斯重建模块(Gaussian Reconstruction Module):一个U型网络(UNet)接收四张不同视角的图像,通过可学习的正交射线采样机制,从特征图中回归出每个视角对应的3D高斯参数,最后把四个视角的高斯合并成完整的高斯点云。
这个设计有一个巧妙之处:训练时用可微渲染计算生成高斯与真实多视角图像之间的损失,本质上是一种从2D扩散模型蒸馏3D知识的过程。相比直接在3D数据上训练,2D先验更丰富,泛化能力更强。推理时整个流程是一次前向传播,不需要任何逐场景优化,这就是LGM能在单张RTX 4090上大约5秒内完成生成的根本原因。
另一个重要技术点是高分辨率高斯上采样。为了支持高保真输出,LGM先把模型在低分辨率高斯数量下训练收敛,再提高输出分辨率生成更多高斯点。由于卷积网络对输入尺寸具有良好的伸缩性,这种两阶段策略避免了直接训练大规模高斯带来的显存与收敛压力,最终输出的高斯数量可达数十万级别。
三、上手实践:安装与推理代码示例
LGM官方提供了完整的开源实现,依赖环境包括PyTorch、diffusers以及定制的3DGS光栅化器。基本安装流程如下:
git clone https://github.com/3DTopia/LGM.git cd LGM pip install -r requirements.txt # 安装高斯光栅化 CUDA 扩展 git clone --recursive https://github.com/ashawkey/diff-gaussian-rasterization pip install ./diff-gaussian-rasterization
推理的核心代码逻辑很简洁:加载预训练的LGM模型和多视角生成模型,输入单张图片,先得到四个视角的图像,再前馈生成高斯参数,最后渲染或导出Mesh:
import torch
from PIL import Image
# 加载输入图像并归一化
image = Image.open("input.png").convert("RGB")
# 第一步:多视角生成,得到四个正交视角图像
multiview_images = image_dream(image) # 输出 [4, 3, 256, 256]
# 第二步:LGM前馈生成高斯参数
with torch.no_grad():
gaussians = lgm_model(multiview_images)
# gaussians 包含每个高斯的位置、缩放、旋转、不透明度与颜色
# 第三步:渲染或导出为Mesh(POLY格式)
render = gaussian_renderer(gaussians, view_matrix)
mesh = gaussians_to_mesh(gaussians)
mesh.export("output.ply")
导出的高斯点云可以通过高斯光栅化直接实时渲染,也可以转换为Mesh后导入Blender、Unity等主流3D软件。需要注意显存需求,使用256分辨率的默认配置大约需要12GB显存,如果显存不足可以降低输入分辨率或减少高斯数量。
四、与主流方案的对比及适用场景
和同类单图生成3D的方案相比,LGM的定位十分清晰。DreamGaussian基于SDS优化加高斯表示,单场景生成需要约1到2分钟;TripoSR采用类似LRM的三平面NeRF结构,速度更快但几何细节相对有限;而LGM在速度上与TripoSR接近,同时借助多视角蒸馏和大规模高斯,在纹理细节和几何完整性上通常表现更好。下表做了简单对比:
| 方案 | 3D表示 | 生成速度 | 纹理质量 |
|---|---|---|---|
| DreamGaussian | 3D高斯(逐场景优化) | 1-2分钟 | 较好 |
| TripoSR | NeRF三平面 | 数秒 | 一般 |
| LGM | 3D高斯(前馈生成) | 约5秒 | 较好 |
从应用角度看,LGM适合对生成速度敏感的场景,比如电商商品的快速3D化、游戏原型的资产草稿生成、元宇宙内容批量生产等。它目前的局限在于主要针对孤立物体,对大场景生成支持有限,且生成结果依赖前端多视角模型的质量,遇到严重遮挡或视角歧义的输入时,背面细节可能出现想象性补全。总体而言,LGM以简洁的架构验证了大规模高斯直接生成的可行性,随着多视角扩散模型的持续进步,这类前馈式3D生成路线还有很大的提升空间,值得开发者持续关注。