← 返回 2026-04-14

条带即 Token:原生 UV 分割的艺术家风格网格生成 Strips as Tokens: Artist Mesh Generation with Native UV Segmentation

Rui Xu, Dafei Qin, Kaichun Qiao, Qiujie Dong, Huaijin Pi, Qixuan Zhang, Longwen Zhang, Lan Xu, Jingyi Yu, Wenping Wang, Taku Komura 📅 2026-04-10 👍 56 2026-07-13 08:36
3D网格生成 UV分割 条带序列化 点云条件生成 自回归Transformer 艺术家拓扑

用三角形条带作为基本 token 单位,统一生成三角/四边面网格并原生支持 UV 岛分割

前置知识

自回归网格生成 (Autoregressive Mesh Generation)

把不规则的 3D 网格视作离散的 token 序列,让 Transformer 以自回归方式 (类似 GPT 预测下一个词) 逐 token 地生成面片、顶点坐标和拓扑信息。训练时最小化交叉熵损失 $\mathcal{L} = -\sum_{i=1}^{L} \log p(t_i \mid t_{<i}, c; \theta)$,其中 $c$ 是输入条件 (如点云)。这类方法的核心难点在于如何把几何 + 拓扑编码成紧凑、可学习的 1D 序列。

本文 SATO 是自回归网格生成范式下的新工作,必须理解 MeshGPT、DeepMesh、BPT 等前置方法如何序列化网格,才能看清 SATO 用 '条带' 替代 'patch/坐标排序' 的本质差异。

三角形条带 (Triangle Strips)

经典图形学概念:用一条有序顶点序列 $S = (v_1, v_2, \ldots, v_m)$ 表示一个连续的三角形链,每个相邻三角形共享一条边 $f_i = (v_i, v_{i+1}, v_{i+2})$。每新增一个顶点即可确定一个新三角形,相比独立的三角列表能节省大量存储。这是 GPU 渲染时代最常用的网格压缩格式。

条带是 SATO 序列化方案的物理基础:相邻三角形共享边天然保留了艺术家网格的 'edge flow' (边流方向),让自回归模型在长程结构上更容易学。

UV 展开与 UV 岛 (UV Unwrapping / UV Islands)

把 3D 网格的表面参数化到 2D 平面 (UV 空间) 以便贴纹理。'UV 岛' 是表面被 '切割缝' (seam) 切开后形成的若干连通块,每块在 UV 平面上独立展开。生产级艺术家网格通常精心设计 UV 岛的形状、数量和边界,使纹理贴图紧凑、低失真、对称。

SATO 把 UV 岛边界编码进 token 序列,是第一个 '边生成网格边生成 UV 分割' 的自回归框架。不理解 UV 在生产管线中的作用,就体会不到这一贡献的实际价值。

网格拓扑与边流 (Topology & Edge Flow)

网格的拓扑指面片之间如何连接 (哪些顶点共享哪些边)。'边流' 指艺术家建模时习惯让三角形按主曲率方向排成长条状的局部规则,'好的边流' 让后续 rigging (骨骼绑定)、变形、UV 展开、纹理绘制都更方便。与之相对,Delaunay 三角化和 Marching Cubes 生成的网格只追求数学最优 (最大化最小角) 而无视结构规整。

SATO 的核心动机正是修复 Delaunay 风格方法破坏边流的问题;理解 '艺术家拓扑 vs 几何处理拓扑' 的对比 (论文 Fig. 2) 是看懂 SATO 设计哲学的关键。

分层坐标量化 (Hierarchical Coordinate Quantization)

DeepMesh 提出的坐标离散化方法:把每个顶点归一化到单位立方体,分三层在 512³ 网格上量化,得到元组 $(c_1, c_2, c_3)$,分辨率分别为 $4^3$、$8^3$、$16^3$,$c_1$ 是最粗粒度位置码本,$c_2, c_3$ 是相对父单元的精细位置。配合 '前缀共享':相邻顶点若 $c_1, c_2$ 相同则省略前缀。

SATO 直接复用 DeepMesh 的量化策略,并在此基础上扩展码本加入 UV 分割和条带过渡 token。不熟悉分层量化就无法理解 SATO 词表 4800 的具体含义。

研究动机

