跳转到内容

Blender 3D:从新手到高手/UV贴图基础

来自 Wikibooks,为开放世界提供开放书籍

UV贴图是一种将2D图像纹理“包裹”到3D网格上的技术。“U”和“V”是平面轴的名称,因为“X”,“Y”和“Z”用于3D空间中的坐标。例如:增加球体上的“V”可能会沿着经线(南北)移动,而增加“U”可能会沿着纬线(东西)移动。

Blender 手册中提供了另一个解释。想象一个纸质的3D物体模型,例如球体,要平放在桌子上。球体上的每个3D坐标都可以映射到平面上的一张纸上的2D坐标。Blender 在 UV/图像编辑器中提供了顶点(坐标)的另一个视图。你可以在 UV/图像编辑器窗口中像在 3D 编辑器窗口中一样选择和编辑这些 2D 顶点。展开坐标的目的是将这些坐标映射到图像/图片,以便 3D 图像可以具有逼真的表面,这些表面纹理来自这些图像。

UV贴图基础

[编辑 | 编辑源代码]
添加球体
[编辑 | 编辑源代码]

我们将使用一个球体来进行演示。删除初始立方体 ( A  + X)。然后,创建一个新的模型,一个球体( Shift + A  → 添加 → 网格 → UV球体)。暂时将设置保留为默认值。

标记 UV 缝线
[编辑 | 编辑源代码]

在编辑模式下,选择球体最宽部分周围的一圈顶点(即赤道)。可以通过按住  Shift + Alt  并左键单击“赤道”来轻松完成此操作。

 Ctrl + E  并选择标记缝线,或选择网格标记缝线。这告诉 UV 展开器沿这些边切割网格。

展开网格
[编辑 | 编辑源代码]

接下来,创建一个用于 UV 映射的窗口:在 3D 窗口的右上角单击并向左拖动带小线的区域,将创建一个新窗口。使用新窗口左下角的下拉框或  Shift + F10  将其窗口类型设置为“UV/图像编辑器”。

在 3D 视图窗口中,通过按  A  选择所有顶点,然后按  U 展开。在 UV/图像编辑器中,你应该看到模型的所有顶点/面/边在 2D 空间中表示或“映射”。

如果什么也看不见,则需要从 UV/图像编辑器窗口中的屏幕布局下拉菜单中选择 UV 编辑。

应用图像
[编辑 | 编辑源代码]

现在我们将实际使用这个 UV 贴图。保存以下图像(单击以查看完整的高分辨率(4,096 × 2,048 像素))

通过单击图像打开图像或按  Alt+O  在 UV/图像编辑器窗口中加载它。然后使用抓取、旋转和缩放工具,调整 UV 岛屿(彼此不连接的 UV 组),使其与图像顶部完美对齐,如图所示。要选择一个 UV 岛屿,将鼠标悬停在岛屿上,然后按一个顶点和  L 

注意:由于图像的长宽比会扭曲 UV,因此只需像之前一样重新展开网格可能会更容易。然后,你可以根据需要调整 UV。

如果你在将图像与图像匹配时遇到问题,请在按下 S 之后使用 X 和 Y 字母。这将调整形状以适应图像。

[S]cale(缩放),[R]otate(旋转),[G]rab(抓取),[B]order selection(边界选择),[A] Select/Deselect all(全选/全取消选择)

欣赏你的新作品
[编辑 | 编辑源代码]

回到 3D 视图窗口,进入对象模式。模式菜单右边的下一个下拉菜单是视窗着色(绘制类型)菜单;使用它将视窗着色设置为纹理。请注意,模型的某些部分会根据场景中灯光的位置而被阴影覆盖,而其他部分则被照亮。尝试添加更多灯光并四处移动它们,以便更清楚地看到模型,并尝试使用这种灯光预览来“粗略”地调整你的灯光。(你可以在 3D 视窗中添加更多灯光 Shift-A-Lamp 并右键单击灯光以移动到需要光线的位置)

