网格是 3D 资产最重要且应用最广泛的表示形式之一。它们是电影、设计和游戏行业的默认标准,几乎所有 3D 软件和图形硬件都原生支持它们。
3D 网格 可视为多边形面的集合,通常由三角形或四边形组成。
网格的一个重要属性是拓扑 ,它是指这些多边形面的组织结构,这些多边形面离散于 3D 表面。艺术家创建的网格通常具有信息量大且组织良好的拓扑结构,这些拓扑结构与物体的底层结构高度一致。
拥有艺术家般的拓扑对于编辑、纹理、动画和高效渲染至关重要。然而,由艺术家手动创建这些网格是一项劳动密集型任务,需要大量的 3D 建模时间和专业知识。
可以通过算法从其他 3D 表征中提取网格。在典型的文本到 3D 或图像到 3D 生成系统中,神经生成器生成神经场,然后使用 Marching Cubes [ FlexiCubes (NVIDIA)、 NMC 、 DiffMC ] 或 Marching Tetrahedra【 DMTet (NVIDIA)】等算法将神经场转换为网格。
遗憾的是,这些手动设计的算法会生成不具有类似艺术家拓扑的密集网格,从而影响这些方法的质量和实用性。
图 1、网格比较
新兴的工作线使用机器学习算法从现有的艺术家创建的网格中学习,以数据驱动的方式生成网格。这些工作展示了巨大的潜力,但在可扩展性方面受到限制,处理多达 1.6 K 个面部的最佳方法:
与之形成鲜明对比的是,一个精致的 3D 物体通常需要 10K 多个面才能进行准确建模。我们的调查显示,艺术家创建的网格的人脸中值通常为 10K,平均值为 32K。
Meshtron 提供了一种简单且可扩展的数据驱动型解决方案,可在 1024 级坐标分辨率下生成复杂的艺术家式网格,网格面高达 64K。与现有方法相比,这增加了一个数量级,坐标分辨率提高了 8 倍。
图 2、之前低分辨率的低多边形网格与可控制人脸计数和高分辨率的 Meshtron 生成网格的比较
网格是一个令牌序列
Meshtron 是一种生成网格标记的自回归模型。它的工作原理与 GPT 等自回归语言模型相同。
网格可以轻松转换为令牌序列。网格的基本构建块是三角形面,可以用九个令牌表示:
- 每个三角形有三个顶点。
- 每个顶点有三个坐标。
- 每个坐标都可以量化以获得离散 token。
因此,通过按照从下到上的排序顺序将这些面部标记链接在一起,网格可以以唯一方式表示为标记序列。
Meshtron 是一种高效的网格生成器
直接生成这些网格令牌的成本很高。具有 32K 个面的网格需要 300K 个令牌。对于典型的自回归模型,生成速度极慢,训练成本高昂。
Meshtron 采用 Hourglass Transformer 架构,通过内部合并 token 来减少序列长度,从而节省计算和内存。更具体地说,该模型由三个阶段组成,每个阶段将序列长度缩短三倍:
- 第一阶段 :在坐标级别运行,处理每个 token。
- 第二阶段:在顶点级别运行,每个顶点处理一个 token (3 倍缩减)。
- 第三步:在人脸级别操作,每个人脸处理一个令牌(9x 减少)。
与传统的单阶段模型相比,通过将更多层分配给具有更高归约率的阶段,计算和内存成本显著降低。
Hourglass 网络的每个阶段都与网格的坐标 – 顶点面语义完美对齐。这不仅提高了建模效率,还能为难以生成的 token 分配更多计算能力。在每个三角形中,第一个顶点最容易生成,而最后一个顶点最难以生成。
图 6、对不同令牌位置的对数困惑度和每个令牌的 GFLOPs
Meshtron 使用的另一种提高效率的技术是滑动窗口注意力。传统的 Transformer 模型的上下文长度随序列长度增长,从而导致计算的二次增长,以及随着序列的延长内存消耗量的线性增长。这会导致训练和生成过程中长序列的速度显著放缓。
相反,Meshtron 会维护一个包含 8192 个面的固定长度上下文窗口。在训练期间,网格序列会随机裁剪到多达 8192 个面。在推理过程中,系统会将之前生成的超过 8192 个面的令牌从 KV 缓存中逐出。滑动窗口技术会导致恒定的内存消耗和恒定的令牌吞吐量,并且不会随着网格大小的增长而减慢。
借助这些技术,Meshtron 可在训练和推理期间将令牌吞吐量提高 2.5 倍,并节省 50% 以上的内存,同时生成质量更好的网格。
Meshtron 高度可控
当前版本的 Meshtron 接受以下控制输入:
- 激光点云(Point cloud):确定输出网格的形状。
- Face count :确定 输出网格的密度。
- Quad ratio:在 Quad 和三角形曲面细分之间切换。
- 创意:可调整以生成激光点云中不存在的额外细节。
由于几乎所有的 3D 表征都可以转换为点云,因此 Meshtron 既可以作为独立的重构器来提高现有网格的质量,也可以与文本转 3D 或图像转 3D 模型一起使用,从头开始生成艺术家级网格。
图 7、Meshtron 控制创造力
Meshtron 的控制输入是通过交叉注意力实现的,具有高度可扩展性,并且可以轻松适应其他类型的输入,例如图像、附加控制等。它还通过提供全局上下文支持滑窗式推理。
图 8、Meshtron 完整模型架构
结束语
Meshtron 是一种自回归网格生成器,基于 Hourglass 架构并使用滑窗注意力。它利用网格序列的周期性和局部性来大幅提高效率。
Meshtron 以前所未有的分辨率和保真度水平生成精细、复杂的 3D 物体网格,与专业艺术家创建的网格非常相似。它为动画、游戏和虚拟环境打开了生成更逼真的精细 3D 资产的大门。
由于其通用且高度可扩展的架构,我们希望 Meshtron 可以作为未来网格生成研究和应用的参考。
有关更多信息,请参阅以下资源:
- 借助 Meshtron 大规模生成高保真 3D 网格 (视频)
- Meshtron:艺术家般大规模高保真 3D 网格生成 (白皮书)
- Meshtron 演示视频