当你的 UV 贴图没有重叠的时候, Unflod UVs 的功能将帮你展开贴图。 Unflod UVs 通过改变 UV 点的坐标来达到尽量减小贴图的扭曲的目的,所以展开后的 UV 点看上去和多边形面片的很紊合。
你可以在模型面板 (Modeling menu) Polygon UVs > Unfold UVs 里找到这个功能,或者通过 UV 纹理编辑器 Polygons > Unfold UVs 找到它。

当其他投射方式不能对模型的 UV 有效投射时,当自动分 UV 功能 (Automatic Mapping) 会把 UV 拆得七零八碎,而需要大量移动缝合 (move and sew) 操作弥补缺憾时, Unfold UVs 便开始发挥它的功效,这对复杂的有机模型特别有效。
与自动分 UV 功能 (Automatic Mapping) 相比, Unfold UVs 能生成更好的 UV ,它保持相邻面都连在一起,而不像自动分 UV(Automatic Mapping) 一样产生破碎的面。
当然,有些情况并不需要用到这个功能,使用其他的一些投射方式或者自动分 UV 功能 (Automatic Mapping) 会更直接, Unfold UVs 只对有机体的模型作用更大一些。好比,一堵墙用平面去投射,一个瓶子用圆柱体去投射就比较合适。
为了更好的利用 Unfold UVs 的特性,你需要在对多边形面片进行如下的设置:
多边形面片必须有 UV 坐标
面片必须要有 UV 点才能进行展平 UV 的操作。如果你的面片没有 UV 点,你能其他技巧产生它们。 ( 比如,圆柱形投射,球形投射等 ) ,通常来说,模型初始的形状不影响 UV 展开的结果。然而,当你适当地切分 UV 的边后,你的模型就会变得更合理。
UV 面必须被适当地切分,以便 UV 点自由地展开
当多边形面片没有重叠的展开时应该是平的,就像一块布一样。
哪些边需要被切分,这个问题需要仔细考虑一下,好的切分势必产生好的结果。另外,你应该意识到切割多变型的边会导致材质在边界上的不匹配,所以你应该多考虑把切割线的位置放到看不见的地方。比如,你可以把切割线放在手的下方或大腿内侧。
通常, Unfold UVs 的操作需要反复进行来达到最终的满意效果。修正,添加切割线,对齐 UV 点,移动缝合 UV 点都是不可避免的。你可以在 UV 编辑器中 (UV Texture Editor) 单独取出一小部分 UV 面片来单独处理。如果你满意最终 UV 展开后的的效果,你就可以用 Polygons > Layout UV 命令来使你的 UV 标准化 ( 在 UV 坐标中归一化 ) 。
如何使用 U来展开nfold UVs 的命令 UV
确保多边形已经有初始的 UV 。如果没有,请用初始化 UV 的命令来产生 UV 。 ( 比如,使用命令 Polygon UVs > Cylindrical Mapping )
笔记
此时 UV 纹理的形状很难看, Unflod UVs 命令稍后将对它进行处理
在场景中,确定好分割线的位置,并把多边形模型作为参考。从不同的视角观察模型将有助于完成任务。关于如何确定分割线的位置,请参考 “unfold UVs 操作上的技巧 ” 的部分。
技巧
在透视视图上选中某些点,他们会相应的出现在 UV 编辑器 (UV Texture Editror) 中,这用有助于判断它们的对应关系。在工具栏的 Layout 栏中单击右键,选择 Persp/UV Texture Editor 将有助于工作。
在场景中你可以选择一系列连续的边中的一条,在它上方按 + 然后点选 “ 选择连续边 ”(Select Contiguous Edges) 即可选中这些连续边。
在 3D 视图或 UV 纹理编辑器 (UV Texture Editor) 中使用 Polygons > Cut UVs 切割这条边。
在 UV 纹理编辑器 (UV Texture Editor) 中,选中初始的没有展平的 UV 片,然后运行 Polygons > Unfold UVs 。
当你想中途停止操作的时候,请按 。
第一次运行的结果有可能并不令人满意,你可以反复操作来获得更好的效果。接下来的技巧能帮助你获得你希望的结果。
Unfold UVs 操作上的技巧
单片 UV vs. 多片 UV
如果说展平一个完整的 UV 面片是可能的话,那么把完整的 UV 面片拆分成多个小的 UV 面片在再去展平它也是有可能的。有了这个方法,你就能轻松的控制需要展平的区域。你需要做的是考虑把切割线放在哪里是安全的,从哪里切割线能为日后缝合减少麻烦,这取决于你的模型的复杂程度和项目的需求。
决定切割线的位置
当物体被切割并展开后能成为一个近似的方形,那么这条切割线就是正确的切割线。因为它使得 UV 贴图的坐标能自由的展开,而不产生扭曲。
另一条切割准则是,切割线应放在隐秘的位置,在渲染的时候最好看不到它。这就避免了观看者发现这些切割线周围的纹理拉伸。
选中连续边的工具 (The Edge Loop Tool) 可以帮助你快速的的选中切割边,当然,这些边的位置应该不易被观看着发觉。
快速选择组
无论何时,只要当你要重复劳动,这包括选择复杂的顶点、边线或者 UV 点,你就能创建 “ 快速选择组 ” 。 “ 快速选择组 ” 能包含以上这些元素。要创建它的话,你先要选中那些元素,然后选择 Create > Sets > Quick Select Set 即可。这对于展开操作中固定点 (Pinning) 选项尤其有用。
突出纹理的边界
在场景的视图和 UV 纹理编辑器 (UV Texture Editor) 中,你想要快速地看到或者选中边的话,可以去找 Display > Custom Polygon Display > > Highlight > Texture Boards 。这个功能将加粗边界线,在你展开 UV 的进程中,增强边线的可视性。
固定点 (Pinning)
在你切割好的边线周围,你可以将特定区域的 UV 作为锚点固定住。例如,你要做四足动物的话,你可以从他的鼻子起选择点,直至它尾巴的顶端,然后将他们和 U 轴或者 V 轴对齐。当你进行之后的展开的操作的时候,打开固定选择点 (Pin Selected) 的选项,结果在展开 UV 的同时,那些点是被固定住不动的。如果你创建了快速选择组 (QuickSets) ,展开的效率会更高。
固定点对于那些在展开过程中始终位置不变的 UV 点很有帮助。这体现在,如果你在某一步展开的过程中,对某些局部的点十分满意,并且不打算在之后的操作中改变他们,那么你可以选中它的边界后进行展开的操作 ( 打开固定点的选项 ) ,只有区域外的 UV 被展开了。
总体上说,如果你使用固定点的功能并同时保证模型的对称性的话,你将会得到更好的结果。
对齐 UV 点
使用对齐 UV 点 (Align UVs) 的功能可以把 UV 自然地捕捉到水平或者垂直的网格上,并成为一条直线。对齐模型的中轴边是个不错的选择,举例来说,对于四足动物,穿过脊柱的那条边就不错,你可以选择它,对齐 UV 点,再使用固定点 (Pinning) 的功能。
UV 晶格变形工具
UV 纹理编辑器 (UV Texture Editor) 中的 UV 晶格变形工具 (UV Lattice Deformer Tool) 能在进一步展开之前帮助修改某些区域的 UV 点。
关于 Unfold UV 命令的选项
下面将是 Unfold UVs 功能的选项的的一些解释。

