这项由香港城市大学、斯坦福大学、康奈尔科技、德克萨斯大学奥斯汀分校联合完成的研究,发表于2026年7月19日至23日在洛杉矶举办的SIGGRAPH Conference Papers '26,论文编号为DOI 10.1145/3799902.3811195,感兴趣的读者可通过该编号查阅完整论文。

打开网易新闻 查看精彩图片

三维建模,是游戏、电影、动画乃至工业设计的核心基础。每当你在游戏里操控一个角色,或者欣赏一部动画电影里栩栩如生的场景,那些外表光滑、结构精密的三维物体,背后都是由成千上万个小三角形拼接而成的"网格"(Mesh)。制作这些网格,不仅需要专业艺术家耗费大量心血,还要让三角形以合理的方式分布——比如在关节处密集、在平坦区域稀疏——才能让人物做出流畅的动作或让场景渲染得既快又好。

然而,让计算机自动生成这样高质量的三维网格,一直是个棘手的难题。而这项被命名为MeshFlow的研究,给出了一个既聪明又高效的解法:它能在不到一秒钟的时间里,把一堆随机散乱的三角片,整理成一个结构精良的三维网格模型。相比此前最先进的方法,速度提升了整整18倍。

一、三维网格为什么这么难生成?

要理解这项研究的价值,可以用一个生动的比喻来体会其中的难度:假设你面前有一盒打乱的拼图碎片,每一片的形状都是三角形,而且任意两片的摆放顺序、朝向都没有固定规定。你的任务是把这些碎片拼成一张完整且有意义的画——比如一把椅子或一盏台灯。不仅如此,同一张椅子的图案可以由无数种不同的拼法实现,没有哪种拼法天然比其他更"正确"。

这就是计算机在生成三维网格时面临的真实困境。一个三维网格由顶点(空间中的点)和面(由三个顶点构成的三角形)组成,但无论面的排列顺序如何改变,无论三角形内部三个顶点谁排第一、谁排第二,最终描绘的都是同一个形状。换句话说,同一个模型有几乎无穷多种等价的数学表示方式。

传统的AI生成方法,有一类叫做"自回归模型",它的工作方式像一个逐字听写的学生:先生成第一个顶点,再依据第一个生成第二个,依次类推,一步一步把整个网格"拼出来"。这种方法的优点是生成质量较好,但致命缺陷在于速度极慢——生成一个模型往往需要十几秒甚至更长时间,而且越到后面越容易出错,就像抄写长文时越写越累越容易写错字一样。

另一类尝试是用"扩散模型"(Diffusion Model)来生成网格,这类方法的思路更像雕塑家:从一团混乱的噪声出发,逐渐"雕刻"出最终形状。这种方法理论上可以更快,但过去的尝试普遍效果欠佳,生成质量远不如自回归方法。研究团队深入分析后发现,根本原因在于:之前的扩散方法根本没有考虑到网格本身具有的那种"拼图顺序无所谓"的对称性,导致模型训练时接收了大量互相矛盾的信号,就好像老师一会儿告诉学生"A排第一"、一会儿又说"A排第二",结果学生彻底懵了。

二、从乱麻到精品:MeshFlow的核心思路

MeshFlow的核心策略,可以用一个"整理衣橱"的比喻来理解。假设你的衣橱里有一堆T恤,每件都可以叠成不同形状、放在不同位置。整理衣橱时,如果你每次都把最相似的T恤叠在一起、放到最合适的位置,整个整理过程就会又快又整齐。但如果你每次都随意拿起一件就往上面叠,不管顺序,整个衣橱会越来越乱,最后你也不知道哪件在哪儿。

MeshFlow的做法,正是在训练AI的过程中,每次都找到"最合理的配对方式"——把散乱的三角片(类比凌乱的T恤)以最短路径对应到目标网格的三角片上,而不是随机乱配。这样,AI每次学到的信息都是一致且清晰的,训练效率和最终质量都大幅提升。

