|
||||||||||||||
CHAPTER 2
|
| |
![]() | NOTE Chapter 4 includes a step-by-step description of how the dataflow affects modeling. |
The Master Object
Object dataflow begins with the master object. A master object is like DNA: it defines the potential of an object before it actually has been created. Once you create an object by entering specific values for length, width, height, position, and so on, it is no longer a master object, but rather an explicitly defined object based on the potential of the master.
Master objects use the following attributes for creating objects:
Modifiers
The next stop in the geometry pipeline is the modifiers. After the initial attributes of the master object have been established, MAX evaluates any modifiers that have been applied. Modifiers are commands that affect objects in relation to their object space. They appear in the objects modifier stack in the order in which you place them. Modifiers are always evaluated in order, from the bottom of the stack to the top. The object type of the master object is listed at the base of the stack to indicate that it is evaluated before the modifiers in the object dataflow (see Figure 2.4).
FIGURE
2.4 The modifier stack is an ordered list of
commands.
Changing the order of the modifier stack commands can change the resulting appearance of the object they modify. For example, if you bend a box and then twist it, you will get different results than if you twist the box and then bend it (see Figure 2.5).
FIGURE
2.5 The box on the left was bent and then twisted.
Compare it to the box on the right, which was twisted and then bent.
One of the most powerful features of modifier stacks is that they allow you to go back into the history of an object and change its creation and command parameters. This includes being able to go back and change the order of modifiers, duplicating and deleting them using the Edit Stack commands (see Figure 2.6). If you want to modify another object in a similar fashion, the edit commands allow you to copy the modifier stack from one object to another, as weve done in Figure 2.7.
FIGURE
2.6 Copying and pasting modifiers from a box
to a cylinder.
FIGURE
2.7 As a result of changing the modifiers, the
cylinder (right) tapers and bends like the box.
The modifier stack is also the vehicle for editing objects at the sub-object level. There are three ways to access the sub-object components of an object: apply a select modifier, apply an edit modifier, or convert the modified object to an editable object. Select and edit modifiers have the advantage of flexibility because they preserve the structure of the modifier stack. Editable objects have the advantage of speed, because the process of conversion eliminates the current list of modifiers so that the program no longer needs to evaluate them. The result of collapsing the stack (shown in Figure 2.8) is an explicitly defined object that is the sum of all previously applied commands.
FIGURE
2.8 Clicking Collapse All collapses the modifier
stack.
Transforms
MAX next evaluates transforms. Transforms are related to modifiers in that they are sometimes used for modeling objects. Unlike modifiers, transforms are calculated in relation to the world coordinate system, or world space, rather than the objects local position or orientation. In addition, transforms are evaluated in a constantly updating matrix, which overwrites their data history. This means that you cannot go back and change a previously applied transform command, unless you use the Undo command or call up an earlier version of your scene. Transforms can easily be reversed by applying an opposite transform command, something we cannot do to modifiers.
Because MAX always evaluates modifiers before it evaluates transforms, you may get unexpectedand unwantedresults when using non-uniform scale and squash transforms with geometric modifiers. An XForm modifier circumvents this problem; applying an XForm modifier places a transform in the modifier stack to be evaluated there in the order of application, rather than after the whole stack has been evaluated. Look at the example in Figure 2.9. The object on the left is the result of applying a Squash transform to a cube and then bending it 90º. On the right, an XForm modifier was used to apply the Squash transform before bending it, providing a very different result.
FIGURE
2.9 On the left, squash then bend; on the right,
bend then squash!
You can also use transforms in the modifier stack to edit and animate objects at the sub-object level (see Figure 2.10). Edit modifiers and editable objects both contain sub-object transform commands. If you use a select modifier to create a sub-object selection, you apply transforms to the selection using an XForm modifier.
FIGURE
2.10 Moving and scaling a sub-object selection
Previous | Table of Contents | Next |
© 2000, Frol (selection, edition, publication)
![]() |