权重解决参数 (Solver Weighting)
这个选项将决定两种权重解决方案的融合程度:局部和全局。当权重解决参数 (Solver Weighting) 设置为 0 的时候 ( 默认 ) ,局部权重解决方案将发挥作用;当权重解决参数 (Solver Weighting) 设置为 1 的时候,全局权重解决方案将发挥作用。当权重解决参数 (Solver Weighting) 设置为 0-1 之间的数值的时候,结果将是这两种权重解决方案的融合。权重解决参数 (Solver Weighting) 的默认值是 0 ,它适用于大多数情况并能产生最快的结果。
一些多边形构造会造成 UV 被展开后,产生令人不愉快的端点缩放的效果。例如,从大腿到脚踝这个逐渐缩小的形状被展开后形状会越来越夸张。当这种情况发生的时候,你可以通过把权重解决参数 (Solver Weighting) 的值打高来解决这个问题,这时全局权重解决方案将发挥作。展开的过程会变得缓慢,但是效果会不那么夸张了。一旦 UV 的展开变得规整,你就可以小心的固定点,并尝试不同的缩放值,以确定他们是不是会被还原,如果没问题,你可放心大胆地把当权重解决参数 (Solver Weighting) 设成 0 ,并进行之后的操作。
具体的例子可以参考 权重解决参数的例子 。
Ps. 我的个人理解,模型展开是根据点的分布进行的, UV 展开的过程总是从点密到点疏的过程。排布紧密的点每次展开的幅度要小些,排布疏松的点每次展开幅度要大一点。如果不考虑全局 UV 分布的情况,随着每次 UV 的展开,疏密差距将进一步被拉大。全局权重解决方案从一个更宏观的角度来展开 UV ,所以不存在这个问题,但速度更慢。要在这两者中取得一个平衡可以参考最后的例子。
表面积 / 边长 (Face Area/Edge Length)
表示用何种多边形对照方法来进行展开操作。这个设置只有当权重解决参数 (Solver Weighting) 不等于 0 的时候才奏效。
表面积 ( Face Area ) :比较生成面和原始面的面积。
边长 ( Edge Length ) :比较生面和原始面的边长。
当表面积 / 边长 (Face Area/Edge Lengt) 融合值设置成 0.5 的时候,这两种对照方法将同时作用,所以说,用这个值作为展开的初始值是比较好的。
如果多边形面片弯曲的比较厉害,把融合值设向表面积 (Face Area) 能最小程度的地减小弯曲面的变形。然而,如果融合值打满到表面积 (Face Area) 的话, UV 边缘又会产生被剪切的现象。这是因为这样的对照方式只考虑到了面积,而不考虑边缘的的规整。
固定 UV 边界 (Pin UV Border)
UV 边界在展开操作的的时候位置保持不变。使用这个选项确保边界在展开操作中不受影响。
固定选择点 (Pin Selected)
选择的点在展开的操作的时候位置保持不变。默认设置是不勾选,这表示只对选中的点展开,没选中的点位置保持不变,勾选的时候结果相反。如果你在展开 UV 的过程中对某部分结果已经感到满意并且不想再改变他们的时候,建议使用这个选项。
最大展开次数 (Max Iterations)
当展开结果没有满足终止阀值 (Stopping Threshold) 时,最大展开次数 (Max Iterations) 决定了展开需要的重复计算的最大次数。
Ps. 我的个人理解,最终完美的的结果需要靠大量运算得到,但很多时候你不需要那么精确的结果。所以阀值便诞生了,它描述了一个近似完美的结果,而且速度提高了。可是很多时候,这个近似的结果仍然需要大量的运算,也许是 100000 次,但是你只能接受 5000 次运算, 5000 这个数字就可以用最大展开次数 (Max Iterations) 来定义。
你可以随时按 来停止展开的运算。
如果你发觉展开的运算过早地结束了,它只是意味为终止阀值 (Stopping Threshold) 在到达最大展开次数 (Max Iterations) 之前就已经被满足了。默认最大展开次数 (Max Iterations) 是 5000 ,增大这个能增加展开运算的次数,相应地,时间也增加了。
当权重解决参数 (Solver Weighting) 不等于 0 的时候,建议你可以把最大展开次数 (Max Iterations) 设置成 50 ,之后再修改成其他的值,这将提高你的效率。
终止阀值 (Stopping Threshold)
其实,这只是一个数学上的阀值,这个值决定了程序何时该停止展开的运算。这个值建立在 maya 内部算法的基础上,当程序开始比较展开前的和展开后的的结果时 ( 包括角度,距离和面积 ) ,这个值决定了总体的优化百分比。展开的运算将一直进行,直到结果满足了这个百分比阀值或者运算次数到达了最大展开次数 (Max Iterations) 。当你把终止阀值 (Stopping Threshold) 设置成比 0.001 小的数值的时候,展开的时间会大大加长。如果你觉得时间不打紧的话,你不妨把它设置成 0 ,那结果肯定是最棒的。
再缩放 (Rescale)
一旦展开运算结束,程序将重新定义 UV 展开结果的的面积大小,以满足缩放系数 (Scale Factor) 。这是如何做到的?首先程序计算多边形面片在物体空间 (object space) 中的表面积,然后参照这个面积值来缩放 UV 。当你希望多个 UV 面片具有相似的比例的时候,这个值是很有帮助的。
缩放系数 (Scale Factor)
这是一个决定再缩放大小的比值 ( 相对值 ) 。如果缩放系数 (Scale Factor) 大于 1 ,结果将被放大;如果缩放系数 (Scale Factor) 小于 1 ,结果将被缩小。例如一个多边形面片在视图中的大小是 1 ,那么把缩放系数 (Scale Factor) 设置成 0.02 将使这个面在 UV 编辑器 (UV Texture Editor) 中的大小变成 0.02 。
Ps. 我的个人理解,缩放的依据是原先模型表面的面积,而不是原先 UV 的大小 ( 在 UV 纹理编辑器中 ) 。刚开始的时候,这个值容易让人迷惑。
保持历史 (Keep History)
这个选项打开的时候,一旦模型的结构法产发生了变化, Unfold UV 将自动重新展开。这样有一个好处,当模型发生变形的时候 (deform) ,那些变形的点上的纹理将不会被拉伸。把保持历史 (Keep History) 的选项打开能造成巨大的计算量,因为动画对模型的影响会让 UV 不断的重新展开。当你的场景交互变得很慢的时候,有可能就是这个问题。默认选项是关闭的,如果你需要这个效果,可以打开它。
权重解决参数的例子
接下来这个例子将向我们展示权重解决参数 (Solver Weighting) 的选项、固定点、对齐 UV 等功能是如何综合作用来控制展开结果的。
一个桶形的多边形物体被赋予了一个棋格纹理 (checker texture) 。使用 Unfold UV 功能,并把权重解决参数 (Solver Weighting) 设置成 0( 默认 ) ,你将得到一个端点拉伸的结果,这个结果直接体现在模型上。

接着我们做另一个尝试,这次把权重解决参数 (Solver Weighting) 设置成 0.6 ,这个结果看上去更整体化,端点拉伸的问题也被解决了,只是在右下角有 UV 重合。

在上一部的基础上,把 UV 面片的四个顶点移动并固定在四个角上,再把 权重解决参数 (Solver Weighting) 设回到 0 。展开后, UV 重合的问题解决了。

最后把 UV 面片的上端和下端对齐,把把 权重解决参数 (Solver Weighting) 设到 0 ,打开固定 UV 边界 (Pin UV Boarder) 选项。
 |