Articulation and MorphingAnother animation possibility is morphing, which allows a smooth transition between different GeometryArrays. This is done using a Morph node, set up in a similar way to a Switch to access its child geometries but with weights assigned to the shapes. The Morph node combines the geometries into a single aggregate shape based on each GeometryArray's corresponding weight. Typically, Behavior nodes modify the weights to achieve various morphing effects. The drawback is that the various objects must have similar structures (e.g., the same number of coordinates). Morphing may not be required for rapidly changing poses since our eyes tend to deceive us by filling in the gaps themselves. Morphing can be used in two ways with the animation techniques I've been discussing. It can be employed as an interpolation mechanism between models in a keyframe sequence or utilized to deform a figure. The former approach is discussed in Chapter 5 of the Java 3D tutorial where a stick figure is animated. Mesh deformation is illustrated by an example in the Java 3D demos, in the directory Morphing/, showing how a hand can be made to slowly wave by morphing between three OBJ files.
|