引言

弥合 2D 图像与 3D 内容创作之间鸿沟的竞赛正在飞速发展。我们已经见证了扩散模型在凭空生成图像方面的巨大飞跃,自然而然地,研究人员正在将这些原理应用于第三维度。然而,从单张图像生成高质量、可用于生产环境的 3D 资产仍然是一个巨大的挑战。

当前最先进的方法通常分为两大阵营: 基于优化的方法 (速度慢) 和直接预测 NeRF 或高斯等 3D 表示的大型重建模型 (LRM) 。虽然 LRM 速度很快,但在将这些体素表示转换为干净、可编辑的网格时往往很吃力。此外,“原生” 3D 扩散模型——试图直接学习 3D 形状分布的模型——通常会生成过于简单、对称的团块,缺乏输入图像中清晰的几何细节。

对于实际应用来说,最大的瓶颈或许在于纹理 。 大多数当前的 AI 3D 生成器生成的都是“烘焙光照 (baked-in lighting) ”。如果你生成一个汽车的 3D 模型,太阳的反射会被画在汽车表面上。如果你把这辆车放到视频游戏的夜景中,它看起来仍然像是在中午。对于专业工作流,我们需要基于物理的渲染 (PBR) 材质——包括反照率 (Albedo,即基础色) 、粗糙度 (Roughness) 和金属度 (Metallic) 贴图——它们能对光线做出动态反应。

MeshGen 登场。

在这篇文章中,我们将深入探讨一篇新的研究论文,该论文提出了一套完整的流程,用于生成具有 PBR 纹理的高保真网格。MeshGen 引入了一种“渲染增强”的自编码器来捕捉几何细节,并使用巧妙的生成式数据增强技术来教导模型如何处理复杂的真实世界图像。

MeshGen 流程概览,展示了自编码器、扩散模型和纹理模块。

如上图 1 所示,MeshGen 不仅仅是一个模型;它是一个由三个不同阶段组成的管道: 压缩 (自编码器) 、生成 (扩散) 和纹理化。让我们来看看它是如何工作的。


背景: 原生 3D 生成的问题

要理解为什么需要 MeshGen,我们必须了解“原生 3D 扩散”的局限性。

在这种范式中,研究人员训练一个自编码器 (VAE) 将复杂的 3D 网格压缩成紧凑的“潜空间 (latent space) ” (通常表示为 Triplanes,即三平面) 。然后训练一个扩散模型 (类似于 Stable Diffusion,但针对 3D) 从输入图像生成这些潜变量。

当前方法存在三个主要问题:

  1. “团块 (Blob) ”问题: 标准的 3D 自编码器依赖于占用率损失 (occupancy loss,即空间中这一点是否存在物质?) 。它们缺乏感知反馈,意味着它们难以编码锐利的边缘或细薄的结构,导致生成平滑、简化的形状。
  2. 数据稀缺: 我们有数十亿张图像,但高质量的 3D 模型却相对较少。在 Objaverse 等数据集上训练的模型倾向于过度拟合简单、对称的物体。
  3. 纹理不一致: 生成一张能完美包裹 3D 物体且没有接缝或“烘焙”光照的纹理贴图是非常困难的。

MeshGen 通过改善自编码器的视觉能力、综合增强训练数据以及显式地将纹理分解为 PBR以此来解决这些问题。


核心方法

1. 渲染增强自编码器

任何潜在扩散模型的基础都在于其自编码器的质量。如果自编码器无法准确重建网格,扩散模型通常也无法生成高质量的结果。

MeshGen 使用了一个点到形状 (point-to-shape) 编码器。它接收从网格采样的点云,通过 Transformer 块进行处理,并将其解码为 Triplane 表示。然后对该 Triplane 进行上采样以查询占用率 (空间中的点是在物体内部还是外部) 。

该架构的数学定义如下:

公式 1: 使用交叉注意力和自注意力的点到形状编码器的数学公式。

随后是占用率解码器:

公式 2: 使用 MLP 和上采样的占用率解码公式。

创新点: 基于射线的正则化

以前的方法使用二元交叉熵 (BCE) 对占用值进行训练。MeshGen 认为这还不够。他们引入了基于渲染的感知损失 (Render-Based Perceptual Loss) 。 在训练过程中,他们实际上将预测的网格渲染成法线贴图,并将这些渲染结果与真实值进行比较。这迫使模型关注表面细节,而不仅仅是体积。

