maya uv 编辑实例系列
下面让我们通过一个简单的例子,了解 uv 编辑和应用的一般过程,对 uv 有一个初步的认识。(对 uv 有一定了解的朋友可跳过此小节)
我们的学习目标是根据下图的色彩设计稿,为模型分配 uv ,并根据安排好的 uv 绘制简单的贴图。
源模型建成后, uv 重叠和拉伸太多几乎不可用,如下图,我们必须根据要求重新映射和编辑 uv 。
让我开始吧!
1 :打开文件 box_uv.mb ,在选择 window %26gt; uv texture editor 打开 uv 编辑器,选择视图中的物体,从 uv 编辑器中我们会发现物体 uv 很乱。
2 :我们从小的 box 物体开始着手。打开 hypershade ,创建一个 lambert 材质,将 uv_test_2.jpg 指定给它的 color 属性,再将材质球指定给视图中的物体。
将贴图的 place2dtexture 属性中的 repeatuv 都改为 10 ,使贴图方格更密一些,从视图中我们可以看出因为 uv 重叠和拉伸物体上的方格贴图很不规则。如下图
2 :按 f11 ,进入物体的面选择模式,选择顶部的圆柱体的面,点击 edit polygons %26gt; texture %26gt; cylindrical mapping ,给它一个圆柱体贴图,视图上会出现圆柱体贴图操作器,现在可以看出小方格贴图已很规则了。
按 f12 ,进入物体的 uv 选择模式, uv 点显示为紫色,在圆柱体上选择任意一些 uv 点,在 uv texture editor 编辑器菜单中选择 select %26gt; select shell ,这样我们就选择了圆柱体 uv 块。在 uv texture editor 编辑器中,按 w 键使用移动工具将其移至旁边,避免与其他 uv 重叠,有利于看得更清楚。
按 r 键使用缩放工具,缩放 uv 点,同时观看 3d 视图直至方格纹理变成正方形。
3 :以同样的方法给侧面的两个圆柱体映射 uv ,由于侧面的两个圆柱体方向不一样,映射后我们要在通道栏中选择映射节点,旋转映射轴向 rotatex 为 90 度,并将 uv 块拖至旁边。
4 :选择物体顶部的面,选择 edit polygons %26gt; texture%26gt; planar mapping %26gt; ,打开 keep image ratio 选项,将 mapping direction 选项改为 y axis ,如下图,点击 apply 完成平面映射,并将映射的 uv 块移至旁边。
5 :以同样的操作方法完成物体余下的面,左右、前后和下部,注意选择相应的轴向,也就是 mapping direction 选项,完成各个面的平面映射,并将映射的 uv 块移至不同的位置避免重叠。
6 :进一步给未完善的地方映射 uv ,例如圆柱体的顶部、立方体正面和后面的凹槽边缘。
选择 3 个圆柱体的顶部的面,点击 edit polygons %26gt; texture%26gt; automatic mapping ,给予 3 个面自动映射方式。
立方体正面和后面的凹槽边缘与其他面一样使用平面映射方式,使用时将选项中的 mapping direction 改为相应的轴向。
7 :到此我们已将物体的 uv 分成很多块面,已解决了重叠和拉伸。
8 :使用缩放工具,缩放调整各个 uv 块面,并观察视图使方格看起来都一样大小,这样 uv 就有一个统一的比例。
根据需要选择 uv 块面的边,点击 uv texture editor 编辑器菜单 polygons %26gt; move and sew uvs 命令,缝合一些 uvs ,将 uvs 拼成几个大的块面,这样利于减少 uvs 的接缝。
使用缩放和移动工具,将所有的 uv 块面安排在 0-1 的空间,并充分地利用这个空间。
9 :在 uv texture editor 编辑器菜单中选择 polygons %26gt;uv snapshot... ,输出一张 1024 尺寸 uv 图。
在 photoshop 中,打开输出的 uv 图,根据色彩设计稿和 uv 线框绘制纹理。创建一个新的材质球,将刚绘制纹理作为它的 color 贴图,并将材质球指定给视图中的物体。
如果感觉还不错,用同样的方法完成另一个物体吧!
最终效果如下图:
2.认识uv
好的贴图纹理必须基于合理的 uv 分布。
uv 是定位 2d 纹理的坐标点, uv 直接与模型上的顶点相对应。模型上的每个 uv 点直接依附于模型的每个顶点。位于某个 uv 点的纹理像素将被映射在模型上此 uv 所附的顶点上。多边形和 nurbs 物体 uv 存在的方式不同,多边形的 uv 是一个可编辑的元素,而 nurbs 的 uv 是表面内建的,且不可编辑。
多边形和 nurbs 的 uv 各有优点:
多边形的 uv :优势在于可灵活编辑,缺点是对于复杂的模型需要花费大量的时间来映射和编辑 uvs 。
nurbs 的 uv : uv 延展均匀、完整和不重叠性是 nurbs 的自身 uv 的优点。但模型布线要求相对均匀,否则会拉伸纹理。
多边形模型的 uv
nurbs 模型的 uv
打开文件: 5.1_about_uv.mb ,并打开 uvtexture editor 窗口,当我们选择多边形物体时,物体的 uvs 也会在 uv texture editor 窗口显示。
通过选择多边形的 uv 元素遮罩, 我们可以拖动所选择的绿色 uv 点。当选择 nurbs 物体时 uv texture editor 窗口只显视灰色的不可编辑的参数线。
3.nurbs的uv
按定义, nurbs 表面有 4 个边并有规律地排列 uv 参数的行和列。在 nurbs 表面中, uv 始终存在,不像多边形需要创建或编辑,它具有 nurbs 面片内置的、不可以进行编辑的特性。而 polygon 与 subdiv 的 uv 是作为一个可编辑的元素。
法线决定 nurbs 曲面的正反,射出法线的面为正面。用“ uv 右手定则”可以方便地定义哪边是正面,如下图,如果拇指指向 u 正方向,食指指向 v 正方向,中指垂直于食指和拇指,指向 nurbs 表面的法线。表面法线的概念对纹理、渲染很重要。
选择 nurbs 模型,使用 display %26gt; nurbs components %26gt;Surface origins 命令,可以显示 uv 的方向,缺省情况下红色为 u 向,绿色为 v 向,蓝色为法线方向。想看到法线,先选择表面再选择 display %26gt; nurbs components %26gt; normals(shaded mode)
显示法线的 nurbs 表面
显示 uv 的方向
如果 2d 纹理在 nurbs 面片上放置的话,不管 uv 边的比例是不是 1 : 1 ,都可看作 nurbs 面片的 uv 充满纹理的 0~1 正方形空间。如下图:
不同长宽比的 nurbs 面片应用相同尺寸的纹理
纹理的 0~1 空间,上图中的 4 个红色空心点,分别定义纹理的 4 个边界,这 4 个点组成的空间为 0~1 的纹理空间
在 maya 中,如果文件纹理是正方形的,在渲染时将会的得到最佳效果。使用非正方形的纹理会增加一定的渲染时间,一般的做法是在绘图程序中将图像尺寸改为 2 的冥次方,例如 256x256 , 512x512 , 1024x1024 等。
nurbs 的 uv 分布受模型表面参数线的影响。如果模型 isoparms 的分布不均匀,就造成默认 uv 分不不均,从而拉伸了二维纹理贴图。应此在 nurbs 建模过程中尽量保持型 isoparms 参数线的分布均匀。
2d 纹理指定给每个 n u r b s 表面,表面根据内建的 uv 定义纹理分布
使用棋盘格文件纹理可以非常清晰的看到 nurbs 表面因参数线不匀而产生的贴图拉伸。
如上图,当上图正方形纹理指定给非正方形 nurbs 表面时,纹理产生了一定的挤压和拉伸,可以从图中看出纹理中上的数字严重挤压,在 photoshop 中绘制纹理时会产生不可预期的效果。
闹钟外壳纹理挤压和拉伸渲染后的效果
钟表板的 nurbs 参数线分布均匀贴图没有拉伸变形
在 nurbs 建模过程中,注意一些布线规则有利于方便的应用纹理。尽量使表面参数线间隔均匀,即等参线的网格均匀,避免波纹曲线出现,避免参数线间隔在不需要造型的地方忽宽忽窄,当然参数线间隔不可能绝对相等,只是相对即可,如下图:
(4)使用fix texture warp选项
选择 nurbs 模型,打开属性编辑器,在 texture map 栏中打开 fix texture warp 选项,可以对纹理的不均匀分布进行修正。而不需要依赖于 nurbs 表面的 uv 参数, grid div perspan u 、 grid div per span v 、表示 u 向和 v 向每跨度的、分割数目,默认数值是 4 ,数值越大纹理分越均匀。
打开 fix texture warp 选项后,操作视图不能实时显示出来,只有渲染后才能看到。
应用 fix texture warp 选项后渲染后,与左图相比,纹理虽然有拉伸,但分布相对均匀。
虽然纹理分布均匀,但还是有拉伸,这是应为我们使用的是 1 : 1 的纹理贴图,而闹钟壳的 nurbs 面片长宽比不是 1 : 1 。下面进一步调整 nurbs 模型的纹理,是其比例正确。
在 hypershader 窗口中,选择模型的 place2dtexture 节点,打开属性编辑器,调整 coverage 的数值,同时察看渲染视窗的更新效果,使用 ipr 渲染可快速看到调整结果,直到棋盘格看起来变为正方形为止。
根据 ipr 渲染结果,判断纹理贴图使用范围,从上面的例子可以看到纹理只使用整个面积的 1/3 左右。根据比例在绘图软件中绘制贴图,然后指定给模型。
(5)确定贴图长宽比例
还有一种方法确定纹理比例,使用 arc length 测量工具测量出 nurbs 表面的精确弧长,再根据比例绘制贴图。
确定贴图长宽比例具体步骤:
1 :测量模型
使用弧长测量工具, creat%26gt;measure tools%26gt;arc length tool 测量表面 u 向和 v 向的长度。测得的长度为 7.94 和 34.8 。
2 :绘制贴图
根据测的长宽比,在绘图软件中绘制贴图纹理。
3 :更改边长
在绘图程序中将图像尺寸改为正方形,边长为 2 的冥次方,例如 512x512 , 1024x1024 等。
4 :调整 2d 布置节点
2d 布置节点决定二维纹理在模型表面的分布,将 u 向 coverage 数值改为 4.3 ( 34.8/7.94 ≈ 4.3 )。
5 :渲染完成
需要注意的是:不必计算得绝对准确,只要纹理从视觉上看来没有拉伸就行。
(6)nurbs表面的参数化
nurbs 表面参数化直接影响贴图效果, nurbs 表面参数化分为:统一参数化( uniform )、弦长参数化 (chord length) 两种。统一参数化表面具有更可预见的值,弦长参数化的表面可以较好的分配曲率,允许纹理相对均匀地分配在不均匀的表面上。
使用 fix texture warp 属性可改变纹理分配使纹理分配更均匀,在制作动画时,如果表面有局部变形,贴图会滑动产生不正确的效果。
我们将通过 nurbs 曲线理解统一参数化( uniform )、弦长参数化 (chord length)
1 :打开 create%26gt;cv curve tool 工具选项,分别用 uniform 、 chord length 选项创建两条 nurbs 曲线(按 s 键使用吸附网格工具,保持两条线的 cv 点一致)
2 :选择 display%26gt;nurbs components%26gt;edit points 显示曲线的编辑点
3 :拾取遮罩 curve point ,在曲线上拖动, maya 视窗顶部会显示所在点的参数,并随着拖动不断变化。
4 :以统一点间距( uniform )参数创建的曲线,第一个编辑点的 u 值为 0 ,第二个的 u 值为 1 ,第三个的 u 值为 2 ,如此类推。第三个编辑点和最终编辑点的中间一点值为 2.5 。不管两个编辑点的实际距离有多长,所有两个编辑点间距离值是相等的。按这种方式计算曲线点值的方法称之为统一参数化。
以弦长点间距( chord length )参数创建的曲线,第一个编辑点的值为 0 ,第二个的值为 2.4907 ,第三个的值为 5.4379 。第三个编辑点和最终编辑点的中间一点值为 8.5402
曲线 u 向参数值取决与编辑点的距离,而不是点的数量。
曲面在三维空间中由 u 向和 v 向两个参数来定义,比曲线多一个 v 向参数,形成一个方形的 nurbs 面片。
(7)nurbs表面重建
下图用统一参数化创建的可乐罐,因为参数线不均匀引起贴图拉伸,从视图和渲染图中都可看出来。
打开表面 fix texture warp 属性可以解决此问题,如果可乐罐要做变形动画,这种方法是不可取的。我们需要重新创建表面,(不能使用 rebuild Surfaces 命令)
重建表面:
拷贝 项目文件夹至 硬盘 并打开文件 tin_rebuild_lo_ren_v001.mb
1 :选择可乐罐,按 1 键最低精度显示模型,并打开 edit curves %26gt; duplicate Surface curves %26gt; ,选择 v 向,复制 nurbs 曲线。
2 :选择复制的 nurbs 曲线,并拖到原可乐罐旁边,以便于比较。
3 :从下至上依次选择曲线,选择 Surfaces%26gt;loft%26gt; ,勾选 chord length 选项,重新放样表面。
4 :指定同一个材质给新生成的边面,(按 6 显示硬件纹理)可以看到纹理没有拉伸,获得我们需要的效果
5 :渲染后,纹理同样正确。
通过重建表面有利于做变形动画。
(8)nurbs表面方向
由于表面创建的方法不同,表面方向有可能不正确,可通过编辑 2d 纹理的 place2dtexture 节点属性或使用 edit nurbs %26gt;reverse Surface direction 来修正。
为了便于纹理贴图、渲染尽量将 uv 原点安排在左下角,法线朝外。良好的习惯将大大提升后续工作的效率。
利用小相架上的一张照片来了解 nurbs 表面的方向(像架是多边形,照片是 nurbs )
上图中相架上照片因为表面 uv 方向不正确,造成贴图定位不对没有达到预期的安排
reverse Surface direction 选项:
u :沿 u 向反转 cv , v :沿 v 向反转 cv , swap :交换 uv 方向, both : u 向和 v 向同时反转 cv
1 :打开文件 frame (项目文件夹)
2 :选择 nurbs 模型,使用 display %26gt; nurbs components %26gt; Surface origins ,打开 nurbs 表面的方向和法线显示,作为参考。
3 :选择 edit nurbs%26gt;reverse Surface direction%26gt; ,打开对话框选择 both ,反转表面方向。
4 :得到了我们所需要的正确效果。
(9)了解多边形的uv
多边形不像 nurbs 表面具有固有的 2d 坐标。多边形必须使用映射的方法来获取合理的 uv 坐标, uv 信息是基于 2 维的,是一个平面,可以在 uv texture editor 中看到并编辑。从 window%26gt;uv texture editor 打开 uv 编辑器。
我们在创建基本多边形几何体时也能创建缺省的 uv 坐标,但模型在编辑顶点及其他操作后,缺省的 uv 大多不可用,必须重新映射。
uv 操作在一般的工作流程的位置是:
缺省多边形几何体的 uv
编辑点操作后的 uv
为多边形指定 2 d 纹理, 并在视图中显示纹理( 按 6 键),多边形表面如果没有 uv 信息就会在视图中显示半透明的斜条纹,渲染后无 uv 信息的部分也不会显示纹理。这样的情况我们必须重新映射 uv 。
(10)多边形uv编辑的原则
多边形的 uv 编辑取决于不同的应用目的,当然也有制作人的习惯差异。一般来说最合理的 uv 分布取决于纹理类型、模型构造、模型在画面中的比例、渲染尺寸、镜头安排等。但有一些基本原则是应该遵循的。
通用的一些基本原则是:
1 、 uvs 尽量避免相互重叠(除非有必要)。
2 、 uvs 避免拉伸。
3 、尽可能减少 uvs 的接缝(即划分较少的 uv 块面)。
4 、接缝应安排在摄像机及视觉注意不到的地方或结构变化大、不同材质外观的地方。
5 、保持 uvs 在 0-1 的纹理空间,并充分利用 0-1 的纹理空间。
下面让我们逐步了解以上 5 点原则
1 、 uvs 尽量避免相互重叠(除非有必要)。
uvs 重叠 , 模型的贴图就会重叠,重叠的模型部分纹理就会相同,不利于纹理贴图的安排。例如我们将史卢比的衣服设计成前面红条纹,后面兰条纹,但由于左右两边的 uvs 重叠,造成贴图重叠两边只能颜色统一,不能达到我们的要求。展开 uv 就能解决此问题。
展开 uvs 得到正确的效果
如果遇到纹理图案需要重复的物体,则可以利用 uvs 重叠来节约一些纹理空间,例如瓷砖、天花板、花纹布、墙角线等等。从下图中我们可以看出墙角瓷砖 uvs 重叠了多次以获得图案的二方连续效果。在使用 uvs 重叠时要注意不应重叠太多,否则看起来不真实,因为现实生活中没有如此雷同的得物体。
(11)定制检测uv纹理的贴图
要正确使用 2d 纹理,我们就必须编辑多边形的 uv 。为了快速的映射和编辑多边形的 uv ,在此之前赋予多边形物体一个自定义的带标准方格图案的 2d 文件纹理,将有利与我们的操作。
maya 本身也有类似的功能,让我们来看看:
1 :创建一个缺省的多边形球,并选择它
2 :打开 edit polygons %26gt; texture %26gt; assign shader to each projectin
3 :给一个平面贴图, edit polygons %26gt; texture %26gt; planar mapping
4 :打开 hypershade 窗口,我们可以看见 maya 创建了一个命名为 defaultpolygonshader 带 checker 2d 程序纹理的 lamber 材质球,并指定给了我们所创建的多边形球体。通过球体上的棋盘格纹理我们可以即时地看到 uv 的编辑情况,如果棋盘格拉伸了,那么 uv 也拉伸了。
我们通常情况不使用这个纹理,这是因为它使用的是程序纹理 checker , maya 对程序纹理的最好硬件显示是 highest(256 × 256) ,其它的硬件显示纹理分辨率在视窗中不太清晰,如果使用最高硬件纹理显示,在编辑 uv 过程中的纹理可能在视窗中不能及时更新,给编辑带来一定的困难。建议使用自己定制文件纹理。
不同质量显示硬件程序纹理
上图是大家经常使用自定义的棋盘格纹理。在黑白方格中标出一些数字或字母有利于辨别 uv 方向。建议大家使用一些对比度不强的图案如下图,因为 uv 编辑是一项耗时的工作,长期面对黑白间隔的颜色不利于精神和眼睛的健康,从而彻底失去对编辑 uv 的兴趣。下图是一些长期从事 uv 编辑工作的制作者所制作的 uv 检测图。
经常更换 uv 检测图也是一个好主意,有利减轻疲劳。
利用 assign shader to each projectin 自动应用自定义的文件纹理:
1 :打开 edit polygons %26gt; texture %26gt; assign shader to each projectin
2 :创建一个 shader ,将自定义的贴图连接到 shader 的 color 属性。
3 :将 shader 重新命名为 defaultpolygonshader 。
4 :当每次给场景中的多边物体指定新的纹理映射方式时例如: planar mapping 、 cylindrical mapping 等, maya 就会自动将此 shader 赋予给多边形物体。
(12)uv映射方式
maya 有四种基本的 uv 映射方式,它们分别是:
1 :平面映射( planar mapping )
2 :圆柱体映射( cylindrical mapping )
3 :球体映射( spherical mapping )
4 :自动方式映射( automaticmapping )
可以通过 edit polygons %26gt; texture 菜单访问到,选择菜单命令后面的小方盒 可以打开这些指令的选项。
正确理解 maya 的映射方式,有利于我们的快速操作,平面映射一般应用于矩形的物体和一些相对比较平整的多边形面,例如桌子、木板等。
圆柱体映射主要用于圆柱体和类似圆柱体的物体,例如笔、角色的腿、手臂等。
球体映射主要用于球型物体,篮球、灯泡、西瓜等。
自动方式映射常应用于结构和起伏不太复杂的物体,以及某些规则的局部。
这些映射方式可以应用于整个多边形物体,也可以应用于部分表面,操作方法是:先选择多边形物体的部分面,再将映射方式指定给他们, maya 会出现相应的 uv 映射操纵手柄。(自动方式映射没有操纵手柄)
对一个稍微复杂的物体,一般在制作时需要选择不同的方式映射多次。
平面映射
圆柱体映射
球体映射
(13)映射操纵器和手
映射操纵器是给多边形物体 uv 映射时交互调节的工具,使用映射时, maya 会自动切换到 show manipulator tool 。
如果进行映射后看不到操作手柄,查看状态栏中的构建历史选项 construction history 是否关闭。在打开构建历史的情况下,在视图右边通道栏中点击映射节点再使用工具栏中的 show manipulator tool ,可以在任何时候显示映射操纵器进行调节。
(14)平面、圆柱体、球体映射的共同选项
点击映射命令后面的小方盒 ,我们可以看到会出现大量选项的对话框,不要被它们吓倒,大多数情况下这些选项都很少使用。先来了解一下它们有共性的选项。
insert before deformers 选项:
当多边形模型应用了变形时,这个选项即被相关联。如果打开这个选项, maya 会把 映射 uv 的操作放置在变形动画之前。如果关闭,纹理会受物体顶点变形的影响,导致纹理“游移”。绝大多数情况下我们都打开此选项。
automatically fit the projection manipulator 选项:
打开此选项后,映射的操纵器自动适配选择的模型(无论是一个还是多个或模型的面)。关闭时则可以由用户通过键入数值自行安排操纵器位置及其相应的大小、旋转、包裹范围等等。
绝大多数情况下我们都打开此选项让 maya 自动放置操纵器。
create new uv set 选项:
用于创建当前创建的 uvs 的新 uvset ,而不使用模型默认的 uvset 。激活这个选项之后可在 uv set name 栏中定义 uvset 的名称。
image center 选项;
image rotation 选项;
image scale 选项;
这 3 个选项一般也很少使用。 image center 用来确定 uvs 的在纹理空间的位置, image rotation 用来控制 uvs 的旋转, image scale 用来控制 uvs 的缩放。通过下图来比较一下它们的应用。
(15)平面映射的常用选项
keep image ratio 选项:
开启此项保持贴图长宽比例,使贴图纹理不产生变形,通常将此项打开。
关闭 keep image ratio ,贴图长宽比压缩
开启 keep image ratio ,保持贴图长宽比例
fit to best plane 选项:
对映射操纵器移动、旋转来适配选择的物体,主要应用于模型的一部分面(近似平面)进行 uv 映射。
fit to bounding box 选项:
映射操纵器根据模型的范围框( bounding box )适配大小,主要针对整个或多个模型使用。当打开 fit to bounding box 时,必须选择映射轴向( mapping direction ), x 轴、 y 轴、 z 轴或是 camera 方向映射。
(16)自动映射
自动映射为我们提供一种便捷的映射方法,自动映射是向模型映射多个面来寻求每个面 uv 的最佳放置。它会在纹理空间内创建多个 uv 片,它可以分别从 4 、 5 、 6 、 8 、 12 个面进行映射,如下示意图:
使用的面越多, uvs 的扭曲越小,自动映射一般会产生过多的 uv 块面,如果想要再完整一些的 uv ,对其进行缝合。
(17)texture菜单
texture 菜单
maya 提供非常全面的多边形的 uv 编辑工具,通过 edit polygons %26gt; texturex 子菜单可以访问它们。
让我们先来了解一下:
(18)uv编辑器
在 maya 中编辑 uv 主要是使用 uv texture editor 窗口,专门用于 uv 的排列与编辑,是 uv 编辑的主要工具。
使用 uv texture editor ,可在菜单 windows%26gt; uv texture editor 打开。
uv texture editor 有自己的窗口菜单与工具条,工具条实现的功能基本上能在菜单中找到。作为一个视图窗口,它与其它三维视图窗口的视图操作方法也完全相同。
a 键:显示所有的 uv , f 键:最大化显示所选择的 uv , alt 右键:缩放视图,中键滚轮:缩放视图, alt 中键:移动视图。
uv texture editor uv 编辑器
本3d教程完。