日志 教程
当前位置: 教程  >  动漫设计  >  三维建模  >  正文

【动漫设计教程】MayaUV 编辑实例

作者:云世界NPC 发表于 2015/4/16 9:53:42     评论(9)     阅读(5705)     

MayaUV编辑实例,通过十八个章节对各功能如何应用的介绍,使初学者能够快速吸收经验,理解透彻后上手操作。

一、通过一个简单的例子,了解UV编辑和应用的一般过程,对UV有一个初步的认识。

我们的学习目标是根据下图的色彩设计稿,为模型分配UV,并根据安排好的UV绘制简单的贴图。

源模型建成后,UV重叠和拉伸太多几乎不可用,如下图,我们必须根据要求重新映射和编辑UV。

1:打开文件box_uv.mb,选择Window; UVTextureEditor打开UV编辑器,选择视图中的物体,从UV编辑器中我们会发现物体UV很乱。


2:我们从小的Box物体开始着手。打开Hypershade,创建一个Lambert材质,将uv_test_2.jpg指定给它的color属性,再将材质球指定给视图中的物体。

将贴图的Place2dTexture属性中的RepeatUV都改为10,使贴图方格更密一些,从视图中我们可以看出因为UV重叠和拉伸物体上的方格贴图很不规则。


3:按F11,进入物体的面选择模式,选择顶部的圆柱体的面,点击EditPolygons;Texture;CylindricalMapping,给它一个圆柱体贴图,视图上会出现圆柱体贴图操作器,现在可以看出小方格贴图已很规则了。

按F12,进入物体的UV选择模式,UV点显示为紫色,在圆柱体上选择任意一些UV点,在UVTextureEditor编辑器菜单中选择select;selectShell,这样我们就选择了圆柱体UV块。

在UVTextureEditor编辑器中,按W键使用移动工具将其移至旁边,避免与其他UV重叠,有利于看得更清楚。按R键使用缩放工具,缩放UV点,同时观看3D视图直至方格纹理变成正方形。

4:以同样的方法给侧面的两个圆柱体映射UV,由于侧面的两个圆柱体方向不一样,映射后我们要在通道栏中选择映射节点,旋转映射轴向RotateX为90度,并将UV块拖至旁边。


5:选择物体顶部的面,选择EditPolygons;Texture;PlanarMapping;

打开KeepImageRatio选项,将MappingDirection选项改为YAxis,点击Apply完成平面映射,并将映射的UV块移至旁边。


6:以同样的操作方法完成物体余下的面,左右、前后和下部,注意选择相应的轴向,也就是MappingDirection选项,完成各个面的平面映射,并将映射的UV块移至不同的位置避免重叠。


7:进一步给未完善的地方映射UV,例如圆柱体的顶部、立方体正面和后面的凹槽边缘。

选择3个圆柱体的顶部的面,点击EditPolygons;Texture;AutomaticMapping,给予3个面自动映射方式。

立方体正面和后面的凹槽边缘与其他面一样使用平面映射方式,使用时将选项中的MappingDirection改为相应的轴向。


8:到此我们已将物体的UV分成很多块面,已解决了重叠和拉伸。


9:使用缩放工具,缩放调整各个UV块面,并观察视图使方格看起来都一样大小,这样UV就有一个统一的比例。

根据需要选择UV块面的边,点击UVTextureEditor编辑器菜单Polygons%26gt;MoveandSewUVs命令,缝合一些UVs,将UVs拼成几个大的块面,这样利于减少UVs的接缝。使用缩放和移动工具,将所有的UV块面安排在0-1的空间,并充分地利用这个空间。


10:在UVTextureEditor编辑器菜单中选择Polygons%26gt;UVSnapshot...,输出一张1024尺寸UV图。在Photoshop中,打开输出的UV图,根据色彩设计稿和UV线框绘制纹理。创建一个新的材质球,将刚绘制纹理作为它的color贴图,并将材质球指定给视图中的物体。

如果感觉还不错,用同样的方法完成另一个物体吧!  最终效果图:


二、认识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,并打开UVTextureEditor窗口,当我们选择多边形物体时,物体的UVs也会在UVTextureEditor窗口显示。

