BPT¶
Scaling Mesh Generation via Compressive Tokenization

BPT 是 mesh-native generation 路线中的关键论文之一。它主要的贡献在于通过压缩 mesh tokenization,打开了高面数 mesh 数据训练的大门。
核心问题¶
传统 autoregressive mesh generation 主要的问题是序列太长:
- 一个 face 被拆成多个顶点 token
- 顶点坐标重复出现
- mesh 一复杂,attention 成本迅速失控
这会直接限制训练数据的 face 数,从而进一步限制模型能学到的细节上限。
所以 BPT 的核心判断是:
如果 tokenization 不先改好,后面的 mesh generator 再强也很难 scale。
BPT = Blocked + Patchified¶
1. Block-wise Indexing¶
先把空间切成 block:
- 一个顶点先用
block index表示它位于哪个 block - 再用
offset index表示它在 block 内的位置
这样做的好处是:
- 避免直接使用巨大的全局坐标词表
- 一个顶点最多只需要两个 token
- 相邻点落在同一 block 时还能进一步共享上下文
2. Patchified Aggregation¶
第二步解决的是 mesh 里主要的冗余:共享顶点反复出现在很多 face 中。
它通过聚合相邻 face 为 patch:
- 选 patch center
- 把周围相关 face 一起表示
- 减少重复顶点出现次数
结果不仅序列更短,局部性也更好。
3. 条件生成骨干¶
论文不只提出一种 tokenization,还基于 BPT 训练了一个 autoregressive mesh foundation model:
- 条件可以来自图像,也可以来自点云
- Transformer 直接在压缩后的 mesh token 序列上建模
- 目标是生成可直接使用的高面数 mesh,而不只低面数草图
因此,BPT 的论文贡献其实分成两层:
- 表示层:把 mesh sequence 压短
- 系统层:验证压缩后确实能支撑更大规模 mesh generation
为什么它重要¶
该论文主要的实验结论在于:
一旦模型能吃下更高面数的训练 mesh,生成质量会明显提升。
也就是说,BPT 的价值在于它让模型能够:
- 使用 8k faces 级别的数据
- 学到更多几何细节
- 减少 incomplete mesh
这是一种直接的“表示改进 -> 数据上限提高 -> 生成质量提升”的链式作用。
实验上到底验证了什么¶
这篇论文比较有说服力的地方,在于它没有把收益只停留在“压缩率更高”这一层,而是把压缩和生成质量直接联系起来。
压缩率¶
- BPT 相比原始 mesh sequence 长度压缩约
75% - 论文把这个结果表述为 sequence length 降到原来的大约
0.26
这件事的直接意义是:模型终于能稳定吃下更多高面数训练数据。
点云到 Mesh¶
论文报告的点云条件生成结果里:
MeshAnything: Hausdorff0.301,Chamfer0.136MeshAnythingV2: Hausdorff0.265,Chamfer0.114BPT: Hausdorff0.166,Chamfer0.094
这个提升幅度说明,BPT 不仅让序列更短,也确实让最终 mesh 更接近高面数参考形状。
图像到 Mesh¶
- 相比 EdgeRunner,BPT 生成结果保留了更多局部结构
- 论文展示的可视化里,复杂边缘和表面细节更完整
- 这和它能利用更高面数训练数据是对应的
消融实验¶
- block size / offset size 不是越极端越好
- 在固定量化分辨率下,论文里
block size = 8、offset size = 16的结果最好 - 只靠截断长序列、测试时再用 sliding window attention,并不能替代 BPT,反而更容易产生不完整 mesh
在 mesh-native 路线中的位置¶
可以把这条线简单看成:
- MeshAnything V2:AMT,相邻 face 尽量共享边和顶点
- BPT:block-wise + patchified,把序列压到 0.26
- FACE:one-face-one-token,把建模层级直接推到 face level
所以 BPT 更像一个关键的中间节点:
- 它还没有彻底放弃 vertex-oriented tokenization
- 但已经改变了序列长度和数据可训练范围
局限¶
- 仍然属于 mesh sequence compression,而不是语义层级的根本切换
- 相比 FACE,建模单元仍然偏低级
- 主要解决的是“序列太长”,不是 mesh-native 表示的全部问题
- 论文自己也提到,目前模型参数规模仍然不算大,后续还可以继续做更大规模的 scaling
- Transformer 仍然按序列方式建模,mesh 本身的拓扑归纳偏置没有被充分利用
一句话总结¶
BPT 的主要意义,是通过 block-wise indexing + patchified aggregation 把 mesh token 序列压缩到约 0.26,从而让 autoregressive mesh generation 能利用高面数训练数据,而高面数数据本身正是它提升质量的关键来源。