unity3d游戏开发之UV贴图教程

一、理解UV贴图

UVs是驻留在多边形网格顶点上的两维纹理坐标点,它们定义了一个两维纹理坐标系统,称为UV纹理空间,这个空间用U和V两个字母定义坐标轴。用于确定如何将一个纹理图像放置在三维的模型表面。

本质上,UVs是提供了一种模型表面与纹理图像之间的连接关系,UVs负责确定纹理图像上的一个点(像素)应该放置在模型表面的哪一个顶点上,由此可将整个纹理都铺盖到模型上。如果没有UVs,多边形网格将不能被渲染出纹理。

通常在创建MAYA原始对象时,UVs一般都被自动创建(在创建参数面板上有一个Create UVs选项,默认是勾选的),但大部分情况下,我们还是需要重新安排UVs,因为,在编辑修改模型时,UVs不会自动更新改变位置。

重新安排UVs,一般是在模型完全做好之后,并且在指定纹理贴图之前进行。此外,任何对模型的修改都可能会造成模型顶点与UVs的错位,从而使纹理贴图出现错误。更多精彩请点击【狗刨学习网

二、UVs和纹理映射

NURBS表面与多边形网格的贴图机制不同,NURBS表面的UV是内建的(已经自动定义出U、V),这些UV不能被编辑,移动CV将会影响纹理贴图。而多边形的UVs并非一开始就存在,还必须明确地创建并且可以随后进一步修改编辑。

三、UV贴图

为一个表面创建UVs的过程叫UV贴图(UV mapping)。这个过程包括创建、编辑。其结果是明确地决定图像如何在三维模型上显示,这项技术的熟练程度直接影响模型的最后表现。

四、创建UVs

Maya中有很多UVs创建工具:如,自动UV工具、平面UV工具、圆柱UV工具、球形UV工具、用户自定义UV工具等。

每种创建工具都是使用一种预定的规则将UV纹理坐标投射到模型表面,自动创建纹理图像与表面的关联。

通常,对自动产生的UV还必须使用UV编辑器进一步编辑才能达到所需要的效果。

因为每次对模型的修改(如挤压,缩放,增加、删除等等)都会造成UVs错位,所以最好的工作流程是等模型完全设计好了之后,再开始创建UVs。

五、观察和评估UVs

一旦已经为一个模型创建了UVs,即可使用UV编辑器编辑它。这个编辑器,可以在一个二维平面上观察UV坐标点和它与纹理图像的关系,并且能手动编辑UV及它的各种元素。

通常,使用创建工具默认产生的UVs可能不符合我们的需求,因此,可以在UV编辑器里,用眼睛观察评估,并且手动调节UVs的位置(重新排列)。

调节UVs的参考原则是信赖最终需要贴图的纹理图像。也可以说,不同的图像需要不同的UVs位置。

下述几种情况需要使用UV编辑器调节:

1、当模型最终要贴的图像被确定时,可能需要调节UV(甚至某些情况下还要调节模型网格),以适合那个图像。

2、想使用一个图像多次重复时。例如一个砖墙。

3、在使用了自动创建UV时。自动创建的UV通常总是产生多个基于表面的分离的UV网格,因此可能需要重新排列或者缝合一些分离的UV。

4、当模型表面的贴图发生严重的扭曲、拉伸变形时,可能需要在UV编辑器中将一些UV展开和松驰(Unfold 和 Relax)。

注意,要为一个模型创建最好的UV,可能需要经过多次尝试,以及采用不同的UV创建方法。

六、UV贴图技巧

MAYA提供了许多创建和编辑UV的工具,其中UV编辑器是最主要的工具。

懂得如何为一幅现有的图像找到一个最佳的UV,是一项非常重要的技术,以下是一些基本的指导原则:

1、保持UVs坐标值在0-1的范围

在UV编辑器中,UV空间显示为一个网格标记,工作区域为0到1。默认,在UV创建过程中,MAYA会自动设置UVs的值处于0-1之间。但在UV经过移动、缩放之后,UV可能被放置在0-1之外。在多数情况下,应该将UV值保持在0-1内。