艺术家手工建模的网格与算法生成的网格有本质差异:艺术家网格遵循清晰的边流方向、三角形偏向各向异性而非等边、在高曲率区域加密采样、在 UV 岛边界精心留缝。然而当前主流自回归网格生成方法在序列化阶段就破坏了这些结构。坐标排序类方法 (MeshXL、Meshtron) 把顶点按坐标排序后三元组化,序列动辄上百万 token,模型难以收敛;patch 类方法 (BPT、DeepMesh、TreeMeshGPT) 用 Delaunay 启发式把网格切成 5-7 面的扇形小块,每块都要插入过渡 token 重置前缀共享状态,结果是边缘翻转频繁、边流断裂——这正是 Figure 2 想说明的 '艺术家三角 vs 算法三角' 的鸿沟。更严重的是,这些方法把 UV 分割完全外包给后处理工具 (Blender 拆分 + 参数化 + atlas),产生额外的接缝和不规则布局,无法端到端保证生产可用性。

本文的目标是本文要交付一个统一的艺术家风格网格生成框架 SATO,三个具体目标:(1) 设计一种新的序列化方案,既保留长程边流连续性又把序列长度压到可学;(2) 让同一套 token 序列既能解码成三角网格也能解码成四边面网格,从而联合训练两种数据;(3) 把 UV 岛边界直接编码进序列,让模型在生成几何的同时原生预测 UV 分割,省掉所有后处理阶段。最终交付一个对标生产管线的 0.5B 参数模型,能在点云条件下一次性输出 '几何 + 拓扑 + UV 分割' 的完整 mesh 资产。

与已有工作不同的是,SATO 的独特切入角度是 '把条带 (triangle strip) 提升到 token 级别'。条带是经典图形学的存储格式,每个新顶点确定一个新三角形、自带共享边结构,与艺术家 '从一条边增量扩展' 的建模流程天然对齐。SATO 进一步把 '条带间的过渡' 和 'UV 岛间的过渡' 两种语义事件融入到同一个最粗粒度码本 $C_1^*$ 的并行扩展集 $C_t^1$ (条带) 和 $C_{uv}^1$ (UV 岛),既不增加序列长度又携带了高层语义信号。配合 'stride 可切换解码' (三角 δ=1, 四边 δ=2) 这一巧妙设计,三角形和四边形能在同一个序列空间共享几何先验。这种 '序列化层面的几何-拓扑-语义三位一体' 设计在 MeshGPT、BPT、DeepMesh 等现有工作中都没有出现过。

核心方法

SATO 的整体思路是:先用一个条带感知的 tokenizer 把网格压成长程连贯的 1D token 序列 (几何 + 拓扑 + UV 语义一并嵌入),再用 0.5B 参数的 Hourglass Transformer 自回归预测该序列,最后用 stride 可切换的 detokenizer 把同一序列解码为三角或四边面网格。直觉上:想象一位艺术家从一条边界出发 '拉链式' 不断追加新三角形直到铺满一个 UV 岛,然后跨岛开始下一段——SATO 的 tokenizer 正是用算法复现了这个工作流。技术路线分四步:(1) 分层坐标量化把 3D 坐标变成 4800 大小的离散词表 (含 UV/条带扩展);(2) 拉链式条带抽取生成基础序列;(3) UV 岛分割 + 前缀共享压缩得到最终序列;(4) 三阶段训练 (三角预训练 → UV 后训练 → 四边微调) 完成全任务学习。

SATO 的核心创新是把 'triangle strip' 从存储压缩技巧升级为生成式结构先验。和已有方法的本质区别在于:(a) 与 MeshGPT 的 '坐标排序三元组' 比,条带序列化序列长度缩短一个数量级,且每一步都有明确的拓扑含义;(b) 与 DeepMesh 的 'Delaunay patch' 比,patch 是局部的 (5-7 面),每 patch 都要重置前缀共享状态,条带则可以跨越几十甚至上百个面保持同一前缀,spatial continuity 显著更优;(c) 与 QuadGPT 的 '混合 tri/quad token' 比,QuadGPT 把四边形和三角形作为不同 token 类别分别处理,而 SATO 用 stride δ∈{1,2} 切换解码逻辑,让同一序列能 '一鱼两吃',跨域迁移代价几乎为零;(d) 与 SeamGPT、PartUV 等后处理 UV 工具比,SATO 在生成阶段就把 UV 岛边界显式编码进 token 流,避免了串行管线累积的接缝失真。

方法步骤详情

