home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
5 Star Games: Animations
/
5_STAR_GAMES.ISO
/
morphing
/
compmorp
/
cmorph.doc
next >
Wrap
Text File
|
1993-11-15
|
57KB
|
1,878 lines
The Complete Morph v2.00
Copyright 1993, Paul D. Nettle
_______
____|__ | (R)
--| | |-------------------
| ____|__ | Association of
| | |_| Shareware
|__| o | Professionals
-----| | |---------------------
|___|___| MEMBER
Document dated: November 15, 1993
Paul D. Nettle
9668 Washington St.
Romulus, MI 48174
(313) 941-9223
Author's name: Paul D. Nettle
Author's Compuserve ID: 72163,2442
This document also Copyright 1993, Paul D. Nettle
A limited license is granted to reprint short extracts from this document as
long as credit is given to the above mentioned party. Individuals, BBSs and
User Groups may distribute copies of this software, it's documentation and
associated files (originally distributed in an archive) freely as long as
the files remain in-tact, unmodified, are not re-named and are not made part
of some larger work without the written permission of Paul D. Nettle. A BBS
may rearchive the unmodified archived file's contents as long as the
resulting archive is named CMORPH.ZIP, CMORPH.ARC, CMORPH.LZH or CMORPH.???
The Complete Morph -- Copyright 1993, Paul D. Nettle
TABLE OF CONTENTS
Introduction .............................................4
What is Morphing? ...................................4
How does it work? ...................................4
System Requirements .................................5
Ombudsman Statement ......................................7
Definition of Shareware ..................................7
Disclaimer - Agreement ...................................8
Getting Started ..........................................9
Running CMorph from the command line .....................10
Configuring CMorph's Memory ..............................11
Virtual Memory ......................................11
Protected Mode Switching .................................13
Fine Control of Memory Usage ........................14
Specifying a Range of Extended Memory ...............14
A Note On the GUI ........................................16
A Few Notes On the Mouse .................................17
The Go Menu ..............................................18
Go menu category SYSTEM .............................18
LEAVE button ...................................18
DOS SHELL button ...............................18
GO button ......................................18
Go menu category OTHER ..............................18
HELP button ....................................18
ABOUT button ...................................18
Preferences Menu .........................................19
Preferences menu catagory: SPLINE SETTINGS .........19
Submenu catagory: MESH ........................19
CATMULL, BICUBIC and STRAIGHT buttons .....19
TIGHTNESS text box ........................19
Submenu catagory: INTERPOLATION ...............19
CATMULL, BICUBIC and STRAIGHT buttons .....19
TIGHTNESS text box ........................19
Preferences menu catagory: SCREEN SETTINGS .........19
DISPLAY CURVES button ..........................19
ZOOM button ....................................19
KWIK-SCREEN button .............................19
SOUNDS button ..................................19
CURSOR COLOR buttons ...........................19
MESH COLOR buttons .............................19
Preferences menu catagory: OUTPUT IMAGE FORMAT .....20
IMAGE FORMAT buttons ...........................20
TGAs BOTTOM-UP button ..........................20
Preferences menu catagory: OPERATION ...............20
OPERATION buttons ..............................20
FAST MORPH button ..............................20
Preferences menu catagory: OUTPUT CONFIGURATION ....20
FADE 50% text box ..............................20
FADE START % text box ..........................20
FADE END % text box ............................20
WARP 50% text box ..............................20
WARP START % text box ..........................20
WARP END % text box ............................20
Page 2
The Complete Morph -- Copyright 1993, Paul D. Nettle
Preferences menu catagory: FRAME CONTROL ...........21
TOTAL FRAMES text box ..........................21
START FRAME text box ...........................21
END FRAME text box .............................21
FRAME OFFSET text box ..........................21
The Other Menus ..........................................22
The Edit Menu .......................................22
The File Menu .......................................22
The Filters Menu ....................................22
The Preview Menu ....................................22
Creating a Mesh ..........................................23
Filter file (.FLT) format ................................24
IPI File Format ..........................................26
Future Enhancements ......................................27
Contacting Customer Support ..............................28
Ordering Information .....................................29
What you will get when you register .................29
What you will get when you register .................29
Non-registered vs registered users ..................29
Page 3
The Complete Morph -- Copyright 1993, Paul D. Nettle
INTRODUCTION
Thank you for choosing "The Complete Morph." I hope that this product will
be as useful for you as it was fun for me to write. I'll try to keep this
document from being dry, so forgive me if the jokes get bad.
From now on, lets just call "The Complete Morph" CMorph (pronounced "See-
Morph".)
What is morphing?
Morphing is the process of slowly fading from one image to another,
while warping the contents of both images so that they
"metamorphasize."
How does it work?
Morphing is, in theory, actually very simple. Understanding how
morphing works internally will aid you in creating high-quality morph
animations.
For a good quality morph, start by taking your time and finding a pair
of similar images that have the same resolution. As an example, try to
find two 320x200 images that both contain a full-screen face that is
facing the same way, has the same orientation, and who's major points
(eyes, etc.) line up pretty close to each other if they were to be
overlaid.
Now that you have two images, a mesh must be placed over each one.
This is the "manual-labor" part of morphing. Take your time, this mesh
defines the quality of the morph.
A mesh is made up of horizontal and vertical lines overlaid onto both
images. Each vertex of the mesh can be re-located. The points are
usually connected by a curved line to smooth the bends. But be careful
not to let any two horizontal or any two vertical mesh lines cross.
Once all of the mesh lines are complete, the points in the mesh should
line up with their counterpart on the other image (for example, the
point on the source image that is centered in the left eye should have
a counterpart on the destination image that is also on the left eye in
that image), the morphing is ready to begin. A hint for a real clean
morph is to align points in the image that not only select the features
of the image, but also outline it's features with the lines that
connect the points together.
Morphing is a three-step process. The first two steps are the warping
steps. The warping is done in two stages. First, all of the
horizontal mesh lines are used to break up the image into "bands".
Since there are the same number of bands in each image, the destination
band is warped to the same shape as it's counterpart in the source
image, and so on through all the bands. Next, the destination image is
broken up into vertical bands using the vertical mesh lines, and the
process is repeated for the vertical direction.
Page 4
The Complete Morph -- Copyright 1993, Paul D. Nettle
The last step in this process is to cross-fade the images into one.
CMorph is a full-featured morphing program. Take a look:
o Reads and writes GIF, IMG, TGA, BMP and IPI image files.
o CMorph has a very beautiful and easy-to-use user-interface that
utilizes all 256 colors of the SVGA palette, and on most video
cards can handle resolutions up to 800x600 (1024x768 mode is only
available on some video cards).
o A DOS-shell helps you with those unexpected needs to visit the DOS
prompt.
o You control the output. Create a morph, a warp, or a simple fade.
Each of these options utilizes parameters that let you control
where in your animation most of the warping and the fading take
place for super fine-tuning.
o An interface for external programs to perform tasks that CMorph
doesn't already perform via the IPI file format -- explained later
in this document. This file format is also used in CImage, another
of my products.
o CMorph has advanced spline meshes giving you the option of three
different spline types: Catmull (used in most morphing software
today), Bi-cubic splines, and straight lines. Different effects
can be obtained by changing which spline type is used for the image
warping and which spline type is used for the interpolation. The
Bi-cubic splines make use of a tightness parameter that allows you
to have spline meshes that are almost straight to "very curvy".
o CMorph also has advanced mesh editing features such as mirrored
cursors, and cross cursors for aligning mesh points between the two
images. A Zoom window tracks your cursor helping you get pixel-
perfect output.
o CMorph uses ALL available memory by running in 32-bit protected
mode. If you need more memory, you can turn on the Virtual Memory.
o CMorph is complimented by it's complete suite of image processing
filters. There are 100 pre-defined, user definable filters.
o Color selectable overlays and color selectable backgrounds allow
you to put your morph into any scene and add your name to the
animation with ease.
System Requirements:
CMorph requires at least a 386, and a video card that can handle 256
colors in 640x400 mode, 640x480 mode, 800x600 mode, or 1024x768 mode is
best. A math co-processor is optional, but highly recommended. 4MB of
Page 5
The Complete Morph -- Copyright 1993, Paul D. Nettle
memory is also required (although 8MB is better, and any more is just
great).
I hope you enjoy using The Complete Morph!
Page 6
The Complete Morph -- Copyright 1993, Paul D. Nettle
OMBUDSMAN STATEMENT
This program is produced by a member of the Association of Shareware
Professionals (ASP). ASP wants to make sure that the Shareware principle
works for you. If you are unable to resolve a Shareware-related problem with
an ASP member by contacting the member directly, ASP may be able to help.
The ASP Ombudsman can help you resolve a dispute or problem with an ASP
member, but does not provide technical support for members' products.
Please write to the ASP Ombudsman at 545 Grover Road, Muskegon, MI 49442-
9427 USA, FAX 616-788-2765 or send a CompuServe message via CompuServe Mail
to ASP Ombudsman 70007,3536.
DEFINITION OF SHAREWARE
Shareware distribution gives users a chance to try software before buying
it. If you try a Shareware program and continue using it, you are expected
to register. Individual programs differ on details -- some request
registration while others require it, some specify a maximum trial period.
With registration, you get anything from the simple right to continue using
the software to an updated program with printed manual.
Copyright laws apply to both Shareware and commercial software, and the
copyright holder retains all rights, with a few specific exceptions as
stated below. Shareware authors are accomplished programmers, just like
commercial authors, and the programs are of comparable quality. (In both
cases, there are good programs and bad ones!) The main difference is in the
method of distribution. The author specifically grants the right to copy and
distribute the software, either to all and sundry or to a specific group.
For example, some authors require written permission before a commercial
disk vendor may copy their Shareware.
Shareware is a distribution method, not a type of software. You should find
software that suits your needs and pocketbook, whether it's commercial or
Shareware. The Shareware system makes fitting your needs easier, because you
can try before you buy. And because the overhead is low, prices are low
also. Shareware has the ultimate money-back guarantee -- if you don't use
the product, you don't pay for it.
Page 7
The Complete Morph -- Copyright 1993, Paul D. Nettle
DISCLAIMER - AGREEMENT
Users of The Complete Morph must accept this disclaimer of warranty: "The
Complete Morph is supplied as is. The author disclaims all warranties,
expressed or implied, including, without limitation, the warranties of
merchantability and of fitness for any purpose. The author assumes no
liability for damages, direct or consequential, which may result from the
use of The Complete Morph."
The Complete Morph is a "Shareware program" and is provided at no charge to
the user for evaluation. Feel free to share it with your friends, but
please do not give it away altered or as part of another system. The
essence of "user-supported" software is to provide personal computer users
with quality software without high prices, and yet to provide incentive for
programmers to continue to develop new products. If you find this program
useful and find that you are using The Complete Morph and continue to use
The Complete Morph after a reasonable trial period, you must make a
registration payment of 35.00 to Paul D. Nettle. The 35.00 registration fee
will license one copy for use on any one computer at any one time. You must
treat this software just like a book. An example is that this software may
be used by any number of people and may be freely moved from one computer
location to another, so long as there is no possibility of it being used at
one location while it's being used at another. Just as a book cannot be
read by two different persons at the same time.
Commercial users of The Complete Morph must register and pay for their
copies of The Complete Morph within 30 days of first use or their license is
withdrawn. Site-License arrangements may be made by contacting Paul D.
Nettle.
Anyone distributing The Complete Morph for any kind of remuneration must
first contact Paul D. Nettle at the address above for authorization. This
authorization will be automatically granted to distributors recognized by
the (ASP) as adhering to its guidelines for Shareware distributors, and such
distributors may begin offering The Complete Morph immediately (However Paul
D. Nettle must still be advised so that the distributor can be kept up-to-
date with the latest version of The Complete Morph.).
You are encouraged to pass a copy of The Complete Morph along to your
friends for evaluation. Please encourage them to register their copy if
they find that they can use it. All registered users will receive a copy of
the latest version of The Complete Morph system.
Page 8
The Complete Morph -- Copyright 1993, Paul D. Nettle
GETTING STARTED
CMorph is ready to run. All you have to do is install it.
Installation is simple. Since you've probably downloaded the CMorph archive
and un-archived it (which you needed to do to be reading this document)
you're already set to go.
To run CMorph, you need to have both, CMORPH.EXE and DOS4GW.EXE in your path
or in the current directory when you run it. To run it, just type CMORPH
followed by two image file names. For example:
C:\> CMORPH IMAGE1.TGA IMAGE2.TGA
There are other command-line options, check the section titled "COMMAND LINE
OPTIONS" for a complete description of them.
If you're like me, you may already have a very large path, and wish not to
make it larger. Where there is a will, there is a way! Simply create a
batch file that runs CMorph in the following way:
C:\CMORPH\DOS4GW C:\CMORPH\CMORPH %1 %2 %3 %4 %5 %6 %7 %8 %9
This batch file runs DOS/4GW from the CMORPH directory, and tells it to run
CMorph from the same directory. If you just run CMorph, then it will not
find the DOS Extender (which is what it tries to do if you just run CMorph).
So, you need to run the DOS Extender manually.
Just place that batch file someplace in your path, and you're all set to go!
Page 9
The Complete Morph -- Copyright 1993, Paul D. Nettle
RUNNING CMORPH FROM THE COMMAND LINE
Usage:
E:\CMORPH\CMORPH.EXE [options] <source> <target>
<source> and <target> are required parameters, <source> being the file name
for the source image ("morphed from") and <target> being the file name for
the target image ("morphed to"). These files must be in IPI, TGA, BMP, IMG
or GIF format, and they must have the same resolution. The resolution of
the output images is derived from the resolution of the input images.
All options may be expressed using the slash (/) or the minus (-)
characters.
[Options] are:
[-? | -H] List this help information
[-B[X]] Batch mode (auto morph on startup) [with auto eXit]
[-C] Force graphics mode to 16 colors
Default: 256 colors
[-Gxxx] Force vertical resolution to xxx scanlines
Valid values: 400/480/600/768
Default: auto-detect
[-Mfilename] Specify mesh filename
source Source image (IPI/TGA/BMP/IMG/GIF)
target Target image (IPI/TGA/BMP/IMG/GIF)
NOTE: [options] may be specified before, after or between the image
names and may be specified by either the '-' or the '/' chars.
Page 10
The Complete Morph -- Copyright 1993, Paul D. Nettle
CONFIGURING CMORPH'S MEMORY
CMorph uses the DOS/4GW DOS Extender from Rational Systems. This DOS
Extender places CMorph into "386 Flat Model" protected mode where the
80386 executes instructions faster, and has access to LOTS of larger
chunks of memory. With access to all of this memory, CMorph can run
faster, and perform more complicated tasks than it would if it were
written for a 286 or less processor.
Lets assume you have 8 MEG. CMorph loads above the first MEG (this is
where most systems keep their faster memory). As memory is needed,
CMorph gets it from the memory above that first MEG. If that runs out,
then CMorph starts looking for memory in the DOS 640K area. DOS's
memory is used last because it is usually slower, and also because
CMorph can run DOS programs if you shell out to DOS, so you will want
to save as much DOS memory as possible. Virtual Memory (VMM) is also
available (see VIRTUAL MEMORY).
Note that programs that use Extended or Expanded memory (like Disk
Cache programs) will take memory away from CMorph. You may want to
limit the memory that they use to allow a comfortable amount for both.
VIRTUAL MEMORY
DESCRIPTION:
CMorph was written with the Watcom C/C++32 9.5 and uses the DOS/4GW DOS
Extender from Rational Systems. This royalty-free DOS Extender
(DOS4GW.EXE) offers a Virtual Memory Manager (VMM). When CMorph runs
out of memory, it can be configured so that it automatically starts
swapping to disk. In this way, you can actually use more RAM than your
computer has!
This configuration MUST take place before CMorph is run. If CMorph
runs out of memory while running, you must save what your are doing,
exit CMorph and configure for VMM before re-starting CMorph.
To enable VMM, you only need to set a single environ ment variable.
Might I suggest that you create a CMORPH.BAT batch file that sets this
variable before running CMorph, then clears it afterwards just in case
you're not one for having all these environment variable hanging around
when they aren't (like me) necessary.
I have found a drawback to using the VMM. It tends to slows CMorph
down, even when not swapping to disk.
To enable VMM with default values, just "SET DOS4GVM=1" from within DOS
before entering CMorph. It's that simple. But, like all other things,
there is a way to complicate it by configuring it (it's not that bad,
actually).
Usage:
SET DOS4GVM=[option[#value]] [option[#value]]...
Page 11
The Complete Morph -- Copyright 1993, Paul D. Nettle
(the '#' is used with options that take values since the DOS command
shell will not accept "=")
Setting the DOS4GVM=1 will use default values for all options. Here
are some control options:
MINMEM The minimum amount of RAM managed by VMM. The default
is 512K
MAXMEM The Maximum amount of RAM managed by VMM. The default
is 4MB.
SWAPMIN The minimum or initial size of the swap file. If this
option is not used, the size of the swap file is based
on VIRTUALSIZE (see below).
SWAPINC The size by which the swap file grows.
SWAPNAME The swap file name. The default name is "DOS4GVM.SWP".
By default the file is in the root directory of the
current drive. Specify the complete path name if you
want to keep the swap file on another drive.
DELETESWAP Whether the swap file is deleted when CMorph exits. By
default the file is NOT deleted. Program startup is
quicker if the file is NOT deleted.
VIRTUALSIZE The size of the virtual memory space (swap file plus
allocated memory). The default is 16MB.
If you wish to have a temporary swap file, and only use no more than 4
MEG of RAM, then use the example below:
SET DOS4GVM=DELETESWAP maxmem#8192
NOTE: This DOS Extender is especially advantageous for programmers. I
HIGHLY RECOMMEND the Watcom C/C++32 9.5 compiler to developers. I own
Borland C/C++ 3.1, Microsoft C/C++ 7.0, and Watcom C/C++32 9.5. My
choice development tools are the Watcom Tools (although I hate to give
up the Turbo Debugger). Take the time to learn them, they are
wonderful!
Page 12
The Complete Morph -- Copyright 1993, Paul D. Nettle
PROTECTED MODE SWITCHING
The following section is almost exactly as it appears in the manual for
Watcom C/C++ 32-bit v9.5a.
In almost all cases, CMorph can detect the type of machine that is
running and automatically choose an appropriate real- to protected-mode
switch technique. For the few cases in which this default setting does
not work, I provide the DOS16M DOS environment variable, which
overrides the default setting.
Change the switch mode setting by issuing the following command:
set DOS16M=value
Do not insert a space between DOS16M and the equal sign. A space to
the right of the equal sign is optional.
The table below lists the machines and the settings you would use with
them. Many settings have mnemonics, listed in the column "Alternate
Name", that you can use instead of the number. Settings that you must
set with the DOS16M variable have the notation "req'd" in the first
column. Settings you may use are marked "option," and settings that
will automatically be set are marked "auto."
Alternate
Status Machine Setting Name Comment
auto 386/486 w/DPMI 0 None Automatic if DPMI is active
req'd NEC 98-series 1 9801 Must be set for NEC 98-series
auto PS/2 2 None Set automatically for PS/2
auto 386/486 3 386, 80386 Set automatically for 386/486
auto 386 INBOARD None 386 with Intel Inboard
req'd Fujitsu FMR-70 5 None Must be set for Fujitsu FMR-70
auto 386/486 w/VCPI 11 None Set automatically for VCPI
req'd Hitachi B32 14 None Must be set for Hitachi B32
req'd OKI if800 15 None Must be set for OKI if800
option IBM PS/55 16 None May be needed for some PS/55s
The following procedure shows you how to test the switch mode setting.
1. If you have one of the machines listed below, set the DOS16M
environment variable to the value shown for that machine and
specify a range of extended memory. For example, if your machine
is a NEC 98-series, set DOS16M=1 @2M-4M. See the section, "Fine
Control of Memory Usage" later in this chapter for more
information about setting the memory range.
Machine Setting
NEC-98-series 1
Fujitsu FMR-60,-70 5
Hitachi B32 14
OKI if800 15
Page 13
The Complete Morph -- Copyright 1993, Paul D. Nettle
Before running CMorph, check the switch mode setting by following this
procedure:
2. Run PMINFO and note the switch setting reported on the last line
of the display.
If PMINFO runs, the setting is usable on your machine.
3. If you changed the switch setting, add the new setting to your
CMORPH.BAT file, or your AUTOEXEC.BAT file.
Note: PMINFO will run successfully on 286 machines. If CMORPH does
not run, and PMINFO does, check the CPU type reported on the
first line of the display.
FINE CONTROL OF MEMORY USAGE:
In addition to setting the switch mode as described above, the DOS16M
environment variable enables you to specify which portion of extended
memory CMorph will use. The variable also allows you to instruct
CMorph to search for extra memory and use it if it is present.
SPECIFYING A RANGE OF EXTENDED MEMORY
Normally, you don't need to specify a range of memory with the DOS16M
variable. You must use the variable, however, in the following cases:
1. You are running on a Fujitsu FMR-series, NEC 98-series, OKI
if800-series, or Hitachi B-series machine.
2. You have older programs that use extended memory but don't
follow one of the standard disciplines.
3. You want to shell out of CMorph to use another program that
requires extended memory.
If none of these conditions applies to you, you can skip this section.
The general syntax is:
set DOS16M=[switch_mode][@start_address[-end_address]] [:size]
In the syntax shown above, "start_address", "end_address" and "size"
represent numbers, expressed in decimal or in hexadecimal (hex requires
a 0x prefix). The number may end with a K to indicate an address or
size in kilobytes, or an M to indicate megabytes. If no suffix is
given, the address or size is assumed to be in kilobytes. If both a
size and a range are specified, the more restrictive interpretation is
used.
The most flexible strategy is to specify only a size. However, if you
are running with other software that does not follow a convention for
indicating it's use of extended memory, and these other programs start
Page 14
The Complete Morph -- Copyright 1993, Paul D. Nettle
before CMorph, you will need to calculate the range of memory used by
other programs and specify a range for CMorph to use.
Page 15
The Complete Morph -- Copyright 1993, Paul D. Nettle
A NOTE ON THE GUI
A few things need mentioning regarding the GUI's new radio buttons. There
are two uses for the new radio buttons.
First, they are used to toggle on or off certain options, like the zoom
window (located in the Preferences menu). Clicking on this radio button
will toggle it up and down. If the button is in the up position, then the
feature is off, or disabled, and if the button is in the down position, the
feature is on, or enabled.
The second use for ratio buttons is to choose between multiple settings for
a single option. An example of this is the cursor color. Selecting a color
will de-select the currently selected color and select the selected color
(lots of "selects" in that one!)
There are also keys that allow you to navigate through CMorph. Pressing F1
will bring up a help window that displays them. They are:
F1/ALT-H Gets this help information on-line
ALT-A Show About Box
ALT-D DOS Shell
ALT-E Enter Edit menu
ALT-F Enter File menu
ALT-G Enter Go menu
ALT-I Enter Filters menu
ALT-P Enter Preferences menu
ALT-R Enter Preview menu
ALT-S Start morphing
ALT-V Start a preview
ALT-X Exit to DOS
Page 16
The Complete Morph -- Copyright 1993, Paul D. Nettle
A FEW NOTES ON THE MOUSE
When the mouse is in the source or the target image windows, the mouse
becomes a cross-hair cursor that spans both images. The cross-hair has two
crosses. The first is the cross that shows where the cursor actually is,
and the second is a less-significant cross in the opposite image. This
cross points out where in the opposite image where the corresponding pixel
is.
Also, by placing the cursor within one of the two image windows, you'll see
a filled circle. This circle follows the cursor around and is placed on the
nearest mesh point. When the left mouse button is depressed
(unhappy?...NAW!), the cursor position jumps to where that point is, so it
may be relocated.
When you have a menu up, you may back up to the main menu by pressing the
right button or escape.
Pressing the right button inside one of the two information windows (located
directly below their respective image) will hide the meshes. And if you
don't bother to read this in the docs, then you'll never know this. See,
there actually is an advantage to reading the docs. (Not like I ever read
them, either.)
The last note that needs mentioning is that in certain circumstances, you'll
be promoted by a message box for a "yes" or a "no" (like when you exit
CMorph, for example). When one of these prompts are up, pressing the left
button always means "yes" and the right button always means "no".
Page 17
The Complete Morph -- Copyright 1993, Paul D. Nettle
THE GO MENU
You'll notice that there are four categories in this menu (in case you
haven't done this yet, you'll need to take your mouse and click on the
Operations button to get the menu to appear).
Go menu category "System":
"Leave" button:
Exit to DOS.
"DOS Shell" button:
Shell to DOS. This will run a temporary copy of DOS. Once you
are at in DOS, you may return to CMorph by typing "EXIT" on the
DOS command line.
"Go" button:
Start the actual morphing, warping, or fading.
Go menu category "Other":
"Help" button:
Displays a help window of available keys for navigating through
the menus.
"About" button:
Displays an about box with version and copyright information.
Page 18
The Complete Morph -- Copyright 1993, Paul D. Nettle
PREFERENCES MENU
The Preferences menu allows you to change all of CMorph's preferences and
options. You'll notice that there are six categories in this menu. They
are:
Preferences menu category "Spline Settings":
Sub menu category "Mesh":
"Catmull", "BiCubic" and "Straight" buttons:
These buttons select the type of spline used during the mesh
warping stage. Use these different spline types for
different effects.
"Tightness" text box:
Selects the amount of gravity used when drawing the Bi-cubic
mesh lines. Valid values for this option can range from 1
(very little gravity; almost straight lines) to 100 (lots of
gravity; very curvy lines). This only effects the mesh
warping when the BiCubic mesh type is selected.
Sub menu category "Interpolation":
"Catmull", "BiCubic" and "Straight" buttons:
These buttons select the type of spline used during the
interpolation (or resampling) stage. Use these different
spline types for different effects.
"Tightness" text box:
Selects the amount of gravity used when resampling the
output. Valid values for this option can range from 1 (very
little gravity; almost straight lines) to 100 (lots of
gravity; very curvy lines).
Preferences menu category "Screen Settings":
"Display Curves" button:
Toggles the displayed meshes from curves to straight. This option
does not effect the Morphing, just what is displayed on the
screen. Use this option to speed up the display when needed.
"Zoom" button:
Toggles the zoom window. When the zoom window is ON, the display
and the cursor can be slow. Use this option when you need precise
placement of mesh points.
"Kwik-screen" button:
Toggles the Kwik-screen option on/off.
"Sounds" button:
Toggles the sounds on/off.
"Cursor color" buttons:
Toggles the cursor color from Red, to Green, to Blue to XOR.
"Mesh color" buttons:
Toggles the mesh color from Red, to Green, to Blue to XOR.
Page 19
The Complete Morph -- Copyright 1993, Paul D. Nettle
Preferences menu category "Output Image Format":
"Image Format" buttons:
Select the output image file format. Available choices are: TGA,
IPI, IMG, GIF and BMP.
"TGAs Bottom-Up" button:
Enables or disables the TGA files from being written out in
Bottom-up format.
Preferences menu category "Operation":
"Operation" buttons:
Select the operation to perform. Available choices are: Morph,
Warp and Fade.
"Fast Morph" button:
Enables or disables a "draft mode" for morphing. It's a faster,
but lower quality morph.
Preferences menu category "Output Configuration":
"Fade 50%" text box:
This option will select at what percent of the morph the fade will
reach 50%. For example, if this option is set to 10, then at 10%
of the morph, the fade will reach 50%, hence, most of the fading
is done early on in the morph. Note that this option sets the
center of the fade between the start and end of the selected fade
range (described below).
"Fade start %" text box:
This option will select at what percent of the morph the fade will
start. For example, if this option is set to 10, then at 10% of
the morph, the fade will begin.
"Fade end %" text box:
This option will select at what percent of the morph the fade will
end. For example, if this option is set to 90, then at 90% of the
morph, the fade will reach the end.
"Warp 50%" text box:
This option will select at what percent of the morph the warp will
reach 50%. For example, if this option is set to 10, then at 10%
of the morph, the warp will reach 50%, hence, most of the warping
is done early on in the morph. Note that this option sets the
center of the warp between the start and end of the selected warp
range (described below).
"Warp start %" text box:
This option will select at what percent of the morph the warp will
start. For example, if this option is set to 10, then at 10% of
the morph, the warp will begin.
"Warp end %" text box:
Page 20
The Complete Morph -- Copyright 1993, Paul D. Nettle
This option will select at what percent of the morph the warp will
end. For example, if this option is set to 90, then at 90% of the
morph, the warp will reach the end.
Preferences menu category "Frame Control":
"Total Frames" text box:
This text box simply selects the total number of frames to create
for this morph. The starting frame and ending frame are always
saved separately.
"Start Frame" text box:
This text box simply selects the first frame within the number of
total frames. If the total frames is set to 30, and the start
frame is set to 20 with the end frame set to 25, then 6 frames
(20-25 inclusive) will be generated.
"End Frame" text box:
This text box simply selects the last frame within the number of
total frames. If the total frames is set to 30, and the start
frame is set to 20 with the end frame set to 25, then 6 frames
(20-25 inclusive) will be generated.
"Frame Offset" text box:
This text box simply allows you to select an offset number to
start naming the output filenames. There is no correlation
between the start, end or total frames numbers. This simply
changes what the filenames will be. This is useful for generating
a multi-part animation.
Page 21
The Complete Morph -- Copyright 1993, Paul D. Nettle
THE OTHER MENUS
I won't bother going through the different buttons in the rest of the menus
since they are very self explanatory, I don't want to insult your
intelligence, and, basically, nobody reads documentation anyway (including
myself!)
So here's a brief description of each menu:
THE EDIT MENU:
The edit menu allows you to swap, copy and flip the different meshes and
images.
THE FILE MENU:
The file menu allows you to:
1. Load/Save/Import (load v1.20) meshes
2. Load/Save images
3. Set the base filename. There is a maximum of five chars (the last
three of the first 8 are used for frame numbering), but you may
point to a path, like: "C:\ANIMS\MORPH" will place output images
into the directory ANIMS on drive C:, and they will start with
"MORPH", creating images named MORPH001.TGA, MORPH002.TGA, etc.
4. Select the name of, and enable arithmetic images. Arithmetic
images are added to, subtracted from, or averaged with each output
image as it is written to disk. You may also select to overlay
the arithmetic image with a color range. This color range will
select the range of color values that, if the color in the
arithmetic image falls inside that range, then it is directly
overlaid on top of the output image. This is useful when you want
to add credits to your morph. The Background image is calculated
BEFORE the arithmetic image is.
5. Select the name of, and enable background images. Background
images work similar to the overlay images, except that the color
range is compared with each of the output frames, rather than the
background image. If a pixel in the output image is inside the
range, then it is replaced by the corresponding pixel in the
background image. The background is calculated BEFORE the
arithmetic image is.
THE FILTERS MENU:
This menu allows you to select a filter file (described later in this
documentation), and the appropriate filters contained in that file for use
on each of the source and target images.
THE PREVIEW MENU:
A preview is very convenient for deciding where to place mesh points, and
where flaws may be. To preview an image from a morph, simply select which
image in the morph you want to view, (in the form of a % value, 50% for the
center image), and select the button "Show Preview". The preview will be
viewed in the current video mode. When the preview is done, a beep will
sound (assuming you haven't disabled it), and pressing a mouse button or any
key will return you to CMorph's main menu.
Page 22
The Complete Morph -- Copyright 1993, Paul D. Nettle
CREATING A MESH
Morphing relies on high quality meshes for high quality morphs. So, before
you create a mesh, start by examining where you want to place your most
important mesh points.
Once you have decided where you want your primary mesh points, you can start
adding mesh points. Once all of your primary mesh points have been added,
you can add support points to help clean up the morph even more.
To add a mesh line, move the mouse to the border of the image that you want
to add a mesh line to, and click the right button. To add a horizontal mesh
line, click in the left or right side border. To add a vertical mesh line,
click in the top or bottom border.
The mesh lines that get added will be placed between the two lines that you
were located between when you clicked on the mouse. Most of the time,
straight-through mesh lines cannot be added to the image, so the mesh line
is bent at each intersection so that it may maneuver through the maze of
mesh points.
You may notice that there were actually two mesh lines added, one for each
image. This is because CMorph requires that there be an equal number of
mesh lines in each image. This should be taken into consideration when
adding mesh lines.
Page 23
The Complete Morph -- Copyright 1993, Paul D. Nettle
FILTER FILE (.FLT) FORMAT
The filters are contained in the filter file.
The filter description format for a 3x3 filter is as follows:
FILTER NAME <filtername> <size>
<upper-left> <upper-center> <upper-right>
<center-left> <center-center> <center-right>
<lower-left> <lower-center> <lower-right>
<operator> <operand> <bias>
Any text following semicolons are comments
Where <filtername> is the name of the filter. This is where CMorph looks
for the filter name (in the filters menu). <size> is the size of the filter
(3, 5 or 7 only, others are ignored). For 5x5 and 7x7 filters, the above
example is incomplete, since from <upper-left> to <lower-right> would be a
5x5 or 7x7 "grid".
Convolutions are quite simple. For each pixel in an image, the filter grid
is overlaid onto that pixel and it's neighbors with the <center-center>
element of the filter grid aligned onto the current pixel in the image, and
the outer elements in the filter grid overlaying the current pixel's
neighbors. The next step is to multiply each element in the filter grid
with it's corresponding overlaid pixel value. Once all these values have
been calculated, add them together and perform the operation (/ 8 for an
<operator> of '/' and an <operand> of '8'.) Lastly, add the <bias> value.
If the addition of <bias> (or subtraction of <bias> if it is negative) takes
the result above 255 or below 0, then the value is clipped to 0 or 255,
respectively.
A good trick for trying your own is to take a current filter, copy it,
change the new copy's name, and modify it. If you have problems getting
usable resulting images, try adding all of the values in the filter's grid
and placing that value in <operand> with an <operator> of '/'
NOTES:
The valid range for <bias> is 0-255.
Valid <operator> values are:
+.......Add <operand>
-.......Subtract <operand>
*.......Multiply by <operand> /.......Divide by <operand>
M.......Sort all multiplied grid elements, and use the median.
Ignore <operand> -- Operand MUST still be present
<.......Sort all multiplied grid elements, and use the lowest.
Ignore <operand> -- Operand MUST still be present
>.......Sort all multiplied grid elements, and use the highest.
Ignore <operand> -- Operand MUST still be present
CMorph will search for the filter file in the following order:
1. The current directory
2. The default CMorph directory (where CMORPH.EXE is stored)
Page 24
The Complete Morph -- Copyright 1993, Paul D. Nettle
CAUTION: The median ('M'), dilate ('>') and erode ('<') functions take
a LONG TIME in 5x5 or 7x7 filters. Try to stick with using 3x3 filters
for these operators.
Page 25
The Complete Morph -- Copyright 1993, Paul D. Nettle
IPI FILE FORMAT
DESCRIPTION:
The IPI (pronounced "ipee") file format is used to store 24-bit images.
This format was designed to be the simplest to decode for programmers
so that they may add functionality to CMorph via external programs.
This file format was originally designed for use in CImage (The
Complete Image, another of my products). If you don't own a copy of
CImage (I won't try to sell you one, I promise), then you will most
likely have no use for this file format.
The IPI format is as follows:
X resolution (WORD - MSB first)
Y resolution (WORD - MSB first)
Image data:
FOR EACH PIXEL IN THE SCREEN (XRES * YRES)
{
Red Element (BYTE)
Green Element (BYTE)
Blue Element (BYTE)
}
Page 26
The Complete Morph -- Copyright 1993, Paul D. Nettle
FUTURE ENHANCEMENTS
o Add import/export to meshes from dmorph
o Add PCX
o Add new Nettleman spline
o Add output of .FLI/.FLC/.FLX file format
o Add TIFF
o Add sine wave addition to splines
o Add vertical resolution to preferences screen
o Delete mesh lines
o Different sizes for each input file and different size for output files
o Gamma for both images
o ListBox for mesh files and image files
o Morphs of animations
o Move entire mesh lines
o Targa - Compressed versions (and other versions not currently
supported)/32-bit
Page 27
The Complete Morph -- Copyright 1993, Paul D. Nettle
CONTACTING CUSTOMER SUPPORT
I'm available in the evenings, I have the standard 9-5 job (eastern time).
If you need to reach me during the day, you can do so by calling and leaving
a message. I call in to my voice mail about three times per day, however,
on hectic days, it's not so easy, and I may not get any messages at all
until the evening.
Tech Support is available for all registered users for one full year
following the purchase. For non-registered users (and registered users over
one year), tech support is not officially available. But if I'm not
swamped, I'll try to get back to you. Registered users over one year have
priority over non-registered users. So, please state your status. It can
be verified on computer.
To contact me, just call (313) 941-9223.
You may also mail your support questions to:
Paul D. Nettle
9668 Washington St.
Romulus, MI 48174
My phone number and address are for support, comments, suggestions,
questions, registration information, and of course, orders.
Page 28
The Complete Morph -- Copyright 1993, Paul D. Nettle
ORDERING INFORMATION
What you will get when you register through the author:
o The registered version of CMorph on disk (your choice of disk format --
1.2M or 1.44M).
o A printed manual.
o The next update of CMorph -- free of charge (Including printed
documentation).
o Peace of mind.
What you will get when you register through the RayTech BBS:
o The registered version of CMorph via modem or mail.
o Peace of mind.
Non-registered vs registered users:
o Registered versions don't display the registration notice upon startup
of CMorph.
o Registered versions are marked with an "r" after the version number in
the title rather than a "u".
o Registered users are allowed free technical support priority via phone
or by mail. Non-registered users are given no official technical
support. (see Contacting Customer Support).
How to register with the author:
To order a copy of The Complete Morph, just print out the REGISTR.FRM,
fill it in, and send it with you check or money order for $35.00.
How to register with RayTech BBS in UK:
Ways to pay ... Cash by Post
Cheque payable to Raytech BBS
Access, Visa, MasterCard, or Eurocard, by phone or on-
line.
Send payments to:
Rubicon Clashmore near Dornoch
Sutherland Scotland IV25 3RG
Send your payment with:
Your Name, Address and home telephone number
UK numbers Intrn'l numbers Hours
Page 29
The Complete Morph -- Copyright 1993, Paul D. Nettle
----------- --------------- -----
Voice number: 0862 88388 +44 862 88388 24 hours
Fax number: 0862 88377 +44 862 88377 8am to 6pm
BBS line 1: 0862 88340 +44 862 88340 24 hours
BBS line 2: 0862 88377 +44 862 88377 6pm to 8am
Note that line 2 has LIMITED HOURS and is reserved for subscribers only.
Network Addresses:
FIDOnet : 2:259/49
PCGnet : 9:526/464 UK host
Modem Setup:
Communications: 8N1 V32bis V42bis MNP 1 - 5
Speeds: 2400/4800/7200/9600/12000/14.4
Terminal: ANSI BBS
Operation: 24 hours
Page 30