当UV值超出0-1时,纹理图像会出现重复或者环绕。更多精彩请点击【狗刨学习网

2、消除UV壳重叠

相互连接UV点而形成的网格,称为UV壳(UV shell)。在UV编辑器中,如果UV壳出现重叠,则在模型的相应的顶点部位出现图像重复现象。通常应该消除这种重叠,除非有特殊的需要。例如一个模型有两个不同的部位有相同的图像,则这两个部位的UV壳可以重叠放置在这个图像上。

3、正确安排UV壳之间的间隔

两个UV壳之间的间隔也是一个重要的考虑内容。它们不能太过于靠近,否则在渲染时会将另一UV壳的图像内容也渲染出来。

4、尽量使用捕捉UVs

在编辑UVs时,类似于编辑场景中的元素,也能使用多种捕捉方法控制UVs。可以捕捉到背景网格线、其他UV点、以及图像像素点(需要将编辑区域放大N倍才能感觉到这种捕捉)。

七、UV编辑器简介

有多种方式打开UV编辑器:用Window > UV Texture Editor,或者用Edit UVs > UV Texture Editor,或者在视图菜单中用Panels > Panel > UVTexture Editor。说明UV编辑器是一个非常重要的编辑器。

在UV编辑器可以查看和交互式编辑纹理坐标(UVs)。选择、移动、缩放和修改UV拓扑,也能显示背景纹理图像作为调节的参考。

UV编辑器与场景视图,可以同时显示所选择的UVs和与之相对应的顶点。

利用UV编辑器所包含的许多工具,能有效地编辑UVs。如旋转和翻转,切割和缝合等等,也能输出一个编辑好的UVs布局为一幅图像,再用PS等软件创造出一幅纹理贴图。

注意,UV编辑器的有一些工具在主菜单的Edit UVs中。

UV编辑器的视图也能使用快捷方式进行移动和缩放(鼠标滚轮缩放,ALT+中键移动)。

在UV编辑器中也有右键标记菜单。它包括了几乎所有的操作。

八、UV集

可以为同一个模型创建多个UV排列方案(数量不限),每个方案称为一个UV集。在某个模型需要多个不同的UV布局时,UV集非常有用。

例如,想创建一个上面有些涂鸦图案的砖墙。可以使用一个纹理作为砖,另一个纹理作为涂鸦,如果砖纹理需要重复显示而涂鸦不需要,则可以为这两个纹理使用不同的UV布局(UV集)。更多精彩请点击【狗刨学习网

使用UV集的关键步骤是:

1、指定多个纹理给材质。如可以为某材质指定一个颜色纹理和一个透明度纹理。此外,也可以为某个单个的属性(如颜色)指定一个分层纹理。

2、使用不同布局创建UV集(在创建参数中有一个UV集选项)。

3、使用“关系编辑器”将纹理与UV集关联起来。

九、创建平面UV贴图

通过一个平面将UV映射到模型表面。模型表面最好是相对平坦的,或者至少在相机的某个角度能够全部看见。

通常,这种技术创建的UV壳是重叠的,看起来就象是一个简单的UV壳。所以,在创建完后应该使用Edit UVs > Layout将重叠的UV壳分离。

Best Plane Texturing Tool工具分配UVs给一个面(事先通过顶点选择的面)。可以先选面再使用Best PlaneTexturing Tool工具,或者,也可以先使用BestPlane Texturing Tool工具再逐一地选择想贴图的面。

1、选择模型想贴图的一个面;

2、使用Create UVs > Best Plane Texturing Tool工具;

3、单击其他的面增加进选区,注意,不能框选,只能用单击逐一选择。选完按回车。

4、选择三个或者多个顶点(可切换到顶点选择模式)。——这个可能是用来确定主平面的。

5、再按回车。创建完毕。进入UV编辑器查看和编辑创建好的UVs。

创建平面UV贴图(基于相机平面)