SATO 方法分四步实现。Step 1 (Hierarchical Geometry Quantization):每个网格 $M = (V, F)$ 归一化到单位立方体,每个顶点分解为 $(c_1, c_2, c_3)$ 三层 token,对应 $4^3$、$8^3$、$16^3$ 分辨率,$c_1 \in C_{geo}^1$ 是最粗粒度坐标码本。Step 2 (Strip Extraction, 算法 1):构建 edge-to-face 邻接表,按坐标最低的面作为 seed,把 seed 的三个顶点排序后写入序列,最后两条边作为初始 'frontier edge';进入循环——沿 frontier 跨到相邻未访问面,δ=1 时追加 1 个顶点 (三角模式),δ=2 时追加 2 个顶点并交换最后两个以保持 winding order 一致 (四边模式);当 frontier 落到网格边界或邻接已访问面时停止;选下一个未访问面作新 seed,直到 $F$ 中所有面都被覆盖。Step 3 (UV Segmentation + Prefix Sharing):按 UV 岛分组,要求 strip 在同一 UV 岛内连续抽取,跨岛时插入 $C_{uv}^1$ token;新 strip 起始点用 $C_t^1$ token (与 $C_{uv}^1$ 同空间位置但语义不同),它们永远不被压缩、强制重置前缀共享状态;普通顶点若与前一个共享 $c_1, c_2$ 则只保留 $c_3$,得到最终序列 $T$。Step 4 (Training):模型为 0.5B 参数 Hourglass Transformer (21 层 / 8 头 / 1024 维);点云编码器为同架构 Hunyuan3D VAE 的轻量版 (12 层 decoder / 1024 token);训练时随机截取 9K 长度的子序列,KV-cache 推理,温度 $T=0.5$ 采样。

技术新颖性

SATO 的技术新颖性体现在四个层面。第一,把图形学 30 年前的 '条带压缩' 概念引入到现代自回归生成,并改造成 '条带序列即 token 流' 的统一抽象——这是表示层面的突破。第二,'stride-based unified decoding' 用 δ=1/2 切换拓扑解释,让同一序列可同时训练三角和四边数据,并实现双向先验迁移 (论文 Section 5.4.3 证明四边微调能反过来提升三角质量)。第三,'augmented coarsest codebook' 把条带过渡、UV 岛过渡作为同空间位置的不同 token 类别嵌入 $C_1^* = C_{geo}^1 \cup C_t^1 \cup C_{uv}^1$,实现零长度开销的语义标记。第四,'两阶段 UV 训练' (先无 UV 预训练、再 UV 后训练) 解决了 '几何+UV 同时学' 的优化难题——Fig. 19 显示从零开始同时学 UV 会直接塌缩成随机形状,预训练 + 后训练才能既对齐输入又学 UV 语义。这四点组合在一起构成了一个相对完整的体系。

Strips as Tokens (SATO) enables unified, high-quality artist mesh generation with native UV segmentation.
Fig. 1: Strips as Tokens (SATO) enables unified, high-quality artist mesh generation with native UV segmentation.
The Pipeline of SATO.
Fig. 3: The Pipeline of SATO.
Mesh tokenization with prefix sharing.
Fig. 4: Mesh tokenization with prefix sharing.
Artist-created meshes with UV chart partitions.
Fig. 5: Artist-created meshes with UV chart partitions.
Unified representation of triangle and quad using strips.
Fig. 6: Unified representation of triangle and quad using strips.
Different face ordering defined by other methods.
Fig. 7: Different face ordering defined by other methods.

实验结果

Table 2 是核心定量结果:在 ShapeNet 上 SATO 的 NC=0.975、CD=0.002、HD=0.032、F1=0.807,全面超过次优方法 (DeepMesh: 0.967/0.004/0.037/0.532),F1 提升幅度高达 0.275 (相对 51.7%);在 Thingi10K 上 NC=0.916 vs BPT 的 0.874、F1=0.460 vs BPT 的 0.248;在 Objaverse 上 NC=0.909 vs DeepMesh 的 0.859、F1=0.503 vs BPT 的 0.265。Table 1 显示序列压缩方面:SATO 压缩率 0.283 (token 长度 / 面数×9),介于 BPT 的 0.228 和 DeepMesh 的 0.330 之间,词表 4800 略大于 DeepMesh 的 4736 (多出的 64 token 用于 UV 分割),但 '转换次数' 显著更少 (Table 8 显示 teapot 上 0.9K vs DeepMesh 的 1.6K)。Table 3 用户研究 25 名 3D 行业从业者对 SATO 评分 2.61,是次优 BPT (1.40) 的 1.87 倍。Table 5 UV 失真指标:SATO 在 L2 Stretch (0.979 vs PartField 0.921)、Area Distortion (0.562 vs 0.849)、Symmetric Dirichlet (5.156 vs 8.283) 三项都明显更低,Angle Distortion 也优于 PartField。Table 7 四边形几何指标:SATO NC=0.971、F1=0.857,超过所有 remeshing 基线 (QuadWild 0.970/0.848、NeurCross 0.968/0.846、CrossGen 0.969/0.849);Table 6 用户对 SATO 四边评分 1.8,是 NeurCross (1.48) 的 1.22 倍。Table 9 大规模消融 (相同架构/数据/训练预算) 证明仅 tokenizer 差异就带来 +1.7 NC、+0.105 F1 的提升。Fig. 19 验证 UV 训练策略:从零训练和用预训练 VAE 都会塌缩成随机形状,而两阶段策略既能精确对齐输入点云又能输出干净 UV 分割。Fig. 20 显示四边微调后三角网格变得更接近四边形路由、更少细长三角。

