3D Studio MAX 3: In Depth. Sample Chapter | 3
The "Object" in MAX
If you're a programmer, you're likely to have your own understanding of the term "object-oriented programming." This huge concept encompasses many things, and MAX is all of them. It is a masterpiece of object-oriented software design, maybe the best-written application I have ever seen (certainly for its size). But the 3D artist who is not a programmer must still understand at least the single most important aspect of MAX's object-oriented nature: There is no clear distinction between data and functions.
In traditional programming theory, data and functions are two distinct concepts. Data is simply information--a numerical value, a string of text characters, whatever. It is static. A function (or procedure) is an action. A function acts on data, generally to create new data. Data is passed into a function, which processes it to produce output data. This is a bit of an oversimplification, but not much. Suppose that we write a function designed to add two numbers together. The two numbers are data that are input into the function. The sum is the output, which is also data. The function must contain "slots" into which the two numbers can be input, and these slots are the function's "parameters." This concept of parameters is, as you will soon see, one of the most basic concepts in 3D Studio MAX.In most 3D applications (even though they are typically programmed using object-oriented tools), the distinction between data and functions remains clear to the user. When you create a primitive object (a sphere, for example), a function is called that produces the sphere data object. If you want to change the sphere in some way, another function is called that takes the current sphere data as input and processes it to produce new data. In pure object-oriented theory, however, there is no clear distinction between data and functions. Instead, data and related functions are packaged together into units called objects. A MAX -Sphere primitive (or indeed, any MAX primitive) is more easily thought of as a function used to draw a box, rather than the box itself. This concept applies throughout the program.
Let's take a closer look.
|To Continue, Use Arrow Buttons||
Comments are welcome
Reproduced with permission from The Coriolis Group, copyright © 1999
Created: Sept. 30, 1999
Revised: Sept. 30, 1999