通过选择多边形的UV元素遮罩,我们可以拖动所选择的绿色UV点。当选择NURBS物体时UVTextureEditor窗口只显视灰色的不可编辑的参数线。

三、NURBS的UV,NURBS表面有4个边并有规律地排列UV参数的行和列。

在NURBS表面中,UV始终存在,不像多边形需要创建或编辑,它具有NURBS面片内置的、不可以进行编辑的特性。而polygon与subdiv的UV是作为一个可编辑的元素。

法线决定NURBS曲面的正反,射出法线的面为正面。用"UV右手定则"可以方便地定义哪边是正面,如下图,如果拇指指向U正方向,食指指向V正方向,中指垂直于食指和拇指,指向NURBS表面的法线。表面法线的概念对纹理、渲染很重要。

  

选择NURBS模型,使用Display;NURBSComponents;SurfaceOrigins命令,可以显示UV的方向,缺省情况下红色为U向,绿色为V向,蓝色为法线方向。想看到法线,先选择表面再选择Display;NURBSComponents;Normals(ShadedMode)



  显示法线的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纹理指定给每个nurbs表面,表面根据内建的uv定义纹理分布





  

使用棋盘格文件纹理可以非常清晰的看到nurbs表面因参数线不匀而产生的贴图拉伸。


如上图,当上图正方形纹理指定给非正方形nurbs表面时,纹理产生了一定的挤压和拉伸,可以从图中看出纹理中上的数字严重挤压,在photoshop中绘制纹理时会产生不可预期的效果。



  闹钟外壳纹理挤压和拉伸渲染后的效果



  

钟表板的nurbs参数线分布均匀贴图没有拉伸变形

在nurbs建模过程中,注意一些布线规则有利于方便的应用纹理。尽量使表面参数线间隔均匀,即等参线的网格均匀,避免波纹曲线出现,避免参数线间隔在不需要造型的地方忽宽忽窄,当然参数线间隔不可能绝对相等,只是相对即可,如下图:



四、使用fixtexturewarp选项

选择nurbs模型,打开属性编辑器,在texturemap栏中打开fixtexturewarp选项,可以对纹理的不均匀分布进行修正。而不需要依赖于nurbs表面的uv参数,griddivperspanu、griddivperspanv、表示u向和v向每跨度的、分割数目,默认数值是4,数值越大纹理分越均匀。



  打开fixtexturewarp选项后,操作视图不能实时显示出来,只有渲染后才能看到。



  应用fixtexturewarp选项后渲染后,与左图相比,纹理虽然有拉伸,但分布相对均匀。


虽然纹理分布均匀,但还是有拉伸,这是应为我们使用的是1:1的纹理贴图,而闹钟壳的nurbs面片长宽比不是1:1。下面进一步调整nurbs模型的纹理,是其比例正确。在hypershader窗口中,选择模型的place2dtexture节点,打开属性编辑器,调整coverage的数值,同时察看渲染视窗的更新效果,使用ipr渲染可快速看到调整结果,直到棋盘格看起来变为正方形为止。



  根据ipr渲染结果,判断纹理贴图使用范围,从上面的例子可以看到纹理只使用整个面积的1/3左右。根据比例在绘图软件中绘制贴图,然后指定给模型。




五、确定贴图长宽比例

还有一种方法确定纹理比例,使用arclength测量工具测量出nurbs表面的精确弧长,再根据比例绘制贴图。

确定贴图长宽比例具体步骤:

1:测量模型  使用弧长测量工具,creat;measuretools;arclengthtool测量表面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:渲染完成  需要注意的是:不必计算得绝对准确,只要纹理从视觉上看来没有拉伸就行。




六、nurbs表面的参数化

nurbs表面参数化直接影响贴图效果,nurbs表面参数化分为:统一参数化(uniform)、弦长参数化(chordlength)两种。

统一参数化表面具有更可预见的值,弦长参数化的表面可以较好的分配曲率,允许纹理相对均匀地分配在不均匀的表面上。使用fixtexturewarp属性可改变纹理分配使纹理分配更均匀,在制作动画时,如果表面有局部变形,贴图会滑动产生不正确的效果。