Comparison of vocabulary size and average compression rate.
Table 1: Comparison of vocabulary size and average compression rate.
Quantitative comparison on ShapeNet, Thingi10K, Objaverse.
Table 2: Quantitative comparison on ShapeNet, Thingi10K, Objaverse.
User study with SOTA methods on triangle mesh generation.
Table 3: User study with SOTA methods on triangle mesh generation.
User study with PartUV on UV segmentation.
Table 4: User study with PartUV on UV segmentation.
UV distortion comparison.
Table 5: UV distortion comparison.
User study with remeshing and reconstruction methods on quad mesh generation.
Table 6: User study with remeshing and reconstruction methods on quad mesh generation.
Geometric metrics on the quad mesh from Fig. 17.
Table 7: Geometric metrics on the quad mesh from Fig. 17.
Quantitative comparison with the DeepMesh tokenizer (overfitting).
Table 8: Quantitative comparison with the DeepMesh tokenizer (overfitting).
The gallery of SATO illustrates our model's outputs across three tasks.
Fig. 8: The gallery of SATO illustrates our model's outputs across three tasks.
Overview of our test dataset.
Fig. 9: Overview of our test dataset.
Qualitative comparison with baseline methods across different shapes.
Fig. 10: Qualitative comparison with baseline methods across different shapes.
Qualitative comparison with PartUV.
Fig. 11: Qualitative comparison with PartUV.
查看结构化数据
任务指标本文基线提升
ShapeNet 三角网格生成 NC / CD / HD / F1 0.975 / 0.002 / 0.032 / 0.807 DeepMesh 0.967 / 0.004 / 0.037 / 0.532 +0.008 NC, +0.275 F1 (相对提升 51.7%)
Thingi10K 三角网格生成 NC / CD / HD / F1 0.916 / 0.009 / 0.154 / 0.460 BPT 0.874 / 0.028 / 0.141 / 0.248 +0.042 NC, +0.212 F1 (相对 85.5%)
Objaverse 三角网格生成 NC / CD / HD / F1 0.909 / 0.009 / 0.117 / 0.503 DeepMesh 0.859 / 0.020 / 0.120 / 0.240 +0.050 NC, +0.263 F1 (相对 109.6%)
UV 分割 (Blender angle-based unwrap) L2 Stretch / Area Dist / Angle Dist / Sym Dirichlet 0.979 / 0.562 / 1.128 / 5.156 PartField 0.921 / 0.849 / 1.256 / 8.283 全部 4 项指标更优,Distortion 全面降低 30-40%
四边面网格生成 (vs remeshing baselines) NC / CD / HD / F1 0.971 / 0.001 / 0.020 / 0.857 CrossGen 0.969 / 0.001 / 0.020 / 0.849 +0.002 NC, +0.008 F1;从点云生成 vs remeshing 输入GT几何
Tokenizer 消融 (相同训练预算) NC / CD / HD / F1 on 250-shape test set 0.925 / 0.014 / 0.103 / 0.560 DeepMesh tokenizer 0.908 / 0.022 / 0.108 / 0.455 +0.017 NC, +0.105 F1
用户研究 (三角, 25名专业人士) Top-3 ranking score [0,3] 2.61 BPT 1.40, DeepMesh 1.17 1.87× BPT, 显著优势
用户研究 (UV, vs PartUV) Ranking score [0,3] 2.6 PartUV w/ GT Mesh 1.36, PartUV w/ Our Mesh 2.04 比 PartUV 配合 GT 几何还高 1.24
用户研究 (四边, 6种方法) Ranking score [0,3] 1.8 NeurCross 1.48, CrossGen 1.24 +0.32 NeurCross, 艺术家对 SATO 四边最满意

局限与改进

