概述

    要理解UV映射,最好的类比是裁开纸板箱。箱子是一个三维(3D)物体,就好比场景里的立方体网格。

    拿一把剪子沿折线裁开盒子,就可以把它平铺到桌面。俯视桌子上的盒子,把左右方向称之为U,上下方向称之为V。图像就这样变成了二维(2D)。我们用U和V来代替常规的X和Y指代“纹理空间坐标”,后者通常(和Z一起)用来表示三维空间(3D)。

    重组盒子之后,UV坐标转换为盒子上的 (X, Y, Z) 坐标。计算机做的其实就是把一张二维图像包裹到一个3D物体表面。

    在UV展开过程中,需要在UV/图像编辑器中准确告诉Blender如何将物体的表面映射到一张平摊的二维图像。这一步你可以放手施为(继续上面的类比,想象一下,把展开的盒子放在桌面,裁成小块,拉伸和/或压缩这些小块,然后就像在桌面上一样已某种方式在图像中进行排列)。

    上面都是球面UV映射方法。上百种常用的投影方法都有其优点和缺点。在计算机中,Blender允许使用我们希望的任意方法。

    在更加复杂的模型里(就像上面的全球地图)引出了一个问题,哪些面不能裁开,但为了摊开而被拉伸。这有助于更简单的UV映射,不过会增加最终映射贴图的变形。(在一张摊开的地图上,靠近两极的国家或州看起来比靠近赤道的小一些)。

    半球范例

    3D 空间 (XYZ) VS UV空间。

    不难看出上图中3D空间和UV空间中的标记面形状和大小不一样。这种差异是3D物件(XYZ)转换为2D平面(即UV映射)的"拉伸"(技术上称之为映射)导致的。

    UV的优势

    尽管程序纹理 (前面的章节有介绍)很有用—没有重复而且总是 "适应" 3D物体—但对于更加复杂或者自然的物体就有些够用了。例如,使用程序生成头部的皱纹就无法获得准确的结果。人体头部的皱纹,或者汽车上的划痕并非出现在随机位置,而是取决于模型的形状和用途。手动绘制的图像,或者从真实世界捕捉的图像可以带来更多的可控性和真实感。对于细节如书籍封面、挂毯、地毯、污渍和细节道具,艺术家可以通过UV贴图控制物体表面的每一个像素。

    UV映射描述了贴图的哪一部分关联到模型的哪个多边形。多边形的每一个顶点都被指定对应一个二维坐标,后者定义了图像的哪一部分被映射至物体。这些二维坐标被称为UV(与三维中的XYZ形成对比)。生成UV映射的操作也称之为 "展开" ,因其就像把网格展开到一个二维平面上。

    对于大多数简单的三维模型,Blender提供了简单的自动展开算法。对于更加复杂的三维模型,常规的立方体、柱体或球体映射通常是不够用的。为了获得均匀和精确的投影,可以使用缝合线引导UV映射。这可以用于给任意并且复杂的形状(比如人体头部或者动物)应用贴图。通常这些贴图是使用GIMP、Photoshop或者其他用户喜爱的绘图软件绘制的图像。

    Note

    UV映射对于 游戏引擎 或者其他游戏,都是必不可少的 。这已经是对模型应用贴图的事实标准,几乎游戏里的任何模型都是使用UV映射的。