我们将通过nurbs曲线理解统一参数化(uniform)、弦长参数化(chordlength)

1:打开c reate;cvcurvetool工具选项,分别用uniform、chordlength选项创建两条nurbs曲线(按s键使用吸附网格工具,保持两条线的cv点一致)



2:选择display;nurbscomponents;editpoints 显示曲线的编辑点

3:拾取遮罩curvepoint,在曲线上拖动,maya视窗顶部会显示所在点的参数,并随着拖动不断变化。


4:以统一点间距(uniform)参数创建的曲线,第一个编辑点的u值为0,第二个的u值为1,第三个的u值为2,如此类推。

第三个编辑点和最终编辑点的中间一点值为2.5。不管两个编辑点的实际距离有多长,所有两个编辑点间距离值是相等的。按这种方式计算曲线点值的方法称之为统一参数化。

以弦长点间距(chordlength)参数创建的曲线,第一个编辑点的值为0,第二个的值为2.4907,第三个的值为5.4379。第三个编辑点和最终编辑点的中间一点值为8.5402  曲线u向参数值取决与编辑点的距离,而不是点的数量。



  曲面在三维空间中由u向和v向两个参数来定义,比曲线多一个v向参数,形成一个方形的nurbs面片。



七、nurbs表面重建



下图用统一参数化创建的可乐罐,因为参数线不均匀引起贴图拉伸,从视图和渲染图中都可看出来。

打开表面fixtexturewarp属性可以解决此问题,如果可乐罐要做变形动画,这种方法是不可取的。我们需要重新创建表面,(不能使用rebuildsurfaces命令)



重建表面:拷贝项目文件夹至硬盘并打开文件tin_rebuild_lo_ren_v001.mb

1:选择可乐罐,按1键最低精度显示模型,并打开editcurves;duplicatesurfacecurves;,选择v向,复制nurbs曲线。


2:选择复制的nurbs曲线,并拖到原可乐罐旁边,以便于比较。


3:从下至上依次选择曲线,选择surfaces%26gt;loft;,勾选chordlength选项,重新放样表面。


4:指定同一个材质给新生成的边面,(按6显示硬件纹理)可以看到纹理没有拉伸,获得我们需要的效果


5:渲染后,纹理同样正确。  通过重建表面有利于做变形动画。


八、nurbs表面方向

由于表面创建的方法不同,表面方向有可能不正确,可通过编辑2d纹理的place2dtexture节点属性或使用editnurbs;reversesurfacedirection来修正。

为了便于纹理贴图、渲染尽量将uv原点安排在左下角,法线朝外。良好的习惯将大大提升后续工作的效率。



  利用小相架上的一张照片来了解nurbs表面的方向(像架是多边形,照片是nurbs)



  

上图中相架上照片因为表面uv方向不正确,造成贴图定位不对没有达到预期的安排


reversesurfacedirection选项:

u:沿u向反转cv,

v:沿v向反转cv,

swap:交换uv方向,

both:u向和v向同时反转cv

1:打开文件frame(项目文件夹)

2:选择nurbs模型,使用display;nurbscomponents;surfaceorigins,打开nurbs表面的方向和法线显示,作为参考。



3:选择editnurbs;reversesurfacedirection;,打开对话框选择both,反转表面方向。

4:得到了我们所需要的正确效果。






九、了解多边形的uv

多边形不像nurbs表面具有固有的2d坐标。多边形必须使用映射的方法来获取合理的uv坐标,uv信息是基于2维的,是一个平面,可以在uvtextureeditor中看到并编辑。从window;uvtextureeditor打开uv编辑器。

我们在创建基本多边形几何体时也能创建缺省的uv坐标,但模型在编辑顶点及其他操作后,缺省的uv大多不可用,必须重新映射。uv操作在一般的工作流程的位置是:



  缺省多边形几何体的uv



  编辑点操作后的uv

为多边形指定2d纹理,并在视图中显示纹理(按6键),多边形表面如果没有uv信息就会在视图中显示半透明的斜条纹,渲染后无uv信息的部分也不会显示纹理。这样的情况我们必须重新映射uv。