具体而言,MeshFlow使用了一种叫做"等变最优传输流匹配"(Equivariant Optimal-Transport Flow Matching)的技术框架。这个名字听起来复杂,但拆开来理解并不神秘。"流匹配"(Flow Matching)是指:给定一个随机的起点(一堆乱七八糟的三角片),AI学习如何沿着一条尽可能笔直的"流动路径",把起点变换成目标网格。路径越直,AI生成时需要的步骤就越少,速度也就越快。"等变"(Equivariant)的意思是:无论你怎么打乱三角片的顺序,AI的输出都会以相同的方式跟着变化,也就是说AI始终尊重"顺序无所谓"这一本质特性。"最优传输"(Optimal Transport)则是负责找到那个"最合理的配对方式",让训练信号始终清晰一致。

研究团队还特别选择了一种叫做"三角汤"(Triangle Soup)的网格表示方式。"三角汤"就是把网格里的所有三角形看成一锅汤里漂浮的面片——谁都不是固定的、没有固定的顺序和连接关系,只是一组独立的三角形。这种方式看似简单粗糙,却恰好把网格里那种"谁先谁后无所谓"的对称性完美暴露出来,方便AI去利用。

三、两大核心发明:让AI真正"尊重"网格的对称性

MeshFlow的技术贡献主要集中在两个方面,一个是专门设计的神经网络结构,另一个是专门设计的训练目标函数。

先说神经网络结构。研究团队对当时最先进的"扩散变换器"(Diffusion Transformer,简称DiT)架构进行了一次关键改造,称之为"等变DiT块"(Equivariant DiT Block)。

原版DiT的工作方式,有点像一个阅卷老师给考卷打分时,会根据考生的座位号来区别对待——坐在第一排的考生和坐在最后一排的考生,即使答案完全一样,也会因为位置不同而得到不同的评分。这种"位置偏见"虽然在图像生成里有其道理,但放到网格生成上就会造成严重问题:因为三角片的顺序根本不重要,强行给它们加上位置标记,会让AI学到错误的规律。

改造后的等变DiT块,做了一个巧妙的分层设计。它先把每个三角形内部的三个顶点特征,通过"平均池化"(Mean Pooling)合并成一个代表整个三角形的特征——这一步的原理就像把三个人的平均身高作为这个小组的身高代表,顺序不影响平均值。然后,这些三角形级别的特征通过一个不带位置编码的自注意力层(Self-Attention),让每个三角形都能"看到"其他所有三角形并更新自己的认知——这个过程对三角形的排列顺序是完全不敏感的。接着,更新后的三角形特征被"广播"回各自的三个顶点,与原来的顶点特征相加。最后,每个顶点的特征独立地通过一个前馈网络(FFN)进行精细化处理。

这个设计的精妙之处在于:它同时尊重了两种对称性——无论你怎么打乱不同三角形之间的顺序(面级别的对称性),或者怎么打乱同一个三角形内部三个顶点的顺序(顶点级别的对称性),网络的输出都会以一致的方式随之变换。这在数学上称为对群 $G = S_3 \wr S_N$(即 $S_3$ 与 $S_N$ 的圈积)的等变性,研究团队在论文附录中给出了严格的数学证明。

研究团队还特别为网络加入了"面数量条件化"(Face Conditioning)机制。道理很简单:用100个三角片拼出的椅子,和用800个三角片拼出的同一把椅子,外观差异很大——前者棱角分明、风格粗犷(俗称"低多边形"或"Low-poly"风格),后者则更圆润精细。如果不告诉AI当前任务的面数目标,它就无法自适应地调整生成策略。因此,团队把目标面数编码后加入到网络的条件信号中,让AI始终清楚自己要生成多少个三角形。

四、嵌套最优传输:让训练路径又直又短

说完网络结构,再来说训练目标函数,也就是"嵌套耦合"(Nested Coupling)机制。

在流匹配的训练过程中,AI需要学习如何从一个随机的噪声三角汤(起点)"流动"到一个真实网格(终点)。如果起点和终点的配对是随机的——随便抓一堆乱序的三角片和一个真实网格配对——那么AI需要学习的"路径"就会弯弯曲曲、错综复杂,就像一个人在迷宫里绕来绕去才能找到出口。这种弯曲的路径不仅让训练变慢,也让推理时需要更多步骤。

