Chapter 10 Boolean Modeling
From ShadeCamp
Composite objects can be created easily by combining several simple solid bodies. Generation of a composite object by combining solid bodies is called a Boolean operation. In general, there are three types of Boolean operations: sum, difference, and product. A solid body is an object with a clearly defined inside and outside. In Shade, closed objects are used as solid bodies. Spheres, extruded objects, revolved objects, curved surfaces with a lattice structure between line objects, and Polygon Meshes created by transforming those curved surfaces, are types of closed objects. In Shade, there are two ways to use Boolean operations; one is “Boolean modeling” that reflects the result of Boolean operations on the object themselves, and the other is “Boolean rendering” that does not reflect the result of Boolean operations on the object themselves but only in rendered images.
Introduction
The sum, difference, and product operations are controlled using special characters added to object names, and there are several other characters used to provide conditions of operation. Composite objects and surface attributes can be rendered by applying Boolean Operations. Boolean Operations should only be specified for closed objects. Boolean Operations are specified using special characters at the beginning of individual object names. These characters can be repeated one after another.
Note that the characters used in Shade do not happen to correspond with their original meanings. (The sum, difference, and product are represented in general by characters such as +, -, and *, but they are represented in Shade by characters such as \, * and $.) Note that they must be set using one-byte characters. “ - ”
- Applying a Hole
When an object with the minus sign“ - ” at the beginning of the object name (to be referred to as a “ - ” object) and an object in another hierarchical level intersect, the “ - ” object will cut a hole out of the other object. The “ - ” object itself will not be rendered. That is, a “ - ” object will not be displayed in the Boolean rendering.
Two overlapping spheres. No Boolean operations are used here.
Result of placing a “ - ” character at the beginning of the Metallic sphere object name. The marbled sphere has a hole cut out of it by the Metallic sphere.
“ \ ” - Sum
When a “ \ ” object and another object (regardless of the hierarchical levels) intersect, the “ \ ” object will be combined with the other object. The combined object appears the same, though the internally intersecting part will not be displayed. This technique can be used for a combined object used to slice yet another object. The individual surface attribute settings of each object will be retained.
Two overlapping transparent extruded objects. No Boolean operations are used here. A part of the thin extruded object is seen inside the thick one.
The two extruded objects are combined, and the internal intersecting parts disappear.
“ * ” - Difference
When a “ * ” object and an object in another hierarchical level intersect, the other object is sliced with the “ * ” object, and the surface attribute settings of the sliced part are replaced with those of the “ * ” object. The “ * ” object itself is not displayed in the rendered image.
Two overlapping spheres. No Boolean operations are used here.
The marbled sphere is cut out by the metallic one, and the cut-out surface is replaced by the metallic one.
A case in which a part containing overlapping spheres cuts out another object. In the above example, the overlapping part is preserved.
The sum character is used to combine overlapping objects.
In the above example, a difference part containing a “ \ ” metallic sphere is displayed.
Localizing the “ \ ” character using a “ & ” character enables the overlapping object to cut out other objects.
“ $ ” - Product
When a “ $ ” object and an object in another hierarchical level intersect, everything except for the intersection will not be displayed. The individual surface attribute settings will be retained by each object.
Two transparent objects are overlapped.
Only the intersecting part of the two objects is displayed. The “&” character is not required for displaying this object, but if the “$” character is localized by the “&” character, other objects are not displayed.
Previous objects are laid side-by-side. Since the “$” character is localized by the “&” character, the objects placed side-by-side are not affected.
“ = ” - Replacing the Surface Attributes
When an “ = ” object and an object in another hierarchical level intersect, the surface attribute settings of the intersection are replaced with those of the “ = ”object. The “ = ” object itself is not rendered.
Two overlapping objects. No Boolean operations are used here.
The surface attributes at the intersections with the sphere are replaced with metallic ones.
The surface attribute settings of an “ = ” object should not use wrap mapping with an image, or the reflection of an image. Wrap mapping is defined for the surfaces of objects, but cannot be defined for intersections.
By combining multiple mappings using masks, a very useful technique called Decor Mapping can be achieved. We usually call it “Sticker Mapping” in Shade.
In sticker mapping, an image on a black or white background is mapped, an “ = “ object specified as a sticker by switching on the White Key Mask or Black Key Mask checkbox is prepared, and the surface attributes of the object to be mapped are set for the part containing both the object to be mapped and the sticker object. Changing the location of the sticker object enables you to paste the image anywhere you wish within the object to be mapped. The surface attribute settings of the object to be mapped will show through as the base color of the image.
Here, let’s sticker map the above logo on a metallic sphere. This logo is a black and white binary image with no anti-aliasing.
The projection mapping of the black letters on a white background appears on the object with the “ = ” character, and the White Key Mask checkbox in the More Shading Attributes dialog box is on. The metallic texture is inherited from the parent part.
“ & ” - For Locally Restricting Effects of Other Calculations; Functions as a Local “ = ” Character
Combining the “ & ” character with others will locally restrict (localize) the effects of the other operations to the same or lower hierarchical levels of parts.
We usually call it “locally restrict” or “locally apply” or “being localized.” When the “&” character is included, the effects of other calculations are applied to all the hierarchical levels of objects. We call this “globally applied” or “being global.” Using the “ & ” character by itself will locally apply a function equivalent to that of the “ = “ character.
One big sphere and five small spheres.
A big sphere is sliced (cut out) by small spheres using the “ * ” character. The target object is a female mold, where this object is treated as the male mold.
Cut out an extruded object with the male mold. In the above example, since the “ * ” character of the small spheres affects the extruded object, a proper female mold cannot be created.
When the “ * ” character is locally restricted using the “&” character, a proper female mold can be created.
“ + ” - Cancels Effects of the “* ” and “ - ” Characters
“ + “ object cancels the effects of the “ * ” and “ - ” characters.
This is a sphere surrounded by a ring. The ring is created from two spheres (a big and a small one) and two “*” extruded objects that cut out the spheres. The spheres placed at the center are sliced by the effect of the “*” character. (The internal image was created by synthesizing a wireframerendered image several times using the backdrop function.)
When the “ + ” character is attached to the center sphere, the effect of the “*” objects is canceled.
“ ! ” - Cancels the Effects of the “ * ”, “ - ,” and “ = ”Characters
“ ! ” object cancels the effects of the “ * ”, “ - ,” and “ = ” characters.
Here again the sphere is surrounded by a ring. This time the sphere is sticker-mapped. The ring is created from two spheres (a big and a small one) and two “*” extruded objects that cut out the spheres. The mesh is sliced by the effect of “*” character and affected by the “ = ” character. (The internal image was created by synthesizing a wireframe-rendered image several times using the backdrop function.)
When the “ ! ” character is attached to the mesh, the effects of “*” and “ = ” objects are canceled.
“ ^ ” - Cancels the Effect of the “ = ” Character
“ ^ ” object cancels the effect of “ = ” objects.
This is a sticker-mapped sphere surrounded by a ring. The ring is created from two spheres (a big and a small one) and two “*” extruded objects that cut out the spheres. Influenced by the effect of the “ = ” character, the ring is sticker-mapped. (The internal image was created by synthesizing a wireframe-rendered image several times using the backdrop function.)
When the “ ^ ” character is attached to the ring, the effect of the “ = ” object is canceled.
Boolean Modeling
Boolean Modeling creates Polygon Meshes by the result of Boolean Modeling.
How to use Boolean Modeling
1. Select an object and the part containing the target object, or the upper hierarchy of the part, which uses Shade’s Boolean rendering.
(The internal image was created by synthesizing a wireframerendered image several times using the backdrop function.) The lower image is the result of rendering.
2. Choose Boolean Modeling from the Create tool. The Boolean Modeling Options dialog box opens.
3. Choose a surface subdivision level from No Subdivision, Coarse, Regular, Fine, and Very Fine, and press OK.
The Allow more than 4 vertices per face checkbox is provided in support of polygons with more surfaces than a pentagon in a Polygon Mesh. You can use an object that has more than five surfaces as a transformed Polygon Mesh by switching this checkbox on.
4. A part named BooleanResult will be created. You can find the transformed Polygon Mesh objects there.
As a result of Boolean Modeling, seven Polygon Meshes are created. If the precision of the subdivision is good enough, the rendered result will not be inferior to that of Boolean rendering.
Rendering the result of Boolean modeling
Boolean Modeling Limitations
Boolean Modeling supports all of the Boolean rendering special characters: “*”, “-”, “=”, “\”, “$”, “&”, “+”, “!”, and “^”. In order to treat an object with the “*” character attached, the object which is cut out must have an enclosed volume (must be closed).
Surface Subdivision
The Surface Subdivision in Boolean Modeling can be controlled by “<”, “>”, and “@” characters attached to the beginning of object names. The Surface Subdivision setting in the Rendering Options will then be ignored.
Joints
The current joint values of the Rotator joint, Slider joint, Scale joint, and Uni-Scale joint are reflected, but all other types of joints are ignored for Boolean modeling, and cannot be used during the creation of animations.
Surface Attributes
All the surface attributes are inherited by created Polygon Meshes, but the attributes cannot replace the shapes. For example, the concave and convex areas of bump-mapped object surfaces or trim-mapped holes cannot be shaped.
Hole Checkbox in the Line Object Dialog
The setting of the Hole checkbox for line objects in Object Info window is ignored. |






