十、多边形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重叠时要注意不应重叠太多,否则看起来不真实,因为现实生活中没有如此雷同的得物体。


十一、定制检测uv纹理的贴图

要正确使用2d纹理,我们就必须编辑多边形的uv。为了快速的映射和编辑多边形的uv,在此之前赋予多边形物体一个自定义的带标准方格图案的2d文件纹理,将有利与我们的操作。

maya本身也有类似的功能:

1:创建一个缺省的多边形球,并选择它

2:打开editpolygons;texture;assignshadertoeachprojectin

3:给一个平面贴图,editpolygons;texture;planarmapping

4:打开hypershade窗口,我们可以看见maya创建了一个命名为defaultpolygonshader带checker2d程序纹理的lamber材质球,并指定给了我们所创建的多边形球体。通过球体上的棋盘格纹理我们可以即时地看到uv的编辑情况,如果棋盘格拉伸了,那么uv也拉伸了。

我们通常情况不使用这个纹理,这是因为它使用的是程序纹理checker,maya对程序纹理的最好硬件显示是highest(256×256),其它的硬件显示纹理分辨率在视窗中不太清晰,如果使用最高硬件纹理显示,在编辑uv过程中的纹理可能在视窗中不能及时更新,给编辑带来一定的困难。建议使用自己定制文件纹理。



  不同质量显示硬件程序纹理



上图是大家经常使用自定义的棋盘格纹理。在黑白方格中标出一些数字或字母有利于辨别uv方向。

建议大家使用一些对比度不强的图案如下图,因为uv编辑是一项耗时的工作,长期面对黑白间隔的颜色不利于精神和眼睛的健康,从而彻底失去对编辑uv的兴趣。

下图是一些长期从事uv编辑工作的制作者所制作的uv检测图。经常更换uv检测图也是一个好主意,有利减轻疲劳。



利用assignshadertoeachprojectin自动应用自定义的文件纹理:

1:打开editpolygons;texture;assignshadertoeachprojectin

2:创建一个shader,将自定义的贴图连接到shader的color属性。

3:将shader重新命名为defaultpolygonshader。

4:当每次给场景中的多边物体指定新的纹理映射方式时例如:planarmapping、cylindricalmapping等,maya就会自动将此shader赋予给多边形物体。


十二、uv映射方式

maya有四种基本的uv映射方式,分别是:

1:平面映射(planarmapping)

2:圆柱体映射(cylindricalmapping)

3:球体映射(sphericalmapping)

4:自动方式映射(automaticmapping)

可以通过editpolygons;texture菜单访问到,选择菜单命令后面的小方盒可以打开这些指令的选项。

正确理解maya的映射方式,有利于我们的快速操作,平面映射一般应用于矩形的物体和一些相对比较平整的多边形面,例如桌子、木板等。

圆柱体映射主要用于圆柱体和类似圆柱体的物体,例如笔、角色的腿、手臂等。

球体映射主要用于球型物体,篮球、灯泡、西瓜等。


自动方式映射常应用于结构和起伏不太复杂的物体,以及某些规则的局部。

这些映射方式可以应用于整个多边形物体,也可以应用于部分表面,操作方法是:

先选择多边形物体的部分面,再将映射方式指定给他们,maya会出现相应的uv映射操纵手柄。(自动方式映射没有操纵手柄)

对一个稍微复杂的物体,一般在制作时需要选择不同的方式映射多次。


平面映射



圆柱体映射



球体映射


十三、映射操纵器和手

映射操纵器是给多边形物体uv映射时交互调节的工具,使用映射时,maya会自动切换到showmanipulatortool。






如果进行映射后看不到操作手柄,查看状态栏中的构建历史选项constructionhistory是否关闭。

在打开构建历史的情况下,在视图右边通道栏中点击映射节点再使用工具栏中的showmanipulatortool,可以在任何时候显示映射操纵器进行调节。


十四、平面、圆柱体、球体映射的共同选项

点击映射命令后面的小方盒,我们可以看到会出现大量选项的对话框,不要被它们吓倒,大多数情况下这些选项都很少使用。先来了解一下它们有共性的选项。