嵌套耦合的做法,则是在每次训练前,先找到噪声三角片和真实网格之间"最省力"的配对方式——既在三角形层面找到最合适的一一对应,又在每对三角形内部找到顶点之间最合理的对应。这个过程分两步进行。

第一步,对所有噪声三角形和所有真实三角形两两配对,计算每对的最小距离(考虑到三角形内部顶点顺序可以任意旋转)。这样就得到了一个N×N的代价矩阵。第二步,用经典的"匈牙利算法"(Hungarian Algorithm)解这个线性分配问题,找到让总距离最小的面级别匹配方案。找到面的对应后,每对面内部顶点的最优对应也自然确定了。

论文里用一个二维图形的可视化实验非常直观地展示了这一点:用独立随机配对时,噪声三角片流向目标三角片的路径互相交叉、杂乱无章;而嵌套耦合配对后,所有路径几乎不交叉,每个三角片都沿着近乎直线的路径到达目标,就像一次井然有序的大迁徙。

与此同时,研究团队还引入了来自SD3(Stable Diffusion 3)的"噪声时移"(Noise Shifting)策略:对于面数较多的网格,模型会在高噪声阶段多花一些计算资源,因为面数越多的网格在高噪声阶段的信息量越大,需要更多精力来处理。这个策略进一步提升了生成质量,具体表现为最小匹配距离(MMD)从16.50降至14.85,1-NNA指标也从55.81%改善至54.51%。

五、实验结果:速度与质量的双重验证

研究团队在ShapeNet数据集的四个常见类别上进行了系统测试:椅子(Chair)、桌子(Table)、长椅(Bench)和台灯(Lamp)。为了获得足够多的训练数据,他们对每个原始网格进行了不同程度的面数简化,并通过Hausdorff距离筛选确保简化后的形状足够保真,最终获得了从13142到126788不等的训练样本。所有网格顶点坐标被标准化到零均值和单位标准差。

在评价指标上,团队主要使用两种衡量方式。一种叫做"1-NNA"(1近邻精度),它衡量的是:从生成的网格集合和真实网格集合中,能否用最近邻分类器把两者区分开来。如果生成质量完美,两个集合的分布应该完全一致,任何分类器都无法区分,此时1-NNA趋近于50%——因此这个数值越接近50%越好。另一种叫做"自相交率"($R_i$),衡量生成网格中有多大比例的三角形发生了自我穿插,数值越低越好,代表网格质量更干净。

与三个主流的自回归方法(PolyGen、MeshGPT、MeshXL)以及一个扩散模型对手(PolyDiff)的对比实验显示,MeshFlow在四个类别中有三个类别取得了最佳的1-NNA分数。以椅子类别为例,MeshFlow的1-NNA为54.51,接近理想值50,而PolyGen为81.45,PolyDiff为79.91,都离理想值差得很远。在台灯类别,MeshFlow的1-NNA更是达到了51.61,几乎与理想值持平。

在自相交率方面,MeshFlow经过后处理后的数值也大幅优于多数基线方法。例如椅子类别后处理后自相交率降至14.02%,台灯类别降至7.97%,而PolyDiff在这些类别的自相交率高达91.29%和83.99%,差距悬殊。

在速度方面,对比更加惊人。在NVIDIA A6000 GPU上,生成1000个网格的平均单个时间:MeshGPT需要16.271秒,MeshXL需要28.931秒,PolyDiff需要8.528秒,而MeshFlow仅需0.877秒。加上后处理步骤,总计0.900秒——比最快的自回归基线快了18.55倍。而且MeshFlow生成的网格平均有452.9个面,反而多于MeshXL的403.5个面,可谓质量与速度双赢。

在视觉渲染质量方面,团队还计算了生成网格渲染图像的FID(弗雷歇感知距离)和KID(核感知距离)。MeshFlow在椅子和台灯类别分别取得了46.57和83.07的FID,均优于MeshGPT和MeshXL,进一步证明生成网格的视觉质量确实更接近真实数据。

六、消融实验:每个设计的必要性

为了验证每个设计选择的有效性,研究团队做了一系列对比实验,就像做菜时逐一检验每种调料的作用。

