使用布尔运算组合多边形网格
Maya 中的布尔运算描述确定现有形状如何彼此交互的功能。例如,您可以使用一个形状的体积来雕刻另一个形状。对于为形状建模,它们的功能可以
非常强大,不然使用其他技术建模会非常困难。
Maya 提供了三种布尔运算:
•“并集”会组合所选择的两个网格的体积。
•“差集”会从第一个网格的体积中减去第二个网格的体积。
•“交集”会保留两个网格的共享体积。
布尔运算对于修剪对象非常有用。
布尔运算会生成新的形状节点。如果保留构建历史,则仍会在“通道盒、Hypergraph 或大纲视图”(Channel Box, Hypergraph, or Outliner)中选
定原始形状并对其进行编辑,同时会自动更新布尔结果。甚至可以更改要使用哪种布尔运算来组合对象。
使用布尔运算组合两个网格
1.选择网格。
对于“差集”(Difference)运算,请选择要从第一个网格中减去的网格。
2.在“网格 > 布尔(Mesh > Booleans)”子菜单中选择其中一个布尔操作。
对象的面现在会连接到一起,且两个原始网格充当单个对象。
可以使用“大纲视图”(Outliner)、“Hypergraph”、“属性编辑器”(Attribute Editor)或“通道盒”(Channel Box)选择原始对象。只要启
用构建历史,那么编辑原始对象时,布尔结果将自动更新。
例如,可以使用“差集”(Difference)运算从一个立方体中减去一个球体,然后设置原始球体的动画来创建有趣的效果:
多边形布尔运算疑难解答
布尔运算不按预期工作
如果原始对象不是闭合的体积,或如果它们包含几乎重合的顶点,布尔运算有时可能会产生意外结果。要注意的其他条件包括:
•相交区域不应包含边界边。可以通过选择“显示 > 多边形(Display > Polygons)> 边界边(Border Edges)”来显示边界边。
•避免本质上为非流形的网格。即,一个边不会连接到两个以上的面。
•网格上的法线必须在体积上一致地向外指。可以使用“显示 > 多边形(Display > Polygons)> 面法线(Face Normals)”查看网格上的法线。使用
“法线 > 反转(Normals > Reverse)”可反转面法线。
•应用布尔运算之前,请填充原始对象中的任何洞口(例如,使用“网格 > 填充洞(Mesh > Fill Hole)”),然后将使用“合并功能”(Merge
feature)(编辑网格 > 合并(Edit Mesh > Merge))与一个适合的小“阈值容差”(Threshold tolerance)一起使用来合并实际上重合的顶点。
•确保所涉及的网格没有非常小的面和边。“布尔运算”(Booleans operations)不适合面积为零(或非常小)或边长度为零(或非常短)的网格。
通过“polyBoolOp”节点上的“使用阈值”(Use Thresholds)选项,布尔功能会自动检查并移除非常小的面和边。该功能控制两个阈值设置,这两个
设置确定在布尔运算过程中是否会自动检查并移除较小的面和边。默认设置为启用。
-“顶点距离阈值”(Vertex Distance Threshold)会检查零长度边(或非常短的边)。比指定的值更近的任何顶点将自动合并为一个顶点。
-“面区域阈值”(Face Area Threshold)检查零面积面(或非常小的面)。面积小于指定值的任何面将自动收拢为一个顶点。
注意
默认阈值设置是一个很好的起点。如果布尔运算失败,可以尝试这些阈值设置来获得最佳结果。以一个太大的值增大“polyBoolean”节点上的“顶点
距离阈值”(Vertex Distance Threshold)或“面区域阈值”(Face Area Threshold)将导致网格的各个部分消失。
使用布尔运算时,Maya 内存不足
在很大的多边形对象上使用布尔运算是一种内存密集型操作。如果在很大的多边形对象上多次执行该运算,Maya 会内存不足。
若要减少内存不足的可能性,在很大的多边形对象上执行布尔运算时,请保持小的撤消队列长度,或时常刷新撤消队列。
相关主题
•组合多边形网格
•在布尔运算后编辑原始对象
请将您关于此页内容的评论发送给我们
(www.cgtsj.com)