Click to go Home  
Render times
User Profiles
Macros / Scripts
Materials / VSL
User images
Image Contest
Realsoft images
VRgrafix images
Car - Magazine Advert
By Magna Mana

Advanced Boolean Operations

Realsoft 3D has a very powerful Boolean featureset that allows the user to create subtractions and unions of objects in many ways. Not limited to simply cutting a hole through an object, RS3D can cut entire scenes in half and have complex level structures join together to create very detailed objects.

Most commonly, Boolean operations are used to subtract one object from another. For example, a drill cutting a hole into a desk. But the power of booleans allow us to use more than just one object. By dropping a whole series of objects to a level, we can make multiple cuts into one object:

1/. Create an analytical cube.
2/. Duplicate the cube (Ctrl+D) and size it so it is a very thin slit, smaller than the original using the handles. Position it so it is slightly inside the original cube.
3/. Drop this thin cube into its own level (Right click "drop to a Level") and rename the level: "Cuts"
4/. Select the thin cube in the level. Make the "cuts" level the current level (Right click "Make Current")
5/. Turn on Macros/Record (Macro pull down menu).
6/. Duplicate the thin cube and move it up slightly. (Do not use the handles to duplicate - use either the pull down menu, right click or Keyboard shortcuts Ctrl+A to duplicate)
7/. Turn off Macros/Record. Press the "Ctrl+G" key to execute the macro once. Repeat until you have the desired number of thin cuts. (say 10)
8/. Make the Root level the current level. Select the first cube, and the level "Cuts".
9/. Under the Construction tab in the main toolbar - select Boolean.
10/. Select the AND NOT icon next to operation. (% key shortcut) Leave all other values to default and accept.

The Boolean operation now cuts the thin cubes from the original cube. This is dependent on the selection order - always select the object you want to cut FROM, then the object to be cut OUT.

Note that we can now add object freely to this "Cut" level and they all cut out from the original cube. Typically, if only 2 objects are used in a Boolean operation, the Cut object is set the attributes: invisible in wire, and volume inverted.

By dropping these objects to a level before applying the Boolean, the level inherits these attributes and all objects underneath inherit the layers properties. Hence we can also change the layers color to change all the cut colors. This ability to add objects to the level without having to set the "inverted volume" attribute allows us to take this example further:

Adding materials to a cut object level allows us to create all sorts of interesting effects - For example, having a brick outer wall, then cutting holes in the wall with wood mapped cubes would yield a wooden window sill in the walls.

Its important to note that booleans can have booleaned objects. To create a piston ring - one creates a cylinder, cuts a hole in the middle, then uses that object to cut out from another cylinder, then duplicating the first cut ring to create a piston with a ring cut and piston ring inside. Such nesting of booleans is limitless - cutting and shaping an object until the final form is realized.

Primarily analytical objects are used as they are closed shapes and the volume is easily inverted. The polyhedron shape is of particular use - as its RS3D's answer to a freeform shape. By using polyhedrons creatively, one can create almost any shape.


Example file: download here.

Attached is a relatively simple scene making good use of Boolean operators. Starting from a simple cylinder we "chiseled" out the form of a piston. Thinking in terms of subtraction is the key - How you want to "Cut" the object to obtain the shape you desire. Often this means cutting the cut tool - as with this scene. Examine how chamfers were cut from the shape with cones then cut again from the piston cylinder. Note that this object was created solely from Analytical objects - predominately cylinders.

A useful technique for modeling complex forms such as this is to duplicate many of the objects from the original cylinder. This creates objects in the correct transform space and often only requires simple scaling or rotating.

When attempting to visualize the shapes inside a Boolean - creating the cut shapes OUT of the Boolean level is useful, placing them in the correct location, then dragging the icon into the "Cut" level.

Boolean representations can often be quite confusing and the Wire and Open GL representations quite inaccurate. Remember that these are merely Previews of the object - renderings show the final form. Working in Wireframe is by far the fastest method with Booleans - as the Open GL view is constantly being updated, computation times can sometimes be too slow for complex booleans. Working in wireframe is best with complex scenes.

Under the object properties/wire tab of a Boolean level is a tag "AND wireframe off". This can be set to turn off the automatic Boolean wireframe representation if needed.

Problem solving booleans

Occasionally, after much cutting and pasting between levels - errors can appear. These errors can either be strange artifacting - which is quite possibly the result of two shapes exactly on top of each other. Or booleans looking completely wrong -If this is the case, the easiest method to check your objects is to drag half of the objects out of the Boolean level and render (Often the wireframe representation is enough). If the Boolean looks OK then slowly add various shapes back under the boolean level until you can pinpoint which shape is causing the problems (drag the icons out of the Boolean level and turn off render.) The problems are most likely due to having invert on - check the problem objects for unusual attributes under the Object properties/Gen tab.


With many operations in any 3D package - one must be very careful as to placement of cutting objects. Sometimes duplicates may appear unknown to the user and strange artifacting may result as two exactly the same objects may be cutting another - finite tolerance of computers allows us to place objects in exactly the same positions, but when cutting two objects - it is imperative that the cut object is slightly away from the edge or corner to allow at least some cut or not cut right through with strange results. This is also applicable when mapping scope or finite materials.

When mapping Boolean objects - it is often a good idea to drop the Boolean level to another level, then apply the material.

Page updated on Tuesday, 25 February, 2003 . For feedback / model submissions or articles - please email us.
Site proudly sponsored by VR.grafix
Goto Sponsors Site (VRgrafix)