上面例子是以选择的顶点来确定一个映射主平面,现在是使用相机平面来作为UV映射主平面。

1、在模型上选择一个或者几个想贴图的面;(不选的将不参与布局)

2、滚动视图,使这个面朝向自己,或者,干脆切换进正交视图中,让它完全对准自己;

3、使用Create UVs > Create UVs Based On Camera工具,创建即完成。进入UV编辑器查看和编辑创建好的UVs。

十、创建平面UV贴图(基于一个可控平面)

1、选择一个想贴图的面;

2、打开Create UVs > Planar Mapping >参数盒,在Fit projection to中,如果选择Best plane,则创建一个基于刚才选择的映射平面;如果是选择Bounding box,则创建一个基于模型的box平面作为映射平面。

3、单击Project,创建UV布局,并出现手动调节器可进行一些调节简单调节;

4、最后进入UV编辑器中进行复杂调节。

十一、对平面UV贴图的一些说明

1、平面贴图能创建看起来象纹理边界的共享、重叠的UVs。打开Display> Polygons > Texture Border Edges(显示纹理边界),可以清楚看到这个边界。(或者在UV编辑器中按显示边界图标)。

2、的共享、重叠的UVs可能会引起接缝问题,解决这个问题可手动分离UVs(用Edit UVs> Layout >参数盒,设置Separateshells为Folds,Shell layout设置为Along U 或者 Into Square)。

3、如果想一次对多个模型创建平面UV贴图,可选把这些模型联合(combine),创建UV完成后,再将它们分离(separate);否则,只能一个一个地分别创建了。

4、如果一个模型是复杂的有机器官,而且你想一张图进行贴图,则平面贴图可能会产生交迭和扭曲,此时,可考虑采用其他的贴图创建技术。

十二、圆柱UV贴图

基于一个圆柱,沿着模型网格周围进行包裹,而产生的UV布局。模型最好是没有突出物或者空洞。

1、选择想贴图的面;

2、使用Create UVs > Cylindrical Mapping工具,

3、使用手动控制器操作圆柱外形;

4、最后在UV编辑器中进一步编辑。

十三、球形UV贴图

基于一个球,沿着模型网格周围进行包裹,而产生的UV布局。模型最好是没有突出物或者空洞。

1、选择想贴图的面;

2、使用Create UVs > Spherical Mapping工具,

3、使用手动控制器操作圆柱外形;

4、最后在UV编辑器中进一步编辑。

十四、自动UV贴图

由系统针对模型的形状,自动查找和确定UV布局,可能会使用多个映射平面(产生多个UV壳)。对复杂的模型和有空洞的模型,使用自动UV贴图非常有效。

在进一步的操作中,可能需要对分离的壳进行缝合。

可以确定映射平面的数量,也能使用场景中某个对象作为映射平面(通过Load Projection)。

1、选择一个模型,同时打开它的UV编辑器;

2、使用Create UVs > Automatic Mapping >参数盒,设置好参数;

3、单击Project。使用手动调节器调节(在通道栏也能再次调出这个调节器)。

4、使用UV编辑器进一步调整。

十五、用户自定义UV贴图

由用户指定的一个映射平面来创建UV布局。

关于映射对象的标准要求:

1、被用作用户自定义映射的对象必须有UV纹理坐标;

2、推荐这个对象是由分离的面组成。例如,想把某个原始polygons作为映射对象的话,它必须先要用Mesh > Extract分离网格。(不要用Nurbs和细分表面来作映射对象)。

3、这个对象确定了将来创建UV布局时的映射平面的位置和形状;

4、这个对象最大的面数不能超过31。

操作方法:

1、选择一个要贴图的模型,并打开它的UV编辑器;

2、打开Create UVs > Automatic Mapping >参数盒,勾选Load Projection,在输入框输入想用来做映射对象的名字,或者,在场景中选择这个对象,然后单击Load Selected加载;

3、单击Project。使用手动调节器调节(在通道栏也能再次调出这个调节器)。

4、使用UV编辑器进一步调整。

十六、确认UV的放置

