HubPart VIII · 拓扑与材质
Part VIII · 干净拓扑与材质 · 2020 → 2026

"能不能用"二字:拓扑与材质

前面的模型能造出形状,但 marching cubes 出来的网格又密又"糊"、纹理还把光照烤死了。这一部讲攻 痛点 (d) 能用 的两条线: ① 自回归 mesh 生成——把面当 token、像艺术家一样吐干净拓扑(一场 tokenization 军备竞赛); ② 纹理 / PBR 材质——从烤死光照走向同步、可重光照的 PBR。

§8.1线一 · 自回归 mesh:把面当 token

marching cubes 的网格是稠密、过度细分、带格对齐伪影的——美术不会要。 自回归 mesh 生成把网格的顶点和面当成一串离散 token 来生成,产出紧凑、艺术家般的拓扑。

MeshGPT— Generating Triangle Meshes with Decoder-Only Transformers
CVPR 2024 Siddiqui et al. · TUM / Audi · arXiv:2311.15475 · project

isosurface 网格太糊、面太多,没有艺术家那种利落拓扑。

关键想法:先用 VQ-VAE 学一套"几何 token 词表"(图卷积编码器跑在面邻接图上,让每个三角形 embedding 知道邻居的几何/拓扑),再用一个 GPT 式 decoder 预测下一个 token。从 PolyGen 的原始坐标 AR 升级成了学习压缩的 codebook。

相比 PolyGen(2002.10880,顶点/面纯坐标自回归),MeshGPT 引入学习的 VQ codebook + 图卷积 tokenizer——后面每篇都在攻它的效率。

一个 mesh 怎么变成 token 序列 · 以及"长度爆炸"

(1) 规范排序:顶点/面按确定顺序排(如 z→y→x,面内从最小顶点逆时针),让一个 mesh 唯一对应一个序列。 (2) 量化坐标:连续 $(x,y,z)$ 离散到网格(7-bit = $128^3$,最高 9-bit = $512^3$),每个坐标成一个整数 token。 (3) 朴素 9 坐标/面:每个三角形 = 3 顶点 × 3 坐标 = 9 个 token,N 面网格 ≈ 9N token。一个被 6 个三角形共用的顶点被重复编码 6 次。 后果:4k 面 ≈ 36k token,8k 面就冲破常见上下文窗口,self-attention 还是平方代价。这就是卡住分辨率/面数的瓶颈——也是 §8.2 整条军备竞赛的战场。

Demo 9 · mesh tokenization 军备竞赛
面数 F:朴素 9N 方案很快冲过 16k 上下文线(变红)。切换压缩方案看每种把序列砍到多短—— 这正是 MeshGPT → AMT → BPT → FACE 这条线在干的唯一一件事:压低"每面几个 token"这个数

§8.2tokenization 军备竞赛

每篇主要工作都是对那个 9N 代价的一次进攻:

MeshAnything v1/v2 · EdgeRunner · BPT— 相邻顶点复用 / 沿边遍历 / 块+patch 压缩

9N 序列太长,高面数/高分辨率训不动。

关键想法:MeshAnything 给 MeshGPT 加形状条件(点云→艺术家拓扑);AMT(v2)遇相邻面只发一个新顶点、复用已发顶点(~省一半);EdgeRunner 沿边遍历 + 定长 latent 自编码(4k 面、$512^3$);BPT 块坐标索引 + 面 patch 化(~省 75%,8k+ 面)。

序列长度逐篇腰斩:朴素 → AMT(~50%) → BPT(~25%),面数预算随之翻番。

继续压:Nautilus2501.14317,按"壳"组织面、尊重流形局部性)、 TreeMeshGPT2503.11629,沿邻接树生长、2 token/面、法线一致)、 Mesh Silksong2507.02477,每顶点只访问一次,~省 50%、保证水密/流形)、 DeepMesh2503.15265,首个把 RL/DPO 引入 mesh-AR,做到 ~30k 面)。 MeshArt 还把它推到带关节的可动网格(结构先行、再逐部件几何)。

§8.3与原生扩散融合 · 两条线在合流

另一支不发明花哨 tokenizer,而是简单到能直接套 LLMMeshXL2405.20853, Neural Coordinate Field,scale 模型/数据而非 tokenizer)、LLaMA-Mesh2411.09595, 把顶点/面当纯文本数字,现成 LLaMA tokenizer 直接生成,文本↔mesh 对话)。

