网格是3D资产最重要的和最广泛使用的表示形式之一,是电影、设计和游戏行业的默认标准,几乎所有的3D软件和图形硬件都支持网格。像大家最常见的是由三角形和四边形组成的网格。
网格的一个重要特点是它的“拓扑”,艺术家创建的网格拓扑结构通常更加还原物体的实际形状,好的拓扑结构可以使创建的3D物体看起来更真实,也更容易进行修改、添加纹理、制作动画以及快速地渲染成图像。
但是,这种精细的拓扑工作需要花费大量的时间和精力,并且要求创作者具备专业的3D建模技能。
虽然说现在市场上有很多利用AI生成,将文字描述或者2D图片生成3D网格,但是这样自动化的过程,拓扑效果一塌糊涂,多数都不能拿来直接用,还得需要人工手动进行重新拓扑。
BUT,目前英伟达推出的Meshtron,改变了这一状况,它以可以生成拓扑媲美手工的高质量3D模型。
01
Meshtron概括
那Meshtron是什么呢?它是一种新型自回归网格生成模型。
一般情况下一个精致的3D模型通常需要超过10K个面才能准确建模,大多数艺术家创建的网格面数通常为10k,平均值为32k。但是Meshtron能够以1024级坐标分辨率生成多达64K个面的网格,比目前最先进的方法的面数高出一个数量级,坐标分辨率高出8倍。
Meshtron的可扩展性由四个关键组件驱动:
沙漏型神经结构
截断序列训练
滑动窗口推理
强化网格序列顺序的稳健采样策略
点击上面GIF图参与渲染大赛
这些特点让Meshtron在生成3D模型时,使用的计算机内存减少了超过50%,处理速度提升了2.5倍,而且生成的模型更加一致,稳定。Meshtron能够创建出非常精细和复杂的3D物体网格,其质量和细节几乎可以媲美专业艺术家手动制作的作品。
02
Meshtron生成的网格
接下来看看Meshtron所生成的网格:
03
Meshtron具有高度可控性
Meshtron 当前版本接受以下控制输入:
点云:决定输出网格的形状。
面数:确定输出网格的密度。
四边形比率:在四边形和三角形镶嵌之间切换。
创造力: 可以调整以生成点云中不存在的额外细节。
因为大部分3D模型都可以转换成点云格式,所以Meshtron既可以单独用来提升已有3D模型的质量,也可以配合其他工具(比如根据文字或图片生成3D模型的工具),从零开始创建出非常专业和精美的3D模型。
Meshtron的创造力
04
Meshtron与其他方法比较
Meshtron与MeshAnythingV2:
Meshtron与Iso-Surfacing Methods:
通过对比,明显的可以看出Meshtron网格的拓扑更接近艺术家的拓扑结构,细节很丰富,拓扑的结构也可以和物体相适应,反观其他网格,拓扑结构不佳,三角形状很密集,且缺乏细节。
05
Meshtron架构
Meshtron是一个生成网格token的自回归模型,其工作原理与GPT等自回归语言模型相同。
网格可以很容易地转换为一系列标记。网格的基本构建块是三角形面,可以用九个标记表示:
每个三角形有三个顶点。
每个顶点有三个坐标。
每个坐标都可以量化以获得离散的标记。
因此,通过按照从下到上的排序顺序将这些面标记链接在一起,可以将网格唯一地表示为一系列标记。
通过标记序列表示的网格
自下而上的生成过程
Meshtron是基于Hourglass Transformer架构的自回归网格生成器,并采用滑动窗口注意力机制。它利用了网格序列的周期性和局部性,从而实现了效率的大幅提升。
Meshtron的控制输入采用交叉注意机制实现,具有高度可扩展性,可以轻松适应其他类型的输入,如图像、附加控制等。它还通过提供全局上下文来实现滑动窗口推理。
Meshtron完整模型架构
主要通过内部合并token来减少序列长度,从而节省计算和内存。更具体地说,该模型由三个阶段组成,每个阶段将序列长度减少三倍:
第一阶段:在坐标层进行操作,处理每一个token。
第二阶段:在顶点级别进行操作,每个顶点处理一个标记(减少3倍)。
第三阶段:在面部层面进行操作,每个面部处理一个标记(减少9倍)。
Hourglass Transformer 运行情况
通过将更多的层分配给具有更高降采样比例的阶段,相比于传统的单阶段模型,计算和内存成本显著降低。
Hourglass网络的每个阶段与coordinate-vertex-face semantics相契合,这不仅提高了建模效率,还将更多计算能力分配给难以生成的标记。在每个三角形内,第一个顶点是最容易生成的,而最后一个顶点则是最困难生成的。
不同标记位置的对数困惑度和每标记GFLOPs
为了提高效率,Meshtron使用了一种叫做“滑动窗口注意力”的技术。传统的 Transformer模型具有随序列长度增加而增长的上下文长度,这导致计算量二次增长和内存消耗线性增长,随着序列变长,这会在训练和生成过程中引起显著的减速。
相比之下,Meshtron维持一个固定长度为8192个面的部分。在训练期间,网格序列会被随机裁剪至最多8192个面。而在生成新的3D模型时,如果某个部分已经超超过8192个面的数量,那么之前生成的标记将从KV缓存中移除。
这种方法的好处:不管3D模型变得多复杂、多大,Meshtron所需的记忆空间和处理速度都不会受到影响,始终保持稳定。通过这种方式,Meshtron在创建高质量3D模型时,不仅比传统方法快了2.5倍,而且使用的内存也减少了超过一半。这样,Meshtron能更高效地工作,同时生成更加精细的3D模型。
有关更详细的信息可以参阅以下网址:
【arXiv链接】
http://arxiv.org/abs/2412.09548v1
【代码地址】
https://research.nvidia.com/labs/dir/meshtron
end
打了一圈黑神话爱上了UE5!
这小哥用几百块复刻了上亿大片的特效镜头
“东半球最强法务部”人设立稳,《幻兽帕鲁》宣布修改游戏机制…
别拦我!我要挤上这班车!!
热门跟贴