Particle Systems in Java 3D


Articulation and Morphing

Another 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.


MD3 loader

A morphing animation example using the MD3 loader from New Dawn Software (http://www.newdawnsoftware.com/) can be found at http://www.la-cfd.com/cassos/test/md3/.


M3G

J2ME's M3G API (see the previous section) includes a MorphingMesh class. An example showing its capabilities can be found at this book's web site, http://fivedots.coe.psu.ac.th/~ad/jg/.


Salamander

Articulated figures in McKay's Salamander (see the previous section) originally used morphing for animation, but it was abandoned in favor of the skinning system. Morphing tended to produce unrealistic visual transitions.



Killer Game Programming in Java
Killer Game Programming in Java
ISBN: 0596007302
EAN: 2147483647
Year: 2006
Pages: 340

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net