![]()
你可能没意识到这件事有多反常。
过去几年所有做3D纹理生成的团队,都卡在同一个地方:要训练一个能给3D模型上色的AI,必须先喂给它海量高质量的3D素材。可3D素材这东西,拍摄建模成本高,数量稀缺,业内一直把它当成绕不开的硬门槛。
腾讯这篇论文的标题就是在挑战这个共识:原生3D纹理生成,真的非要3D素材才能训练吗?答案居然是不需要。他们提出的Tex-Zero,全程只用2D图片训练,最后却能给真实的3D模型生成高质量纹理,效果还反过来超过了用3D数据训练的同类方法。
这事听起来有点玄,我们一步步拆开看。
**先搞清楚:3D纹理生成到底在做什么**
你买到一个游戏里的3D角色模型,它身上的衣服颜色、皮肤质感、金属反光,这些"颜色信息"是怎么贴到立体模型表面上的?
传统做法叫"投影上色":先用2D图像生成技术画出角色的正面、侧面、背面照片,再把这些照片像贴纸一样投影粘贴到3D模型表面,拼接融合。这个方法的问题是,拼接处容易出现接缝错位,不同视角拍出来的颜色对不上,整体看起来不协调。
原生3D纹理生成*:直接在三维空间里给每一个表面点预测颜色,不走"先画平面图再贴上去"的老路,而是让AI在立体空间里直接思考颜色该怎么分布。
这种方法理论上更干净,不会有拼接误差。但训练这类模型需要什么?需要大量"几何形状加对应颜色"的配对数据,也就是真实的3D素材。而高质量3D素材的采集,需要专业设备、专业建模师,成本极高,数量永远跟不上需求。这是整个领域共同面对的瓶颈,这篇论文发表之前,所有主流原生3D纹理模型,包括NaTex、TRELLIS,都是在这堵墙里打转。
**关键的洞察:2D图片和3D纹理,本质是同一种数据结构**
研究者们注意到一件事:2D图像里,每个颜色对应一个二维平面上的像素位置。3D纹理里,每个颜色对应三维表面上的一个点。
说白了,两者都是"给空间中的位置分配颜色"。差别只在于空间维度,一个是二维平面,一个是三维曲面。
如果这个结构是相通的,那是不是可以把海量现成的2D图片硬生生改造成3D训练样本?
**图片变成三维物体,靠的是三步操作**
论文的核心方法听起来简单到有点离谱:把一张2D图片当成一块漂浮在三维空间里的平面,然后把这块平面切成很多小块拼图,给每一小块随机做三维旋转,最后把这些旋转后的碎片聚拢堆叠在一起,形成一个有复杂凹凸关系的立体结构。
具体来说,第一步是把图片的每个像素看成三维空间里z=0平面上的一个点,位置由像素坐标决定,颜色由像素RGB值决定。这一步没有信息损失,原图的每一个细节都原样保留,只是换了个坐标系。
第二步是把这张平面图切成一个个方块小拼图,通常是4×4共16块。每一块独立随机旋转,角度在0到360度之间随机抽取。旋转只改变方块的空间位置和朝向,方块内部像素之间的相对距离不变,颜色也完全不变。
这里有个容易被忽略的细节:为什么不能让整张图直接随机旋转一次就完事,非要切成小块分别旋转?
原因在后面的消融实验里揭示得很清楚。如果整张图不切块,只做一次整体随机旋转,所有点依然共面,这意味着三维卷积网络里有大量"离开这个平面方向"的参数,永远接收不到任何梯度信号,等于白白浪费。网络学不到真正的三维空间关系。只有切成小块独立旋转,才能让一个训练样本里同时出现多种朝向的局部表面,逼着网络学习不同方向之间的空间关系。
这就像给一个从没见过立体积木的孩子,只给他看一张平放的拼图,他永远学不会"积木可以叠起来、挡住彼此"这件事。但如果你把拼图剪碎,打乱朝向,堆成一座小山,孩子才会第一次体会到"前面的碎片挡住后面的"是什么意思。如果不切碎直接整体转,堆出来的东西内部还是铁板一块的平面,根本没有碰撞、遮挡、层叠这些立体世界里真实存在的关系。
第三步是聚合,把这些旋转后的碎片塞进一个有限的三维区域里,让它们的边界框互相重叠而不是散落得老远。这一步是为了让碎片之间产生"遮挡"关系,这正是真实3D物体表面常见的现象:一块表面挡住另一块,从某个角度看不到被挡住的部分。
**体素网格*:三维空间里的"像素格子"**
把连续的三维空间切成一个个小立方体格子,每个格子就是一个体素,相当于三维版的像素点,用来给稀疏的点云数据定位和存储。
旋转聚合之后的点被分配进体素网格,如果多个点落进同一个格子,只保留第一个,位置颜色都不改。这样处理完,原本一张平面图,就变成了一个有真实遮挡关系、有多种局部朝向的三维彩色点云,可以直接喂给3D模型当训练数据。
**VAE*:变分自编码器,一种能把数据压缩成简洁编码再还原回去的神经网络结构,常用于学习数据的"精华表示"。**
论文先用这套构造出来的数据训练了一个叫Tex-Zero VAE的模型,它的任务是学会把三维表面的颜色编码压缩,再精确还原回来。神奇的地方在于,这个VAE从头到尾没见过一个真实的3D物体,但测试的时候拿真实3D模型给它,它却能准确重建出细节,连模型表面的小字都能清晰还原。
这是不是有点反直觉?一个完全没上过3D素材课的学生,考3D重建的试却拿了高分。原因其实藏在前面说的构造逻辑里:VAE真正需要学的不是"什么是一个合理的3D物体",而是"在一堆空间里排布的点,怎么把颜色信息精确编码再解码"。真实3D物体的表面也是由局部平面拼接、互相遮挡构成的,只要构造数据里包含了同样的几何关系类型,VAE学到的编码解码能力就能迁移过去,不需要物体本身"长得像"真实的桌子椅子或者游戏角色。
更有意思的结果是,这个VAE顺带还获得了一项额外技能:它能高质量重建普通的2D图片,把图片当成一个平面放进三维空间去编码解码,保真度甚至超过那些专门用3D数据训练出来的VAE。原因不难理解,它从头到尾吃的训练数据全都来自高质量2D图片,自然对2D图片的细节保留能力更强。
**统一潜空间*:让两种不同形式的数据,在AI内部用同一套编码规则表示,减少信息转换时的损耗。**
这个附带技能后来变成了整篇论文第二个关键设计的基础。
**DiT*:一种基于Transformer架构的扩散模型,通过逐步去噪的方式从随机噪声生成目标内容,这里用来一步步"画出"3D纹理。**
论文接着训练了Tex-Zero DiT,用来根据给定的几何形状和多视角参考图片,生成最终的3D纹理颜色。这里有个设计选择很关键:给DiT输入的多视角参考图片,不是用普通的图像编码器(比如DINO)去处理,而是把这些参考图也当成三维空间里的平面,送进前面那个Tex-Zero VAE编码,和目标纹理用同一套编码规则表示。
论文做了对比实验,专门验证这个设计有没有必要。如果用图像专用的DINO编码器处理参考图,生成结果LPIPS误差(越低越好)是0.1228;换成一个独立训练的VAE,误差降到0.0838;换成和3D纹理共享、但训练数据是3D素材的VAE,误差是0.0835,几乎没有提升;而换成Tex-Zero VAE(同样是共享结构,但训练数据是2D图片),误差直接降到0.0481,是前面几种方案里最好的。
数字背后的意思是什么?用两套不同的"语言"分别描述参考图和目标纹理,AI得先做一次"翻译",翻译过程本身会丢信息。换成同一套语言,就不用翻译了,信息传递的损耗自然变小。而这套共享语言之所以好用,恰恰是因为它用2D图片训练出来,对图像细节的保留能力特别强,相当于这门"共享语言"的词汇量格外丰富。
这里的类比可以想得更具体一点:两个人合作翻译一本书,一个人只懂法语不懂德语,另一个人只懂德语不懂法语,中间非得找个翻译官周转,原文的双关语、语气细节,翻译两次基本就丢光了。但如果两个人都懂一门共同的语言,直接用这门语言交流,信息传递的失真会小得多。VAE在这里扮演的正是这门"共同语言"的角色,而且这门语言词汇量越大(图片细节保留能力越强),信息损耗就越小。
**从训练到生成,整个链路如何串起来**
实际训练Tex-Zero DiT时,用的数据集规模不小,混合了SA-1B、BLIP3o-60k和ShareGPT-4o三个公开图片数据集,总共约1110万张图片,全部缩放到1536×1536分辨率。模型结构直接借用了FLUX的多模态DiT架构,用旋转位置编码来区分不同视角的token,还设计了一套四维坐标索引,给目标纹理token和六个不同方向(前后左右上下)的参考图token分别打上标签。
训练过程里有个细节值得一提:每次训练并不是把六个方向的参考图全部喂给模型,而是随机抽取其中一部分视角组合。这样做的用意是让模型习惯各种不同的"看到多少信息"的情况,因为现实中用户提供的参考图数量和角度是不确定的。
还有一点,构造出来的训练样本里,每个图片碎片的部分区域会被其他碎片遮挡,导致参考图里看不到完整内容,但目标纹理里这部分内容其实是完整保留的。这种"看得到的部分和看不到的部分来自同一张原图,内容本身是连贯的"的特性,天然构造出一个类似图像补全(outpainting)的训练任务,逼着模型学会从看得到的区域推测看不到的区域该长什么样。这个能力迁移到真实3D物体上时,正好对应"从几个有限角度的参考图,推测出完整360度纹理"的实际需求。
**实验结果说了什么**
数字层面,Tex-Zero在六视角评测设置下,LPIPS误差为0.0340,PSNR为35.68,SSIM为0.983,三项指标都明显优于对照组NaTex(LPIPS 0.0754,PSNR 27.74)和TRELLIS.2。单视角评测下优势同样存在。
VAE重建方面,针对2D图片重建,Tex-Zero VAE的PSNR达到39.82,SSIM为0.956,比用3D数据训练出来的同架构VAE(PSNR普遍在29到37之间)高出不少;针对真实3D素材重建,Tex-Zero VAE的表现也能和专门用3D数据训练的方案掰手腕,差距很小,部分指标甚至反超。
论文还做了一个值得关注的延伸实验:如果手头确实有3D素材,2D图片数据是不是就没用了?答案是不是,混合使用2D和3D数据训练出来的VAE和DiT,效果比单纯用3D数据训练更好。VAE的LPIPS从0.0343降到0.0140,PSNR从41.84提升到42.85;DiT的LPIPS从0.0302降到0.0216。这说明2D图片提供的信息,和3D素材提供的信息不是互相替代关系,而是互相补充。
**这件事到底在挑战什么**
回到最开始的问题。这篇论文真正撼动的,是整个3D生成领域长期以来的一个默认假设:训练3D模型,数据必须来自真实3D世界。
但Tex-Zero证明的是,模型真正需要学习的东西,可以被拆解成两部分,一部分是颜色纹理的精细表达能力,另一部分是空间几何关系的组织规律。前者2D图片完全能够提供,后者则可以人工构造出来,不需要来自语义上真实有意义的物体。
这个思路其实不是孤例。论文里提到的LRM-Zero用程序化生成的几何体训练重建模型,MegaSynth把这个思路扩展到大规模场景重建,VFusion3D则用视频扩散模型生成几百万合成多视角样本训练重建模型。这些工作共同指向一个方向:精心设计的合成数据,即便不完全匹配真实数据的语义分布,依然可以泛化到真实世界的输入上。Tex-Zero把这个思路第一次用在了原生3D纹理生成这个具体任务上,此前这个领域一直被认为必须依赖真实3D资产。





京公网安备 11011402013531号