一句话搞定3D模型纹理贴图,全程只需30秒,港大港中大TCL出品 | ICCV'23 Oral

用上扩散模型,3D物体生成纹理一句话就能搞定!

像是输入“一张带有棕色和黑色几何图案的椅子”,扩散模型就能立刻给它复个古,贴上颇具年代感的纹理:

甚至只是丢给它一张看不出桌面长啥样的“截图”,AI也能立刻凭借想象力,给桌面加上木质的细节纹理:

要知道,给3D物体加上纹理,可不只是“变变颜色”这么简单。

它包含粗糙度、反射、透明、漩涡、泛光等大量参数,要想设计好不仅需要了解材质、灯光、渲染等知识,还需要反复测试渲染效果并修改。如果材质有变,更是可能“重头来过”。

游戏场景中纹理丢失的效果

然而,此前用AI设计出来的纹理又“不太能看”,因此设计纹理一直费时费力,成本也比较高。

现在,来自港大、港中文和TCL的研究人员,搞出了一种AI设计3D物体纹理的新方法,不仅完美保留物体之前的形状,而且设计出来的纹理真实感更强、完美贴合物体表面。

目前这项研究已经被ICCV 2023收录Oral论文。

这究竟是怎么做到的?我们一起来看看。

用上扩散模型,3D纹理一句话搞定

此前用AI设计3D纹理,主要存在两类问题。

一类是生成的纹理不真实,细节有限:

另一类是生成过程中会对3D物体本身的几何做特殊处理,使得生成的纹理无法和原物体完美贴合,会“冒出”奇怪的形状:

因此,为了能确保3D物体结构稳定、同时生成细节逼真的纹理,这项研究设计了一个名叫Point-UV diffusion的框架。

这个框架包含“粗设计”和“精加工”两个模块,都基于扩散模型打造,不过二者用到的扩散模型有所不同。

首先在“粗设计”模块中,训练一个以形状特征(包括表面法线、坐标和遮罩)为输入条件的3D扩散模型,用来预测物体形状中每个点的颜色,从而生成一个粗糙纹理图像效果:

然后在“精加工”模块中,又设计了一个2D扩散模型,进一步将之前生成的粗糙纹理图像和物体形状作为输入条件,用来生成更加精细的纹理:

之所以采取这种设计结构,是因为之前的高分辨率点云生成方法,计算成本通常过高。

用这种两阶段生成的方法,不仅节省了计算成本,让两个扩散模型“各司其职”,而且相比之前的方法,不仅保留了原来3D物体的结构,生成的纹理也要更加精细。

至于通过输入文字或图片控制生成效果,则是CLIP的“功劳”。

针对输入,作者会先用预训练的CLIP模型提取文本或图像embeddings,然后将它输入一个MLP模型中,最终将条件整合进“粗设计”和“精加工”两阶段的网络中。

这样一来,就能实现通过文字和图像控制生成的纹理,从而得到最终输出结果。

所以,这样的模型实现效果究竟如何?

生成速度从10分钟缩短至30秒

先来看看Point-UV diffusion的生成效果。

从效果图中可见,除了桌椅,Point-UV diffusion同样还能生成汽车等物体的纹理,种类更丰富:

不仅能根据文字生成纹理:

也能根据一张图像生成对应物体的纹理效果:

除此之外,作者们还将Point-UV diffusion生成纹理效果与之前的方法做了个对比。

从图中可见,与Texture Fields、Texturify、PVD-Tex等其他纹理生成模型相比,Point-UV diffusion在结构和精细度上都表现出了更好的效果。

作者还提到,同样硬件配置下,相比Text2Mesh需要10分钟的计算,Point-UV diffusion只需要30秒

不过,作者也提到了Point-UV diffusion目前还存在的一些局限之处,例如当UV贴图存在太多“碎片化”的部分时,它还是无法生成无缝的纹理效果。此外,由于依赖3D数据进行训练,而3D 数据的精细化质量和数量目前还不能达到2D 数据的水平,生成的效果暂时还无法达到像2D图像生成那么精细化的效果。

打开APP阅读更多精彩内容