关于网络结构的消融,团队对比了四种方案。第一种"非等变网络"直接把标准DiT加上位置编码应用于面特征,完全不考虑对称性;第二种"面等变网络"只考虑了面级别的对称性,忽视了面内顶点的对称性;第三种"顶点等变网络"把DiT直接应用于所有顶点特征,忽视了面内顶点的层次分组;第四种才是完整的等变DiT块。

结果非常明显:在50步推理时,非等变网络的1-NNA高达83.87,顶点等变网络更差达到87.43,面等变网络为72.42,而完整的等变DiT块为55.97。在减少到20步推理时,效果差异更加悬殊——完整方案仅从55.97略升至57.74,而其他方案均大幅恶化。这说明完整的等变设计不仅质量更好,而且对推理步骤数量更加鲁棒,可以用更少步骤达到同样质量,进一步加速推理。

关于耦合方式的消融,独立随机耦合和面级别耦合都明显不如嵌套耦合。特别是训练收敛曲线显示,独立耦合下的面交叉率(拓扑质量指标)下降明显更慢,而嵌套耦合的训练曲线更陡峭、收敛更快。流场的曲率可视化也清楚地表明,嵌套耦合下每条流动路径更接近直线,独立耦合则更加弯曲。

七、后处理:把粗糙原石打磨成精品

MeshFlow生成的原始输出是一锅三角汤——各三角形独立存在,顶点之间没有任何连接关系,而且由于连续空间中的浮点运算,相邻三角形的共享顶点往往不完全重合,而是有微小偏差,就像用错了胶水的拼图,每片之间都有细小的缝隙。

为了把这锅汤变成一个结构清晰的网格,团队设计了一个两步后处理流程。

第一步是神经网络去噪。研究者注意到,原始生成结果和在真实网格上叠加了少量高斯噪声之后的样子非常相似。于是他们训练了一个专门的去噪器,用于把这种"带微小噪声的网格"恢复成干净的网格。去噪器使用与主网络相同的等变DiT架构,但不需要自适应层归一化,训练目标是简单的L2重建损失。针对不同类别,去噪器的训练时长不同:Bench类别约9000步,Lamp约21000步,Chair约30000步,Table约63000步。实际效果非常显著,从图示中可以清楚地看到,去噪前网格存在严重的自相交和杂乱三角形,去噪后这些问题大幅消除,表面变得光滑整洁。

第二步是顶点焊接(Vertex Merging)。具体做法是构建一棵k-d树(一种空间索引数据结构,类似于把空间分成一个个小格子方便快速查找邻居),然后遍历所有顶点,把距离小于0.015的顶点合并成一个。合并后,如果一个三角形的三个顶点都指向同一个新顶点,该三角形就变成了退化三角形(即面积为零的三角形),需要直接删除。这一步在实践中借助了Blender内置的功能来实现。

整个后处理过程非常高效,仅增加了0.0233秒的额外耗时,可以忽略不计。后处理后,四个类别的平均自相交率降低了约56%,而1-NNA指标几乎没有变化,说明后处理在大幅提升拓扑质量的同时,完全保留了形状的多样性和保真度。

八、生成的网格有多"有创意"?

一个好的生成模型,不应该只是记住训练数据然后照搬——它应该能生成新颖的、训练集里没有出现过的形状。团队通过"形状新颖性分析"验证了这一点。

他们生成了500把椅子,为每把生成的椅子找到训练集中最相似的椅子(用Chamfer距离衡量),然后画出这500个最小距离的分布图。分布图呈现出"长尾"特征:少数生成样本与训练集非常接近(说明模型确实学到了真实分布),但大量样本处于中高距离范围(说明模型能生成新颖变体)。特别是处于50百分位的样本,虽然看起来"像把椅子",但与其最近的训练样本在结构上存在明显差异,可以排除简单复制的可能性。

另一个有趣的实验展示了"一种几何、多种拓扑"的能力:生成了一组外轮廓几乎完全一致的椅子,但每把椅子的三角化方式都各不相同——有的从中心辐射状分割,有的沿着轮廓线密集排布,有的则采用均匀的网格状划分。这种能力对于需要特定网格质量的下游应用(如动画、物理仿真)非常有价值。

