Qmorf - an Open Inventor 3D morphing program
--------------------------------------------

This directory contains source code and data for the Open Inventor
qmorf demo program.

Qmorf was written by Gavin Bell for Silicon Graphics to show off the
capabilities of Open Inventor and Silicon Graphics workstations.
Qmorf reads in Inventor model files and extracts geometry, texture and
material information from the files.  It then creates an intermediate
geometry that is a combination of two of the files.  Qmorf is not related to
other morphing programs (like the program used to produce the effects in
Michael Jackson's "Black or White" video).  Those programs use image warping
techniques to modify 2D images; this program actually modifies an object's
3D geometry.

Currently, qmorf is only able to interpolate between files that contain
QuadMeshes with 40 by 40 vertices (1521 quads).  Standard C++ code is used
to linearly interpolate the positions of the vertices of the intermediate
geometry.  Open Inventor is used to linearly interpolate the objects' textures
or materials.  The intermediate geometry is drawn twice, first with the
first set of materials or textures or materials applied.  Then the object is
drawn again with the second set of materials or textures applied, modified
to be semi-transparent.  Open Inventor (using the Open GL) blends the
semi-transparent object with the already drawn geometry.  By varying the
level of transparency, a smooth fade from one object's texture to the next
 is achieved.

The background is derived from code originally written by Drew Olbrich.
It is a 21 by 21 QuadMesh (400 quads) with a different material at each vertex.
The positions of the vertices are determined by various mathematical
functions (e.g. sine waves, exponential functions, etc), while the colors
are determined by a fractal noise function.  The positions and colors are 
edited each frame of the animation using C++ code, interpolating from one 
set of positions and colors to the next.  The total number of quads in 
any given frame is 3,442 (1552*2+400).

The main window of the program is the standard Inventor Examiner Viewer
Xt component.  The button and sliders are Motif widgets.


How to run qmorf:
----------------
qmorf /usr/share/data/models/CyberHeads/*.iv

Data files
----------
The data files that work with qmorf are found in:

	/usr/share/data/models/CyberHeads/*.iv

YOU MUST INSTALL inventor_eoe.data.sample to get these data files!


How to make quad meshes that work with qmorf:
--------------------------------------------
Makefile.shapes and quad*.c++ are files used to create the quad-mesh
format geometric shapes used by qmorf.  To create them, type
'make -f Makefile.shapes'.


Data Credits:
------------
The data files in the CyberHeads/ directory were converted into Open
Inventor format from data gathered by a Cyberware laser digitizer.  For
more information on CyberWare products, contact:

	Cyberware Laboratory Inc. 
	8 Harris Court #3D
	Monterey, California 93940

	Phone: (408) 373-1441 8am-5pm Pacific Time
	Fax: (408) 373-3582