论文作者承认的局限有三条:(1) 四边面输出在 strip 长度奇数或有重复顶点时会退化成三角 (Fig. 23 左),需要数据集质量提升或后处理才能进一步降低;(2) 四边质量受限于现有高质量四边数据集的规模,QuadGPT 等专用四边方法在该任务上仍有优势;(3) 近球形物体的 edge routing 不够规则,因为多数三角数据集用近等边镶嵌而高质量球面四边样本稀缺。我自己的额外观察:(a) SATO 仍是条件生成 (需要输入点云 81920 点),无条件生成能力未验证;(b) inference 速度和 token/s 论文只在 Table 8 给出 overfitting 实验的约 58 tokens/s,与 MeshGPT 级自回归方法相比不算快;(c) 模型规模 0.5B 加上 VAE 0.27B 合计约 0.77B,但训练用了 64-256 张 A800 跑 7+3+1=11 天,复现门槛非常高;(d) UV 分割只是 '哪些面属于哪个岛',不预测 UV 坐标本身,仍然依赖 Blender 做后续 unwrap,所以严格来说还没做到完全端到端。

独立分析的弱点

独立分析弱点 (按场景)。(1) 长序列场景:虽然 SATO 压缩率 0.283 优于 DeepMesh,但当网格超过 16K 面时 9K token 窗口仍会切断长程依赖,可考虑 sliding-window + 跨窗口记忆模块。(2) 高密度几何场景:F1 在 ShapeNet 上 0.807 已经很高,但 Thingi10K/Objaverse 仅 0.460/0.503,说明对真实世界复杂几何 (非人造物体) 的覆盖仍不足,可加入 SDF-to-mesh 中间表示作为强先验。(3) UV 岛细粒度场景:UV 岛数量限制在 [10, 300],对于真正高细节角色 (可能有上千个 UV 岛) 不够,可学习自适应聚类阈值。(4) 球面/对称场景:Fig. 13 左下显示球面 edge routing 不规则,需要额外的 '对称约束 token' 或强化学习信号。(5) 四边退化场景:δ=2 时奇数长度 strip 退化成三角,可在训练时随机 mask 一部分 vertex 强制模型学 '残差退路'。改进方向:(a) 把 stride δ 从二值改成连续可微,通过 Gumbel-Softmax 让模型自己学 '什么时候该三角什么时候该四边';(b) 引入 curriculum learning,先训简单盒子再训复杂有机形;(c) 强化学习奖励 '边流连续性' 而不仅是几何误差。

未来方向

作者明确指出的方向:(a) 减少四边退化需要更大、更高一致性的高质量四边数据集;(b) 球面 edge routing 改善需要 'shape-adaptive routing prior'。基于成果可延伸的方向:(c) 把条带序列化扩展到 N 边面 (n-gon) 和带洞的多边形 mesh,覆盖更广的工业 CAD 数据;(d) 把 SATO 作为 remeshing 后处理模块嵌入 SDF 生成流水线 (Fig. 21 已展示和 CLAY 的串联),并对比 Hunyuan3D-2.5 这种端到端管线;(e) 探索 '条带序列 + 物理仿真 token',让模型同时预测 '可用于布料/毛发仿真' 的特殊拓扑结构;(f) 训练一个反向模型——给定 UV 布局反推网格几何,让 UV-first 设计工作流成为可能;(g) 把 Hourglass Transformer 升级到 linear attention 或 Mamba 状态空间模型,进一步降低长序列推理成本;(h) 跨模态条件扩展:当前只支持点云,可以加 text/image 条件,让 SATO 直接接 CLAY 等文本到 3D 系统作为可微渲染后端。

复现评估

复现评估:(a) 开源情况:论文截至发表日未声明代码和权重开源 (2026/07 ACM TOG 期刊论文,配套代码可能在后续 ArXiv 更新或项目页发布,写作时未明确给出 URL);(b) 数据规模:1.47M 三角网格来自 Objaverse+ShapeNet+Thingi10K+Shutterstock 商用授权数据,其中 Objaverse/ShapeNet/Thingi10K 公开,但 Shutterstock 部分需要付费授权,复现时可能要去掉约一部分数据;(c) 算力需求:3 阶段训练分别用 64/256/64 张 A800 GPU 跑 200K/80K/25K 步,合计约 11 GPU×天 (折合 64 卡) 或 8000+ A800×小时,自筹算力门槛极高;(d) 实现难度:算法本身 (Algorithm 1 的拉链式条带抽取、stride 解码) 中等难度,但 Hourglass Transformer + 自训 VAE 编码器 + 三阶段训练 + 9K window KV-cache 的工程链路较复杂;(e) 评估指标 (NC/CD/HD/F1) 都是 PyMeshLab + 标准采样 100K 点即可复现,UV 失真指标也是 Blender 自带;用户研究较难复现但非必须。整体评估:复现难度 ★★★★☆,若作者开源权重则降至 ★★☆☆☆。