然而,简单地增加渲染损失会引入一个新问题: 漂浮物 (Floaters) 。 模型试图通过在靠近相机的空白空间放置随机密度来“欺骗”渲染损失。

为了解决这个问题,作者提出了基于射线的正则化 (Ray-Based Regularization)

基于射线的正则化与几何及生成式渲染增强的示意图。

如图 2 左侧面板所示,系统向场景中投射光线。对于光线上处于空白空间 (相机和物体之间) 的点,模型会严格惩罚任何非零的占用率。

训练是以从粗到细 (coarse-to-fine) 的方式进行的。首先,模型使用标准损失学习大致形状:

公式 3: 粗略训练阶段的损失函数。

然后,使用渲染增强目标对模型进行微调,包括法线贴图上的 MSE 和 LPIPS (感知) 损失,以及基于射线的正则化:

公式 4: 包含法线和正则化项的综合微调损失函数。

这种策略使 MeshGen 能够重建锐利的特征——比如手表的细带或章鱼的触手——而以前的自编码器会将这些特征模糊化。

2. 带数据增强的图像到形状扩散

一旦自编码器训练完成,下一步就是训练扩散 U-Net,从单张输入图像生成 Triplane 潜变量。

研究人员发现了以往训练流程中的一个致命缺陷: 数据偏差 。 大多数 3D 数据集包含完美居中、直立且光照简单的物体。当用户输入一张真实世界的照片 (具有复杂光照或奇怪的摄像机角度) 时,标准模型就会失效。

MeshGen 引入了两种特定的增强方法 (如上图 2 所示) 来使模型具有鲁棒性。

几何对齐增强

标准的原生 3D 模型通常是“外观纠缠”的。如果你给它们一张汽车的侧视图,它们可能会生成一辆正面朝向的汽车,因为那是数据集中的“标准”姿态。

MeshGen 利用了其点云编码器是几何协变 (geometrically covariant) 的事实。在训练期间,他们随机旋转 3D 点云以匹配输入图像的特定视角。这将图像的坐标系与网格的坐标系对齐。

  • 结果: 模型学会了如果输入图像是侧视图,生成的 3D 网格也应该是侧向的。这显著提高了可控性。

生成式渲染增强

为了处理“野外 (in-the-wild) ”图像,模型需要理解复杂的光照。研究人员利用 2D 生成模型综合扩展了他们的数据集。

  1. 他们渲染 3D 物体以获得法线和深度图。
  2. 他们将这些图输入到 ControlNetIC-Light (一种重光照工具) 中。
  3. 这生成了该物体的逼真 2D 图像,具有各种纹理和戏剧性的光照条件。

通过在这些合成图像上进行训练,扩散模型学会了忽略光照伪影并专注于潜在的几何结构。

3. PBR 纹理生成

拼图的最后一块是外观。MeshGen 的目标是基于物理的渲染 (PBR) ,特别是分离反照率 (Albedo,颜色)粗糙度 (Roughness)金属度 (Metallic) 贴图。

纹理化流程分为三个步骤:

步骤 A: 几何条件多视图生成

首先,系统需要“想象”物体从各个角度看是什么样子的。它使用了一个多视图扩散模型 (基于 Zero123++) 。

这里的一个关键挑战是保持与输入图像的一致性。标准方法 (如 IP-Adapter) 通常能捕捉到风格,但会丢失参考物体的特定身份特征。MeshGen 引入了参考注意力 (Reference Attention)

视觉对比显示了参考注意力微调的有效性。

如图 3 所示,如果没有参考注意力 (中间一列) ,模型生成的角色看起来与输入相似,但丢失了具体的面部细节。有了参考注意力 (左侧一列) ,生成的视图紧紧贴合输入图像的身份特征。

步骤 B: PBR 分解

多视图生成器产生的是“着色 (shaded) ”图像 (带有光影的图像) 。为了获得 PBR 纹理,我们需要移除光照。

MeshGen 使用了一个专门的 PBR 分解器 (PBR Decomposer) 。 这是一个经过训练的扩散模型,用于接收着色图像并将其分解为各个组件。

公式 5: PBR 分解器网络的公式。

分解器本质上执行图像到图像的转换,同时输出反照率、金属度和粗糙度通道。

可视化 PBR 分解器通道: 反照率、金属度和粗糙度。

