Shapes and objects often have to be duplicated in the process of modeling, and there are several ways to do this. Many programs allow you to duplicate shapes and objects easily when doing a transform operation by holding down a modifier key like Shift as you move, scale, or rotate the object. This generates a copy that you continue to transform while leaving the original intact. As with the transform and deform operations, the current coordinate system, axis constraints, and pivot point may have an effect on the outcome.
Copying and Instancing
Most of the time, you'll use a clone or copy operation similar to the method just outlined to create an identical duplicate of the selected object. There are a couple of variations on the cloning theme, however. Straightforward clones are simply copies of the original, and become objects in their own right, just as if you had made them from scratch. Each of them can be modified independently of its mesh brethren (see Figure 3.36). Naturally, this is desirable if you're trying to create variation between the objects.
FIGURE 3.36 Cloning and instancing: (a) The original object. (b) Duplicated made by Move-copy or some other operation. (c) With regular copies, each duplicate can be modified independently. (d) With instanced copies, modifications made to any of the copies affect them all.
On the other hand, there will be times when you want to be able to affect a large number of objects in the same fashion, without working on them one by one. In these cases, you can opt to create instanced objects, which appear to be copies, but are actually the same object seen at different points in space. It's sort of like going into a house of mirrorsthere's only one you, but there seem to be a small army of clones about. In addition, instanced objects consume very little memory, so your system tends to operate and render faster than if the copies were straight clones.
Instanced objects are a real time-saver when dealing with scenes that use lots of identical objects, like a structure made up of identical columns. If you decide to make an adjustment to the columns' shape, you need adjust only one and the rest will change automatically. One caveat, thoughtransforms such as scale and rotate may or may not affect an instance depending on the program and how you set the parameters.
A convenient way to create a series of clones, instanced or otherwise, is to use the Array command. Array creates a matrix or pattern of objects based on the one you have selected.
A linear array is a series of copies made in a line along a selected axis (see Figure 3.37). To create a linear array, you select an object, then define an axis, distance, and number of duplicates desired. The duplicates can either be identical to the original, but simply offset, or they can have additional transforms done to them, such as Rotate or Scale.
FIGURE 3.37 Examples of linear Arrays: (a) A basic linear array. (b) A linear array with rotation applied. (c) A linear array with scaling applied.
Arrays don't have to be linear, however. They also can be rotation-based, resulting in a radial array (see Figure 3.38). The process here is very similar, except that you select a rotation axis and specify the number of copies along with the angle in degrees that you want them offset from each other.
FIGURE 3.38 Rotational arrays: (a) Object with pivot point offset along Y and Z axes. (b) X-axis array. (c) Y-axis array. (d) Z-axis array.