导言:因为最近有人在探讨Maya中布尔运算的问题,所以我将之前已经沉寂的这篇文章重新整理了发出来。
[flash]http://player.youku.com/player.php/sid/XNzY2NTU4NzY0/v.swf[/flash]
可能你看到这个标题会想,布尔运算不是会出错吗?布尔运算在Maya中不是禁止使用的吗?如果我问你这话是谁说的,你可能会说是教你们的老师说的。你们老师只跟你说了布尔运算容易出错,但是却没有告诉你布尔运算为什么会出错,以及在什么情况下会出什么样的错,以及如何通过自己的操作来避勉这些错误。
这就是在Maya中布尔运算的运用规则。如果你遵循这些规则去好好使用,你会发现,布尔运算就像乖猫猫一样,任你摆布。至少在我个人的使用流程中,布尔运算一直是个常规的经常会用的指令。希望在阅读了这篇文章以后,可以帮大家拓宽视野,不要再被“老师”说的话限制了自己的思维。
规则1:布尔运算的两个物体接触的部分必须要有线通过。
这样没有线通过的情况下确实是可以运算出看起来正确的结果,但是出来的模型不能用SPLITE POLYGON来改线。
注意:在Maya2015版中,该问题已修正。就算你两个模型接触的部分没有线通过。进过布尔运算,也会自动计算出来新的线,也可以继续布线。
规则2:布尔运算的两个物体绝对不能在BORDER也就是开放边界处交叉,否则百分之百会出错。
如果一定要做出类似的效果,可以选择先挤出厚度,或者挤出边界使边界超出接触范围,运算后再删除多余的部分。
注意:此问题在Maya2015中已经修正,就算边界交接做布尔依然可以得到我们预期的效果。
规则3:布尔运算之前要先确定模型法线是否正确。
布尔运算的时候是由法线方向来判断模型的“里外”的,如果模型的法线是反的,可能造成各种运算出来效果是反的,UNION变成了DIFRENCE,而DIFRENCE变成了UNION,甚至更加混乱。
两个正常模型UNION的结果。
把正方体法线反转以后。
UNION的结果:
DIFFERENCE的结果:
INTERSECTION的结果:
每一种结果跟我们的预期都不一样,并且由于这个问题产生的原因是由于布尔运算通过模型的法线方向来理解模型的样子,所以这种结果并不能算一种BUG,在2015版Maya中依然会有这样的问题。所以做布尔运算之前心里得明确法线方向是否正确。
规则4:模型越复杂,出错的几率越大。
为了尽可能避免布尔运算出错 我们可以采取一些手段来减少模型的复杂程度 比如单独提取模型接触的部分 运算完后再焊接回去 虽然这样麻烦一些 但是可以尽可能避免运算影响到模型的其他部分 也可以减少运算的负担。
注意:此问题在Maya2015版本中已修正。在之前的版本中,我使用500*500的球和一个圆柱做布尔会消失。但是在Maya2015版中,经过一段时间的计算,会得到正确的结果。
总结:通过以上内容的分析,相信各位读者已经意识到了,在Maya中布尔操作容易出错的原因并不能说是因为本身程序的弊端太大,并不能说因此我们就因噎废食而放弃布尔工具的使用。在Maya2014以及其以前的版本中,使用的是比较原始的布尔运算方式,是容易出现一些错误,但是出错的原因,还是因为我们使用者,并不够了解布尔运算的特性,做了很多违反布尔运算规则的事情,所以才会出错。只要我们每次使用的时候,注意到本文中提到的要点,自然不会出现什么问题,布尔运算会变得十分乖巧。
而autodesk公司在Maya2015中,对布尔运算进行了一定程度的更新,本文中提到的问题都基本解决了。所以各位Maya用户可以更加“肆无忌惮”地使用我们的布尔工具了。
所以说,我们完全可以利用布尔工具高效快捷的计算能力来提高我们日常工作的效率,我们又何必因为以前老师跟我们说的一句“布尔运算容易出错,禁止使用”而固步自封呢。我们学软件,当然应该做到,知其然而知其所以然。我们只有分析出了这句话背后的原因,搞清楚全部的来龙去脉,我们才可以更好地驾驭这些准则啊。
布尔工具并没有那么可怕,我们并不是不可以使用。反而布尔工具的使用还是要考验使用者是否真的理解了它,是否可以放下成见和它快乐地玩耍~