Understanding Boolean Operations - Adobe ATMOSPHERE User Manual

Table of Contents

Advertisement

100
CHAPTER 9

Understanding Boolean Operations

Atmosphere's Solid Object editor is an example of a Boolean or solids modeler. It uses a principal called Constructive
Solid Geometry (CSG) to combine primitive solids into more complex assemblies. By grouping primitives together,
more complex pieces can be constructed. By grouping groups with primitive and other groups, even more complex
objects can be assembled.
The fi rst thing to note is that all Solid Objects in Atmosphere ultimately are composed of solid primitives. A
solid primitive is not a collection of polygons or surfaces, but a closed area of space defi ned by it's type and some
parameters. In Atmosphere the parameters that describe the shape of a solid primitive come from a combination
of the Connectors used to shape the Primitive, and other parameters that are available in the Primitive's Inspector.
By moving Connectors around and by changing the parameters of the Primitive through it's Inspector, the user can
change the shape, size, and location of the Primitive.
If only Primitives were allowed, then the types of objects that could be created in this manner would be very limited.
Constructive Solid Geometry, couple with the concept of grouping, allows an infi nitely complex structure to be
assembled from these relatively simple elements. Primitives can be combined in Solid Object Groups. Solid Object
Groups can also be combined in higher-level Groups, along with other Groups and/or Primitives.
Normally, objects (Primitives or Groups) combined together into a single Group will represent what, in Boolean
nomenclature, is called a Union Surface. This is simply the "skin" of the object that is created by sticking together all
the Primitives (and other, lower-level Groups) within the Group. If objects within the Group overlap (or intersect)
each other, the areas of the objects that are hidden inside other objects will be discarded. The "skin" or polygonal
surface of the Group as a whole will be the outermost polygons from all the objects in the Group that are visible.
Two other Boolean operations are allowed within Groups, however. These operations make it possible to construct
much more complex structures. The fi rst, and most heavily used, is the Boolean Subtract Operator. If you mark a
Primitive or Group as "subtractive", then, instead of it's area being combined additively with the other Primitives and
Groups in it's own Group, it's area will be subtracted from the other elements in it's Group. This allows the user to
carve holes in structures. This is useful for creating windows, doors, and other common architectural features, but it
can also be used in a number of surprising ways to "carve" objects out of others.
The second Boolean operation to review is the Boolean Intersection Operator. This operation is applied to a Group
as a whole, by marking a property of the Group in it's Inspector. When marked as an Intersection Group, the "skin"
of the resulting object for the Group will be constructed by fi nding all of the common surfaces of it's element objects.
For example, if a Group contained two disjoint (non-intersecting) boxes, then it's intersection would be empty, it
would contain no surfaces. If one box was contained within another, larger, box, then the resulting intersection would
be the smaller box. The spaces of all the element objects groups are combined so that only mutually overlapping space
is considered to be part of the new object.
It is best of think of each Group in the Solid Object Hierarchy as representing a complete geometric object, which is
the result of all of the Boolean operations combining the elements that it contains. As you move up the Solid Object
Hierarchy, the object representing each Group (which will always itself continue to be a solid object) is combined
with higher-level elements, until the very top level of the hierarchy is reached. At this point, the fi nal Solid Object in
the scene is defi ned. Each time you switch from a wireframe view to the Player View, this bottom to top calculation is

Advertisement

Table of Contents
loading

Table of Contents