图 17 展示了这个分解器的实际效果。请注意它如何成功地隔离了雷神 (Thor) 手办的“金属度”贴图和瓶子的“粗糙度”贴图,并将它们与基础颜色分离开来。

步骤 C: UV 修复 (Inpainting)

最后,这些多视图贴图被投影到 3D 网格的 UV 空间上。因为网格的某些部分 (如腋下或两腿之间) 可能在任何生成的视图中都不可见,系统使用了一个 UV 修复器 (UV Inpainter)

这个修复器会检查不完整的纹理贴图并填补空白,确保 360 度无缝的纹理。


实验与结果

研究人员将 MeshGen 与两类竞争对手进行了比较:

  1. 大型重建模型 (LRMs): InstantMesh, TripoSR, MeshFormer。
  2. 原生 3D 扩散模型: CraftsMan, 3DTopia-XL, LN3Diff。

几何质量

视觉结果令人信服。在下方的图 4 中,看看“文件分类器 (File Sorter) ” (右上) 或有着大嘴的角色。

与 SOTA 重建和扩散模型的几何质量定性对比。

大型重建模型 (InstantMesh, TripoSR) 通常难以处理细薄结构或复杂的拓扑,有时会产生噪点表面。其他原生 3D 模型 (CraftsMan) 经常无法捕捉正确的姿势或形状,退化为通用的对称形式。MeshGen (最右侧) 始终如一地捕捉到了输入的特定几何细微差别。

定量指标证实了这一点。MeshGen 在 Google Scanned Objects (GSO) 等基准数据集上实现了更高的 F-Score 和更低的倒角距离 (Chamfer Distances,即误差率) 。

与其他方法对比定量指标 (F-Score 和倒角距离) 的表格。

纹理质量

在纹理方面,对比更加鲜明。图 5 将 MeshGen 与 Paint3D 等专门的纹理流程进行了比较。

与 EASI-Tex 和 Paint3D 的纹理质量对比。

Paint3D (中间) 经常产生接缝或低分辨率纹理。MeshGen (右侧) 产生清晰、一致的纹理。关键是,MeshGen 同时提供“光照烘焙”模式和“反照率”模式 (PBR) ,给予艺术家灵活性。

用户研究结果 (表 2) 显示了对 MeshGen 输出的压倒性偏好,超过 90% 的用户更喜欢其图像对齐效果。

用户研究表格显示 MeshGen 在图像对齐和整体质量方面占据主导地位。

消融研究

为了证明他们的具体贡献 (正则化和增强) 确实有效,作者进行了消融研究。

消融研究视觉结果显示了几何和生成式增强的影响。

在图 6 中:

  • 无几何对齐 (左) : 猫的模型变得块状化,并丢失了输入的特定姿势。
  • 无生成式渲染增强 (右) : 模型无法正确理解立式搅拌机的形状,可能是被源图像中的金属反射搞混了。

此外, 基于射线的正则化的影响在图 8 中得到了视觉证明。如果没有它,网格将被“漂浮物”包围——那些破坏模型的断开伪影。

基于射线的正则化和 UV 修复必要性的视觉证明。


结论与启示

MeshGen 代表了在追求“图像到即用型 3D (Image-to-Ready-to-Use-3D) ”道路上迈出的重要一步。通过摆脱简单的占用率损失并整合基于渲染的监督 , 作者创造了一个能够尊重网格微小细节的自编码器。

或许更重要的是,该论文证明了数据增强与模型架构同样重要。通过综合扩展训练数据以包含旋转姿势和复杂光照,MeshGen 克服了当前 3D 数据集中固有的偏差。

关键要点:

  • 原生 3D 正在成熟: 我们正在从“团块状”形状迈向锐利、详细的网格。
  • PBR 是可能的: 使用扩散模型将光照从纹理中分解出来,使得创建的资产在游戏引擎中真正有用,而不仅仅是为了观看。
  • 感知损失很重要: 使用 2D 渲染损失 (比较法线/图像) 训练 3D 模型比仅使用 3D 损失能产生更好的 3D 几何结构。

局限性: 作者指出,该方法在处理透明物体 (玻璃) 和极高频细节 (如盒子上的小文字) 时仍然很吃力,这主要是由于多视图生成阶段的分辨率限制。

然而,对于计算机视觉领域的学生和研究人员来说,MeshGen 为 3D 生成的未来提供了一个蓝图: 一种结合了强大的 3D 先验知识与 2D 扩散模型生成能力的混合方法。