创建UV布局时,如何确认它们的位置是否正确合理?一个确认方法是,指定一个包含纹理的材质给这个模型。通过观察纹理来确认。

MAYA提供了一个快速观察纹理的方法,打开Create UVs > Assign Shader to Each Projection,MAYA会自动创建一个叫“defaultPolygonShader”的材质(它包含棋盘格纹理),指定给正在创建UV而已的模型(这个材质也加入进该模型的节点,所以也可以在该节点更换其他的纹理)。

默认,快速观察纹理的方法是关闭的。

十七、在两个模型之间迁移UV布局

通常迁移使用在这种场合:创建复杂模型的UV布局时,先拷贝这个复杂模型,用光滑工具光滑它的网格(避免UV出现重叠),然后对它创建UV布局,之后,再将这个布局迁移到复杂的模型。

1、拷贝模型;

2、使用Mesh > Average Vertices > 参数盒,进行光滑。(注意,这个光滑技术不会增删顶点数量);为达到最佳效果,可以多次重复使用这个工具。

3、为这个光滑模型创建UV布局,然后调节,直到满意;

时间: 2024-10-12 21:02:19

unity3d游戏开发之UV贴图教程的相关文章

Unity3D游戏开发之3DMAX 灯光

Unity3D游戏开发之3DMAX 灯光 欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,[狗刨学习网]unity极致学院,致力于打造业内unity3d培训.学习第一品牌. 一.3DMAX 五种光源 1.Ommi Light 泛光灯:可以从一点向四周均匀照射的点光源. 2.Target Spotlight 目标聚光灯:一种投射光束,影响光束内被照射的物体,可以投影 阴影,照射范围可以指定. 3.

[Unity3D]Unity3D游戏开发之从Unity3D到Eclipse

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本

[Unity3D]Unity3D游戏开发之ACT游戏三连击效果实现综述

各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.在研究了Unity3D Mecanim动画系统的重定向特性后,今天我们继续来探索Mecanim动画系统更多的特性吧.今天博主想和大家分享的是ACT游戏中的三连击效果的实现,由于Unity3D目前存在Animation和Animator两种类型的动画组件,因此本文将分别讲这两种类型的动画组件的三连击效果的实现,其中Animation组件是Unity3.5以下版本所使用的动画组件,An

Unity3D游戏开发之Unity3D动画与Mecanim动画系统

Unity3D游戏开发之Unity3D动画与Mecanim动画系统 欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,[狗刨学习网]unity极致学院,致力于打造业内unity3d培训.学习第一品牌. Mecanim是Unity新增的动画系统,其功能强大而灵活,让人类和非人类角色栩栩如生.Mecanim的重定向极大的提供了工作效率,而且占用极少CPU周期.使用从Unity资源商店找到的动画资源,或

[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(中)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(下)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

Unity3D游戏开发之Lua与游戏的不解之缘终结篇:UniLua热更新完全解读

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

unity3D游戏开发之iTween介绍和用法

unity3D游戏开发之iTween介绍和用法 一.iTween 介绍 iTween是一个动画库,作者创建它的目的就是最小的投入实现最大的产出.让你做开发更轻松,用它可以轻松实现各种动画,晃动,旋转,移动,褪色,上色,控制音频等等 二.iTween 原理 iTween的核心是数值插值,简单说就是给iTween两个数值(开始值,结束值),它会自动生成一些中间值. 三.iTween 下载:  从官网http://itween.pixelplacement.com下载 主要文件有两个iTween.cs

Unity3D游戏开发之Unity打包APK

Unity3D游戏开发之Unity打包APK 1.安装JDK 2.配置JDK 3.在Paht的变量值后面加分号,把D:\android\adt-bundle-windows-x86-20131030\sdk\tools放在Path后面.[狗刨学习网] 4.点击菜单栏中的Edit-->Preferences 看Android SDK Location这个选项 浏览你的模拟器路径. 5.点击 File-Build Settings 然后再 点击Add Current 添加你的场景.再 点击Switc