最近看论文DensePose里面有一个概念叫做——UV纹理贴图坐标。对此我先进行了一个大概的了解。
“UV”是纹理贴图坐标的简称。它定义了图片上每个点的位置的信息。这些点与3D模型是相互联系的,以决定表面纹理贴图的位置。就好像平面的布料,剪裁制作成立体的衣服一样。UV就是将图像上每一个点精确对应到模型物体的表面。在点与点之间的间隙位置由软件进行图像光滑插值处理。这就是所谓的UV贴图。
简单的说:
对于三维模型,有两个最重要的坐标系统,一是顶点的位置(X,Y,Z)坐标,另一个就是UV坐标。模型是立体的,坐标系遵循 XYZ。要贴上去的图片是平面的,遵循的坐标为UV(还有W,深度意思)。如何把平面的二维(UV)图片的每一个点与三维的模型(XYZ)的每一个点一一对应,这个中间就需要UV坐标来控制。2D到3D的对应方法,我们就说“贴图映射”,也就是3d模型在平面贴图上的投影。
比如说:
裁缝制作衣服。不同的布料就是二维的平面贴图。你的身体就是三维模型。裁缝就是UV映射系统。裁缝按照你的身体数据(XYZ),把不同的布料进行剪裁(UV),然后通过缝纫机进行缝制(映射),然后穿到你的身上。
另外,由于三维物体表面有大有小是变化的,这意味着我们要不断更新纹理坐标。但是这在现实中很难做到。于是设定了纹理坐标空间,每维的纹理坐标范围都在[0,1]中,利用纹理坐标乘以纹理的高度或宽度就可以得到顶点在纹理上对应的纹理单元位置。纹理空间又叫UV空间。对于顶点来说,纹理坐标相对位置不变。