趋势 · diffusion 出形状、AR 给拓扑

mesh-AR 正在和原生扩散合流:扩散生成稠密形状(CraftsMan、3DTopia-XL、Hunyuan3D-DiT), AR / remesh tokenizer 给出干净艺术家拓扑。最新的 FACE2603.01515, "一面一 token"把序列砍 ~9×)干脆把 face 级 AR latent 和图像→mesh latent diffusion 缝在一起。 这条军备竞赛的终点,越来越像"diffusion 管形状、AR 管拓扑"。

§8.4线二 · 纹理:迭代 project-and-inpaint 的起点

几何有了,还得上色。最早一代逐视角"渲深度 → 扩散补图 → 反投影到图集"地迭代上色:

TEXTure / Text2Tex— Text-Guided Texturing via Depth-Conditioned Inpainting
SIGGRAPH/ICCV 2023 Richardson et al. · Chen et al. · arXiv:2302.01721 · Text2Tex 2303.11396

怎么按文字给一个给定 mesh 上纹理。

关键想法:从一个视角渲 depth → depth 条件的扩散生成图 → 反投影回纹理图集 → 一个 trimap(保留/refine/生成)驱动下一个视角的 inpainting。Text2Tex 加逐 texel 动态 mask + 自动选下一最佳视角。

确立了经典"project-and-inpaint"循环——但视角间独立、串行,埋下了 drift 与接缝的隐患。

§8.5同步 / UV 空间扩散 · 消灭 drift 与接缝

SyncMVD / Paint3D / MVPaint / RomanTex— Synchronized Multi-View · UV-Space Diffusion

逐视角串行 inpaint → 颜色/风格drift、UV 与视角边界接缝

关键想法同步去噪所有视角——每步在 UV(纹理)域共享/混合 latent,让视角早早达成共识(SyncMVD);或直接在 UV 图集上扩散并去光照(Paint3D);MVPaint 做到基本不依赖 UV 展开;RomanTex 用 3D-aware RoPE 把 2D 多注意力绑到几何上、改善背面。

从"串行独立去噪"变成"联合同步去噪"——drift 与接缝基本消失。

§8.6PBR · 把光照从颜色里拆出来

迭代 RGB 方法把高光、阴影、固定光向烤进颜色——单帧好看,进引擎重光照就崩。生产要的是 PBRalbedo(无光照基色)+ metallic-roughness(怎么反光)+ normal(表面微细节),由渲染器配任意环境光合成。

FlashTex / Paint-it / MaterialMVP · Hunyuan3D-Paint 2.1— 可重光照 PBR 材质生成

烤死光照的纹理无法重光照(痛点 d 的"能用")。

关键想法:Paint-it 用卷积重参数化 + SDS 优化出干净 PBR;FlashTex 用 LightControlNet 把材质和光照解耦、~10× 提速;MaterialMVP 做端到端多视图 PBR 扩散(光照无关 albedo + 对齐的 metallic-roughness);Hunyuan3D-Paint 2.1 是首个开源生产级多视图 PBR。

输出从"带光照 RGB"变成光照无关的 albedo + MR + normal 栈——资产可重光照、能进游戏/影视。

还有非扩散的前馈路线 TexGaussian2411.19654,八叉树高斯一次前向回归 PBR), 以及把材质和几何一起生成的 3DTopia-XL(PrimX 里就带 albedo+材质,见 §7.1)。 统一的终点:Hunyuan3D 2.x / Step1X-3D 把同步 PBR 直接折进"几何 + 材质"一个系统。

这一部的两条谱系,各一句话

① mesh-AR = 一场 tokenization 效率军备竞赛:PolyGen → MeshGPT(VQ codebook)→ AMT/EdgeRunner/BPT(压序列)→ 局部性/访问一次(Nautilus/Silksong)→ DeepMesh(DPO,30k 面)→ FACE(一面一 token),并与扩散合流(diffusion 出形状、AR 给拓扑)。 ② 纹理 = 从烤死的迭代 inpaint 走向同步 PBR:TEXTure/Text2Tex(drift+接缝)→ SyncMVD/Paint3D/MVPaint/RomanTex(同步/UV/3D-aware,消接缝)→ Paint-it/FlashTex/MaterialMVP/Hunyuan3D 2.1(可重光照 PBR),最终被折进统一的几何+材质系统。