insertbeforedeformers选项:

当多边形模型应用了变形时,这个选项即被相关联。如果打开这个选项,maya会把映射uv的操作放置在变形动画之前。

如果关闭,纹理会受物体顶点变形的影响,导致纹理"游移"。绝大多数情况下我们都打开此选项。


automaticallyfittheprojectionmanipulator选项:

打开此选项后,映射的操纵器自动适配选择的模型(无论是一个还是多个或模型的面)。关闭时则可以由用户通过键入数值自行安排操纵器位置及其相应的大小、旋转、包裹范围等等。

绝大多数情况下我们都打开此选项让maya自动放置操纵器。


c reatenewuvset选项:

用于创建当前创建的uvs的新uvset,而不使用模型默认的uvset。激活这个选项之后可在uvsetname栏中定义uvset的名称。


imagecenter选项;imagerotation选项;imagescale选项;

这3个选项一般也很少使用。imagecenter用来确定uvs的在纹理空间的位置,imagerotation用来控制uvs的旋转,imagescale用来控制uvs的缩放。


通过下图来比较一下它们的应用。


十五、平面映射的常用选项

keepimageratio选项:

开启此项保持贴图长宽比例,使贴图纹理不产生变形,通常将此项打开。


  关闭keepimageratio,贴图长宽比压缩



  开启keepimageratio,保持贴图长宽比例


fittobestplane选项:

对映射操纵器移动、旋转来适配选择的物体,主要应用于模型的一部分面(近似平面)进行uv映射。fittoboundingbox选项:  映射操纵器根据模型的范围框(boundingbox)适配大小,主要针对整个或多个模型使用。当打开fittoboundingbox时,必须选择映射轴向(mappingdirection),x轴、y轴、z轴或是camera方向映射。




十六、自动映射

自动映射为我们提供一种便捷的映射方法,自动映射是向模型映射多个面来寻求每个面uv的最佳放置。

它会在纹理空间内创建多个uv片,它可以分别从4、5、6、8、12个面进行映射,如下示意图:


使用的面越多,uvs的扭曲越小,自动映射一般会产生过多的uv块面,如果想要再完整一些的uv,对其进行缝合。


十七、texture菜单

texture菜单maya提供非常全面的多边形的uv编辑工具,通过editpolygons;texturex子菜单可以访问它们。先来了解一下:


十八、uv编辑器

在maya中编辑uv主要是使用uvtextureeditor窗口,专门用于uv的排列与编辑,是uv编辑的主要工具。

使用uvtextureeditor,可在菜单windows;uvtextureeditor打开。

uvtextureeditor有自己的窗口菜单与工具条,工具条实现的功能基本上能在菜单中找到。作为一个视图窗口,它与其它三维视图窗口的视图操作方法也完全相同。

a键:显示所有的uv,

f键:最大化显示所选择的uv,

alt右键:缩放视图,

中键滚轮:缩放视图,

alt中键:移动视图。



uvtextureeditoruv编辑器

评论
显示
悄悄话
    柴参
  • 柴参的评论:
  •   6666
    2016-12-07 09:35
    武花
  • 武花的评论:
  •   收了表情
    2016-03-17 22:25
    武花
  • 武花的评论:
  •   收了表情
    2016-03-17 22:25
    孙长瑜
    2015-07-13 22:24
    储文祥
  • 储文祥的评论:
  •   好像很牛的样子
    2015-04-30 11:35
    储文祥
  • 储文祥的评论:
  •   好像很牛的样子
    • 云世界NPC的回复

      2015-04-30 11:52

    •   表情  研究研究
    2015-04-30 11:35
    陈超
  • 陈超的评论:
  •   哇好高端的赶脚,
    2015-04-18 00:04
    陈超
  • 陈超的评论:
  •   哇好高端的赶脚,
    2015-04-18 00:04
    陈超
  • 陈超的评论:
  •   哇好高端的赶脚,
    2015-04-18 00:04
汇众教育官网 | 联系方式 | 版权声明 | 友情链接
Copyright 2008© 汇众益智(北京)教育科技有限公司. All Rights Reserved
京ICP备09092043号 京公网安备11010802009023号