要使纹理在渲染中可见,还需要将纹理作为新材质添加到球体。在属性窗口中,通过单击小的阴影球按钮切换到材质上下文。通过按下新建按钮创建一个新的材质,暂时将设置保留为默认值;然后切换到纹理上下文。创建一个新的纹理并选择类型为“图像或电影”。从下拉菜单中选择地球纹理。


























然后转到映射菜单,将坐标设置为“UV”,将“映射”设置为“UVMap”,将投影保留为“平面”。这将利用我们之前展开的 UV。要使地球更平滑,请在属性窗口中切换到修改器上下文并添加一个细分曲面修改器;将细分数量设置为 2。然后按  T ,如果在 3D 视窗中没有工具架,则在着色选项下选择“平滑”。这将使地球更加平滑和逼真。

现在,只需按  F12  即可渲染你的场景!

请注意,在上面的渲染中,我已经更改了灯光和相机位置,以使图像更有趣。我还添加了一个星形背景,你可以在属性窗口的“世界”上下文(一个非常相关的巧合)和“世界”的纹理设置中找到此设置。

转到世界属性,并选中混合天空真实天空,将所有 3 种颜色(地平线、天顶、环境)设置为黑色。转到纹理设置,如果还没有在那里,请单击世界纹理设置(左上角的地球图标),并将类型设置为Voronoi。向下滚动到颜色面板,选中渐变,并将颜色停靠点 0 的颜色设置为白色,alpha 值为 1,将颜色停靠点 1 的颜色设置为黑色,alpha 值为 0。现在将会发生一些神奇的事情:将距离度量设置为闵可夫斯基 1/2,在噪声部分将大小设置为.002,并将 2 个特征权重设置为约 .5。最后,在影响面板中,选中地平线天顶向上天顶向下。这样就可以了。在一些旧版本中,有一个标准选项,但它已“消失”。





























































替代方法

[编辑 | 编辑源代码]

如果你仔细观察我们刚刚制作的纹理地球仪,你会注意到在“赤道”附近有一些线,或者说是“接缝”,那是两个UV岛的交界处。这是UV贴图中常见的问题,有几种方法可以避免它。在我们的例子中,由于我们使用的是球体,所以消除接缝的最佳方法是使用球面映射。

首先从以下链接下载其中一个纹理:http://earthobservatory.nasa.gov/Features/BlueMarble/BlueMarble_2002.php。然后使用这个纹理来代替我们最初下载的纹理。

进入编辑模式,选择球体的所有顶点。按下 U 球面投影。如果你打开了UV/图像编辑器,你应该会看到一个完全不同的UV贴图,如下图所示。请注意,只有“展开”选项会使用我们刚刚制作的接缝,其他所有选项都会完全忽略它。

你也可以尝试,尤其是在你用更详细的地图来代替接缝的时候:首先用立方体投影展开,然后用球面投影展开。现在它就像一个正方形的UV。

现在让我们让UV更均匀地分布在纹理上。在UV/图像编辑器中,按下UVs约束到图像边界。这将确保在编辑过程中,任何UV都不会超出纹理的边界;如果超出边界,就会导致纹理在超出边界的UV区域重复。

现在用 A 选择所有UV,然后将它们放大,直到被图像边界阻止。在我的例子中,右上角有一个顶点,右下角还有几个顶点距离其他UV很远;为了解决这个问题,我简单地选择了这些顶点并将它们移到更靠近其他UV的位置。

现在只需将所有UV沿着X轴缩放,直到UV延伸到整个图像。这个操作与在3D视口中缩放完全一样,按下 S  X ,然后拖动鼠标。

现在重新渲染你的模型,你会发现没有接缝了!你也可以使用带云的图像。如果你渲染它,你会看到接缝。你可以通过在第一次渲染后使用颜色选择器将材质的漫反射色设置为海蓝色来稍微掩盖它(如果看起来不错,那就很好)。

华夏公益教科书