布尔对象通过对其他两个对象执行布尔操作将它们组合起来。
操作对象 A(左);操作对象 B(右)
以下是几何体的布尔操作:
布尔型对象包含两个原始对象的体积。将移除几何体的相交部分或重叠部分。
布尔型对象只包含两个原始对象公用的体积(即重叠的位置)。
布尔型对象包含从中减去相交体积的原始对象的体积。
指定两个原始对象为操作对象 A 和 B。
可以采用堆栈显示的方式对布尔操作进行分层,以便在单个对象中包含多个布尔操作。通过在堆栈显示中进行导航,可以重新访问每个布尔操作的组件,并对它们进行更改。
差集:A-B(上);B-A(下)
并集(上);交集(下)
大多数基本体的表面都使用多个 材质 ID。例如,长方体在其面上使用材质 ID 1–6。如果指定包含 6 个子材质的“多维/子对象”材质,则 3ds Max 会自动为每一面指定一个子材质。如果指定包含 2 个子材质的“多维/子对象”材质,则 3ds Max 将第一个子材质指定给面 1、3 和 5,将第二个子材质指定给面 2、4 和 6。
如果对指定了材质的对象执行布尔操作,则 3ds Max 按照以下方式组合材质:
有关详细信息,请参见“材质附加选项”对话框。
在较早的版本中,布尔算法曾造成一些意外的行为。以下讨论了其解决方案。
布尔操作要求操作对象的表面拓扑是完好无缺的:这意味着,表面要没有缺失或重叠,也没有未焊接的顶点。表面应当是一个连续且封闭的面。
布尔操作会对不满足此要求的操作对象进行修正。不过,自动修正不一定非常精确,因此,在某些情况中手动修正可能更为可靠。
要检查几何体中的洞,请使用 “STL 检查”修改器或测量工具。
要填充洞,请使用“补洞”修改器。
布尔操作要求表面的面法线一致。翻转的法线可能会产生意外的结果。如果某些面朝向一个方向而相邻面发生翻转,则这样的表面也可能带来问题,这在由 CAD 程序导入的几何体中很常见。布尔操作在最大程度上解决了这些面的问题。尽管如此,手工修改仍然不失为解决此类问题的最佳方式。
可以使用着色视口查找法线问题,同时观察显示为内部外翻或看上去异样的对象。还可以在“可编辑网格 (曲面)”“曲面属性”卷展栏
“法线”组中启用“显示”。在此修复法线,或使用“法线”修改器。
由于布尔操作取决于区分网格的内部与外部,因此,重叠的网格会产生无效的结果。例如,如果在不启用布尔功能的情况下对两个重叠对象使用“折叠”工具,则所获得的对象不会产生好的布尔操作对象。对于自身重叠的茶壶基本体(所有部分均已启用)而言,这也是个问题。
如果必须使用此类对象作为布尔操作对象,则可以将组件分离并使用布尔操作进行组合,以将其重新构造为单个不重叠的网格。
对于“反向网格”(网格由于法线翻转而变得内部外翻),布尔操作并不能总是产生理想的结果。问题在于翻转网格内部的区域应被正确地视为“外部”,但其外部区域也可能被视为“外部”。要修正此问题,不应反转网格,而是应生成一个非常大的长方体或其他以网格为中心(但不要接触)的基本体,并使用布尔操作从该几何体中减去网格。然后,将其转换为一个可编辑的网格,并删除长方体的面。此操作将产生一个正确反转的网格,对该网格可正确使用布尔操作。
如果两个布尔操作对象完全对齐但实际上并未相交,则布尔操作可能会产生错误的结果。虽然这种情况极为少见,不过如果确实发生了,那么可以通过使操作对象稍稍重叠来消除错误。
当两个操作对象的复杂性比较接近时,布尔操作的效果最佳。如果要在没有任何分段的长方体中减去文本(一种由许多面和顶点构成的复杂对象),则获得的结果是许多很容易产生渲染错误的细长的面。增加长方体分段的数量可使结果变好。应尽量使操作对象的复杂性接近。
以前,布尔操作要求对象重叠。如果两个对象不重叠,而仅仅是边与边或面与面接触,则布尔操作将失败。
现在,对不重叠的对象也可以执行布尔操作。重合面/边和顶点不再成为问题。可以使用完全被另一个对象所包围、二者没有相交边的对象来执行布尔操作。
请参见“折叠”工具,以对多个对象执行布尔操作。
要创建布尔对象,请执行以下操作:
操作对象保留为布尔对象的子对象。通过修改布尔操作对象子对象的创建参数,稍后可以更改操作对象几何体,以更改布尔操作结果或设置布尔操作结果的动画。
示例:要创建和修改包含多个布尔操作的单个对象,请执行以下操作:
假设要创建带有两个洞的长方体。其中一个洞是用球体剪切的,而另一个洞是用圆柱体剪切的。如果稍后要更改球体或圆柱体,则可以执行以下步骤:
如果要设置圆柱体或圆柱体参数的动画,则现在可以在修改器堆栈显示中访问它们。
还可以通过轨迹视图浏览多个布尔操作。在轨迹视图中单击操作对象,可直接在修改器堆栈显示中访问其项。在具有众多布尔操作的复杂对象中,这种方法比上面介绍的方法更为便捷。
选择操作对象 B 时,根据在“拾取布尔”卷展栏中为布尔对象所做的选择,操作对象 B 可指定为引用、移动(对象本身)、复制或实例化。应根据创建布尔对象之后希望如何使用场景几何体来进行选择。
因为通常情况下都是对重叠对象创建布尔对象,因此,如果对象 B 没有移除(假设未使用默认的“移动”选项),则在查看完整的布尔对象时它往往会挡住视角。可以移动布尔对象或 B 对象,以更好地查看结果。
切割有下面四种类型:
查看布尔操作的结果比较复杂,尤其是在要修改结果或设置结果的动画时。可使用“布尔参数”卷展栏上的“显示”选项来帮助查看布尔操作的构造方式。
在创建布尔操作之前,以下显示控件是无效的。
尽管复合布尔对象部分不可见或不可渲染,但操作对象几何体仍保留了此部分。在所有视口中,操作对象几何体都显示为线框。
显示操作对象
显示结果 (A-B)
显示 A-B 之后隐藏的运算对象
显示 B-A 之后隐藏的运算对象
默认情况下,只要更改操作对象,布尔对象便会更新。如果场景包含一个或多个复杂的活动布尔对象,则性能会受到影响。“更新”选项为提高性能提供了一种选择。
更新布尔对象。如果选择了“始终”,则“更新”按钮不可用。