九、可扩展性与局限性

关于规模扩展性,研究团队对最优传输耦合的计算开销进行了详细测试。在训练阶段,OT耦合的计算时间确实随面数增长而增加:400个面时约17毫秒,800面时约82毫秒,1600面时约375毫秒,3200面时约2045毫秒。但这些数字要放在上下文里看:即使在1600个面时,OT耦合(375毫秒)依然比网络的前向+反向传播(802毫秒)更快。而且OT耦合仅在训练时需要,推理时完全不用。对于更大规模的网格(超过10000个面的工业级模型),未来可以引入近似最优传输技术来解决。

目前MeshFlow支持最多800个面的网格。虽然这已经能覆盖大量应用场景,但工业级产品网格通常有数万个面,这仍是一个需要突破的限制。此外,偶尔会出现面重叠(Overlapping Faces)或面缺失(Missing Faces)等失败案例,研究团队认为这主要源于计算资源限制,大规模训练有望解决。另外,框架目前仍需要后处理步骤才能生成完整的流形网格(即各面无缝拼合的网格),实现端到端的直接生成是未来的重要方向。还有一个限制是,推理时需要预先指定目标面数,模型无法自动判断一个形状"应该"用多少个三角形来表示——如何让模型自动预测合适的面数,也是值得探索的方向。

说到底,MeshFlow这项研究干了一件很聪明的事:它没有蛮力地用更大的模型、更多的数据去硬砸生成质量,而是深入思考了三维网格这种数据结构本身的特性——三角片的顺序不重要——然后把这种特性严肃地贯穿到网络设计和训练目标的每一个环节。结果证明,这种"尊重数据本质"的设计哲学,能够以不到1/18的时间代价,达到与当时最先进的自回归方法相当的质量。

这对普通人意味着什么?短期内,游戏开发者、动画师、建筑师在使用AI辅助建模工具时,可能很快就能体验到实时或接近实时的3D网格生成,极大降低手动建模的门槛。再往远处看,当这类技术足够成熟,也许每个人都能像今天用AI生成图片一样,轻松生成自己想要的三维物体——不管是定制一个玩具,还是设计一件家具。

一个值得思考的问题是:AI生成的网格,未来能否完全取代人类艺术家的手工建模?目前来看,AI在理解"一把椅子的关节处三角形应该如何分布才能让动画更流畅"这类设计直觉上,还有相当长的路要走。但MeshFlow至少证明了:通过对对称性的深刻理解,扩散类方法在网格生成上并非输家,这条路是走得通的。

有兴趣深入了解技术细节的读者,可以通过DOI 10.1145/3799902.3811195查阅完整论文,或访问项目页面获取代码和更多可视化结果。

Q&A

Q1:MeshFlow生成三维网格和传统方法相比快多少,质量有没有损失?

A:MeshFlow生成一个三维网格只需不到1秒,比当时最快的自回归方法快了约18倍。在质量方面,MeshFlow在四个ShapeNet测试类别中有三个类别的1-NNA指标达到最优,自相交率经后处理后也大幅降低,整体质量与主流自回归方法相当,并明显优于之前的扩散模型方法。

Q2:MeshFlow中的"三角汤"表示法和普通的三维网格有什么区别?

A:普通三维网格里的三角面是有连接关系的,相邻面共享顶点,整体是一个有拓扑结构的数据。"三角汤"则把所有三角面当成一堆独立的片段,没有任何连接关系,也没有固定的排列顺序。这种表示方式更简单灵活,也让模型更容易处理网格的"顺序无关"特性。生成三角汤之后,MeshFlow通过后处理步骤把相邻的顶点焊接在一起,恢复出完整的拓扑连接。

Q3:MeshFlow目前最多支持多少个面,能用于专业的工业级建模吗?

A:目前MeshFlow支持最多800个面的网格,适合概念设计、游戏低模等场景。工业级产品网格通常有数万甚至更多面,超出了当前版本的处理能力。研究团队指出,未来可以通过引入基于分块的训练方法和近似最优传输技术来扩大支持的面数规模。