CubePart: 开放词汇可控制部件的三维生成器 CubePart: An Open-Vocabulary Part-Controllable 3D Generator
首个支持用户通过文本schema指定部件结构的开放词汇三维模型生成框架
前置知识
扩散模型
扩散模型是一类生成式深度学习模型,通过学习从噪声分布到数据分布的逆向过程来生成数据。在图像领域,它从纯高斯噪声逐步去噪生成清晰图像。在3D领域,常在潜在空间中工作,将形状表示为向量集合或稀疏体素。本文使用的是基于Flow Matching的扩散模型,其训练目标是将噪声分布映射到数据分布,通过预测速度场来实现高效采样。
CubePart的核心生成框架基于扩散模型,理解扩散原理有助于把握两阶段生成pipeline。第一阶段从噪声生成完整形状,第二阶段将完整形状分解为多个部件。文章的损失函数和训练过程都直接源自扩散模型理论。
VecSet表示
VecSet是一种紧凑的3D形状表示方法,将3D网格编码为一组无序的特征向量。每个向量对应形状表面或内部的一个局部区域,通常通过Transformer处理来捕获全局几何关系。这种表示比密集体素更高效,比单向量表示更灵活,能够保留精细的几何细节。CubePart使用的3DShape2VecSet编码器配合SDF解码器,实现了从VecSet到高质量网格的重建。
VecSet是CubePart生成架构的基础表示形式。每个部件都编码为向量集合,全形状和所有部件都共享这种表示,使得模型可以在统一的潜在空间中进行全局形状生成和局部部件分解。跨部件注意力机制直接操作这些VecSet tokens,实现部件间的几何协调。
SDF符号距离函数
SDF是3D几何的隐式表示,对于空间中任意点x,SDF返回x到物体表面的有向距离。点在物体内部为负值,外部为正值,表面为零。SDF具有连续可微的特性,适合通过优化方法重建光滑的3D表面。Dual Marching Cubes算法可以从离散的SDF场中提取三角形网格。CubePart使用5123分辨率的SDF网格进行水密网格转换,确保生成的每个部件都是完整的、无孔洞的3D网格。
理解SDF有助于把握CubePart的后处理流程和数据准备。文章提到使用Dual Marching Cubes在5123网格上提取水平集,将每个部件转换为水密网格。这个过程解决了艺术家创建的网格常见问题,确保训练数据的可靠性和生成资产的游戏引擎兼容性。
Set-of-Mark标注
Set-of-Mark是一种视觉定位技术,通过在图像上叠加数字标记来引导视觉-语言模型关注特定区域。原始SoM方法使用分割模型将2D图像划分为区域并标记编号,VLM可以基于这些编号进行引用分割。CubePart将其适配到3D领域,对多视角渲染的3D资产应用SoM,每部分有对应的数字标记和颜色编码,同时生成纹理渲染和纯色渲染两种视图,提供互补的语义和分割信息。
SoM标注是CubePart数据引擎的核心创新,实现了大规模3D部件数据集的自动化构建。通过14个轨道视角的SoM渲染对,VLM能够识别并聚类相关部件,同时分配简洁而有意义的名称。理解SoM原理有助于把握数据规模达到462K资产、202万部件背后的技术杠杆。
研究动机
现代游戏和交互应用中的3D资产很少是静态的。车辆需要可旋转的车轮、角色必须可关节活动、容器需要开合,许多对象会响应物理或脚本事件。在游戏引擎中,这些行为由仿真系统、动画绑定和交互脚本控制,它们操作预定义的部件集合。资产要具有功能性,其网格必须分解为匹配游戏代码期望的模式(schema)的特定语义组件。创建符合目标部件组合的网格仍然是高度手动的过程,艺术家需要将几何分解为部件、分配一致的标签、确保结果网格干净地组装,这种努力难以随资产多样性扩展。尽管最近的3D生成建模进展已支持从文本或图像提示合成复杂几何,但这些方法要么产生没有任何明确部件结构的单体网格,要么产生任意部件集合;用户无法将生成的部件与下游游戏逻辑所需的模式对齐。对于拥有专门期望汽车由四个车轮部件和一个底盘部件的游戏开发者来说,生成随机部件集合的模型与生成单体汽车的模型一样无用。
本文的目标是本文的目标是构建首个支持开放词汇部件控制的3D生成框架CubePart,允许用户通过文本明确指定部件结构作为推理时的显式控制信号。给定描述对象的全局文本提示和以开放部件名称列表形式表达的用户定义部件模式,系统生成一组网格(每个模式元素一个),它们组装成一个连贯对象,同时尊重指定的语义结构。最终生成的资产可以直接集成到游戏引擎中,由动画和行为脚本驱动,无需手动后处理。
与已有工作不同的是,现有方法存在三个根本性局限:生成单体网格或任意部件分解,无法对齐下游应用特定的需求;依赖固定或封闭词汇的部件分类法,无法适应不同应用对同一对象的不同分解需求;依赖2D分割的3D部件生成方法受视角限制,无法表示或控制输入视图中隐藏的部件。CubePart的独特切入点是使用文本作为自然、通用的控制接口,文本提示可以同时指定全局对象描述和显式部件模式,为将对象分解为语义上有意义的组件提供结构蓝图。这是首个3D原生的、模式驱动的控制接口,允许用户在推理时明确指定完整语义分解。
核心方法
CubePart是一个两阶段生成框架,建立在大规模开放词汇部件标注数据集和新型多阶段扩散架构之上。整体思路是先学习高质量的3D形状生成,再学习在保证全局几何一致性的前提下将形状分解为用户定义的部件。第一阶段使用基于VecSet的扩散模型生成完整形状,通过模式感知的微调确保生成的形状包含所有期望的部件。第二阶段将单阶段模型扩展为输出多个部件潜在表示,通过创新的跨部件注意力机制实现部件间的几何协调,确保全局形状连贯性。这种设计将全局形状合成与部件级解码分离,使得第一阶段为第二阶段提供强全局几何先验。
CubePart的核心创新包括三个方面:数据层构建了462K资产、202万部件的大规模开放词汇3D数据集,比PartVerse-XL大11倍以上;架构层两阶段生成架构,第一阶段为第二阶段提供强几何先验,第二阶段通过零初始化的跨部件注意力块实现部件间通信而不破坏预训练先验;交互层使用文本作为开放词汇控制接口,用户可以指定任意部件名称列表,模型保证生成的网格对齐此用户定义的结构。与需要修改预训练层进行全局注意力的方法不同,CubePart的专用零初始化块策略在不干扰预训练能力的前提下实现了高效的部件间通信。
方法步骤详情
完整流程包含四个主要步骤。步骤1数据准备,通过四阶段流水线构建训练数据集,包括预处理过滤退化几何、VLM质量过滤、VLM基于Set-of-Mark渲染对进行部件聚类和命名、后处理通过Dual Marching Cubes转换为水密网格。步骤2单部分网格生成训练,使用4.7M网格-文本对预训练VecSet扩散模型,然后在标注数据集上微调。步骤3多部分网格生成训练,使用第一阶段权重初始化,在第1、5、9、17层插入零初始化的跨部件注意力残差块。步骤4推理时,给定文本提示和部件模式,第一阶段生成完整形状,第二阶段将其分解为对应模式的独立部件网格。
技术新颖性
CubePart的技术新颖性体现在多个层面。首个支持开放词汇、显式模式控制的3D生成框架,用户可以在推理时指定任意部件名称列表。两阶段生成架构将全局形状合成与部件分解分离,第一阶段为第二阶段提供强几何先验。零初始化的跨部件注意力机制,通过插入专用块而非修改预训练层,在不破坏预训练先验的前提下实现高效部件间通信。3D原生的Set-of-Mark标注流水线,将2D视觉定位技术适配到多视角3D渲染,实现大规模部件数据集的自动化构建。
实验结果
在PartObjaverse-Tiny评估数据集上,CubePart在部件级和整体级的几何质量指标上均显著优于现有基线方法。Chamfer Distance越低越好,F-score越高越好。部件级评估中,CubePart的CD为0.251,F-score为0.743,远超PartCrafter的0.493和0.290。整体级评估中,CubePart的CD为0.048,F-score为0.974,与最强基线相当但在部件级精度上保持优势。消融研究验证了设计选择的合理性:移除跨部件注意力机制导致部件级CD恶化至0.433、F-score降至0.398;移除第一阶段预训练也导致结构完整性下降;采用PartCrafter风格修改预训练层导致性能明显下降。定性结果展示了CubePart能够根据输入模式准确生成不同粒度的部件,包括小型组件如摩托车支架,以及紧密连接的部件如底盘和车窗。应用演示显示生成的多部件网格可直接用于游戏引擎,支持驱动、射击、飞行等行为脚本。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 多部件网格生成(部件级) | Chamfer Distance (CD) | 0.251 | PartCrafter: 0.493; PartPacker: 0.374; PatchAlign3D+HoloPart: 0.309 | 相比PartCrafter降低49%,相比PartPacker降低33% |
| 多部件网格生成(部件级) | F-score | 0.743 | PartCrafter: 0.290; PartPacker: 0.475; PatchAlign3D+HoloPart: 0.549 | 相比PartCrafter提升156%,相比PartPacker提升56% |
| 多部件网格生成(整体级) | Chamfer Distance (CD) | 0.048 | PartCrafter: 0.272; PartPacker: 0.164; PatchAlign3D+HoloPart: 0.050 | 与强基线相当,在部件级精度上保持优势 |
| 多部件网格生成(整体级) | F-score | 0.974 | PartCrafter: 0.552; PartPacker: 0.792; PatchAlign3D+HoloPart: 0.970 | 与强基线相当,部件分解质量更优 |
| 数据集规模 | 资产数量/部件数量 | 462K / 2.02M | PartVerse-XL: 40K / 320K; PartVerse: 12K / 91K | 相比PartVerse-XL扩大11.5倍 |
| 推理速度 | H200 GPU生成时间 | 第一阶段: 2-3秒; 第二阶段: 3-4秒 | 未明确报告基线推理时间 | 实用级的实时推理性能 |
局限与改进
作者承认了三个主要技术挑战。首先,当前模型专注于刚体分解,适用于车辆、机器人和环境道具,但不支持有机角色网格变形所需的蒙皮顶点权重,未来工作可能需要与部件几何一起预测骨骼绑定权重。其次,尽管跨部件注意力机制显著减少了重叠,模型仍可能在边界处产生相交部件,即使输入模式规定部件不相交。第三,开放词汇部件生成的核心困难是相对空间标识符的一致性处理,尽管数据集引入了空间感知命名,但继承了VLM基于标注的固有模糊性。此外,还存在一些观察到的问题:对于复杂输入几何,模型可能偶尔丢失输入组件;左右参照错误,混淆对象局部坐标系与相机视图空间;无法标记遮挡部件。训练数据中的这些噪声可能导致生成模型偶尔交换对称部件或沿特定轴误放组件。
独立分析的弱点
从独立分析的角度,CubePart存在几个可以改进的方面。第一,空间参照的模糊性:VLM在标注时难以一致地区分前左和后右,特别是在对称部件上,这导致生成模型可能交换或误放部件。改进方向是引入显式的空间坐标系推理模块,在标注阶段要求VLM输出部件的3D边界框坐标,或训练一个独立的3D空间推理模型来修正空间标注。第二,几何交叉问题:尽管有跨部件注意力,部件边界仍可能相交,这在紧密连接的组件上更明显。改进方向是引入显式的排斥损失或接触约束,在训练时惩罚部件相交,或在推理时使用后处理优化调整部件边界。第三,刚体分解限制:不支持柔性动画和蒙皮,限制了有机角色的应用。改进方向是预测骨骼权重和关节约束,将刚体部件扩展到可变形网格。第四,标注数据噪声:VLM可能产生错误聚类或不一致的命名。改进方向是引入人机协同标注流程,对不确定的样本进行人工审查。
未来方向
作者提出的未来工作方向包括预测骨骼绑定权重以支持有机角色网格变形,以及改进空间参照的处理。基于CubePart的成果,可以延伸多个研究方向。第一,层次化部件生成:当前方法处理扁平的部件列表,可以扩展到层次化模式,支持更细粒度的控制和复杂的行为脚本。第二,动态部件交互:不仅生成静态部件,还预测部件间的关节约束和运动学关系,直接支持动画绑定。第三,跨视图一致性增强:改进Set-of-Mark标注,引入3D空间推理来提高VLM的空间标注准确性,减少左右混淆。第四,交互式模式编辑:允许用户在生成过程中动态调整部件模式,通过增量式扩散模型实现实时编辑。第五,部件级纹理生成:当前方法生成几何部件,未来可以扩展到部件级纹理和材质生成。第六,行为驱动的部件发现:反向思考,给定行为脚本需求,自动推断必要的部件模式,降低用户的标注负担。
复现评估
CubePart的复现难度中等偏高,主要挑战在于大规模数据和算力需求。论文报告训练使用24个H200 GPU,第一阶段训练约3天,第二阶段训练约18小时,总算力需求约1950 GPU小时。数据方面,论文详细描述了数据流水线,包括来源、预处理步骤、VLM质量过滤、Set-of-Mark标注和后处理。虽然论文没有明确宣布开源代码和数据,但提供了完整的技术细节和VLM提示词,这有利于复现。Set-of-Mark标注需要GPT-5等高级VLM,这是昂贵的API调用成本。整体评估,如果获得源代码和数据集,复现是可行的;但从零开始重建需要显著的计算和标注资源。对于研究团队,建议关注简化数据流水线、探索使用开源VLM替代GPT-5、验证在更小数据集上的效果、探索更高效的训练策略或模型压缩方法。
论文图表
这张图展示了CubePart的核心功能和使用场景。左侧展示了单部件生成流程:输入文本提示和部件模式,系统输出多部件3D对象,每个组件都是独立的、结构完整的网格。右侧展示了生成结果画廊,包括车辆、角色和动物等多种对象,底部行展示了生成的资产如何直接用于脚本化或物理模拟行为。最后一列展示了CubePart可以接受现有网格作为输入,根据输入部件模式将其分解为语义多部件网格。
Fig. 1是理解论文的入口图,它直观地展示了CubePart解决的问题和支持开放词汇部件控制的应用价值。通过对比输入和输出,读者可以快速把握系统的核心能力。
这张图展示了CubePart的典型失败案例。包括部件在接触点重叠、模型可能误解空间关系为Left和Right、当输入几何复杂时模型偶尔会丢失输入组件。
Fig. 11诚实地展示了CubePart的局限性,这帮助读者理解当前方法的技术边界,以及作者在Limitations部分讨论的挑战。
这张图展示了462K训练资产中每资产的部件数量分布。分布呈现右偏:30%的资产恰好有2个部件,45%落在3-5范围内,20%在6-10,只有4%超过10个部件。
Fig. 12帮助读者理解训练数据的特征,这对理解模型能力和局限性很重要。大部分资产的部件数量较少,这解释了为什么CubePart在处理中等复杂度部件模式时表现良好。
这张图展示了无人机行为脚本的骨架,说明了四个阶段pipeline。四个阶段包括:Welding将模块化部件组装成连贯的刚体;Rigging配置铰链约束以定义枢轴点;Dynamic Force Control基于角速度和升力公式计算实时物理推力;Interaction将用户命令同步到物理运动。
Fig. 13展示了如何将CubePart生成的多部件网格用于实际的游戏开发工作流程。通过具体的代码示例,读者可以理解部件控制如何支持不同阶段的行为实现。
这张图展示了CubePart的额外结果,展示了各种对象类别和复杂部件模式的多样性。例子包括反重力赛车、中世纪装甲宇航服、人骨头骨监控单元、机械马、岩石魔像等。
Fig. 14扩展了CubePart的展示范围,覆盖了更多样化的对象类别。通过丰富的示例,读者可以理解CubePart的泛化能力和处理复杂部件模式的能力。