Documentation for Rmorf Version 0.4 July 29, 1993 Copyright (c) 1993 by Richard Goedeken A product of Fascinations Software Co. Legal Stuff: This software (Rmorf Version 0.4 unregistered) is shareware. You are allowed to copy it, distribute it, upload it to BBSs, and use it. You may not, however change or alter the files in any way. The archive should contain the following files: RMORF.EXE GIRL.GIF CHEETA.GIF GIRLCHTA.MTX RMORF.DOC REGISTER.DOC AAPLAY.EXE If any of these files are missing, then you have an incomplete copy of Rmorf and should contact Fascinations Software to receieve a full copy. Despite the unlikelyhood of your computer blowing up when you run this program: Fascinations Software, and Richard Goedeken, are not in any way liable for any damages incurred by the use of this software. The user assumes full responsibility for the use of this software. *************************************************************************** History of the program: Once upon a time I was flipping through a magazine, and saw a small little box on morphing, which looked like an interesting topic to me, so I logged on to a large computer system and downloaded some files on morphing. The software that I got was very interesting, but it was slow and it crashed frequently. So I started programming, and 11 days later Rmorf is done! Version 0.1 was the first release, distributed 4/19/93 Version 0.2 fixed compatibility bug with Dos 5.00 not allowing the user to load and save matrices. Distributed 4/20/93 Version 0.3 Displays each morphed frame for a very brief time after morph is completed to show the the program was actually working. Now outputs Targa files, Gif files, and FLI animation files. Also allows user to specify full morph or just a warp. New matrix Flip button which swaps the matrices. Allows user to press Escape while specifying a filename to load/save. Also fixes matrix bug which locked up computer occasionally while morphing matrices with points very close together. Distributed 5/8/93 Version 0.4 Finally got the last of the matrix bugs (to my knowledge.) Added the .CHR and .BGI files into the .EXE. Added support for GIF input. *************************************************************************** History of Fascinations Software and Upcoming Software: Fascinations software is a privately owned company formed about 6 months ago by Richard Goedeken. We do all kinds of programming, and our favourite language is assembly language. I have written two programs in my business series. The first is a product inventory system, and the second program in this series, an extremely advanced checkbook program, is due for release in a couple of weeks. The Midnight Hacker division of Fascinations software company, my video game subsidiary, is also going to release a ground-breaking Super-VGA action game by November first or so. Rmorf is my first try at image processing software. *************************************************************************** How to reach the author: Since Fascinations software is very new, I would like to hear any comments or suggestions from the users of my software. I appreciate your feedback very much. The author (Richard Goedeken) may be reached several ways. The best way to contact me is through Compuserve [70304,1065]. Another good way is to call my support BBS, The Digital Phantom, at 319-396-4492 and leave a message to the Sysop or Richard Goedeken. You may also write to me at the following address: Richard Goedeken 6400 North Glen Drive Palo, IA 52324-9720 It is also possible but unlikely that you could reach me by phone. My home phone number is 319-396-4798. You can try to call after 4:00pm (CST) on weekdays or all day weekends, but you don't have a very good chance of contacting me (I tend to be very busy.) *************************************************************************** Registration benefits: This is the unregistered version of Rmorf. You are free to use it and distribute it, but it only supports 320x200 images. If you register this program, you will be able to morph images with higher resolutions (up to 1024x768 with enough XMS), you will have your own registered copy, and you will receive master disks. As an incentive to register, there are several features which the registered version of Rmorf supports but the shareware version does not. These features include: The ability to morph images with resolutions other than 320x200, total command-line control, and ANTI-ALIASING!! Actually, the anti-aliasing isn't in the registered version yet, but it will only take a day or so to add, and I expect it to be done by August 15. If you really want to register but want to make sure you get a version that supports anti-aliasing, just put a note on the registration form and I will hold the order until the new version is complete. To register, simply print out the REGISTER.DOC file, fill it out, and send it to me with $25 in U.S. currency. If you live in the United States, please send me a check or money order. If you live outside the U.S. then send either $30 in U.S. cash in a security envelope, a check for US$ written at a U.S. bank, or a check for the equivalent amount in your country's currency but drafted at one of your country's banks. *************************************************************************** Overview of program: Basically, this program takes two images and smoothly blends them into each other. There are several limitations to this program, however: 1. Only 320x200 images are supported in the unregistered version. 2. Input files MUST be 320x200x24bit uncompressed targa images or 320x200 GIFs. 3. You must have 938k of XMS. (If you wonder why I chose XMS rather than EMS, it is because XMS is faster, easier to program, and much better than EMS) 4. Output files are 320x200x24 bit Targa files, Gif files, or FLI animation files. Despite these small limitations, the program does have a BIG advantage: speed. This software was written in C with all of the crucial parts in assembly language. Consequently, I can morph a frame every 7.2 seconds on my 386 33mhz computer WITHOUT a math coprocessor. (A math coprocessor wont speed things up, because I used integer math rather than floating point.) How to use the software: The format for running Rmorf is: RMORF filename.TGA [or .GIF] filename.TGA [or .GIF] As stated earlier, the targa files must be 320x200x24 bits uncompressed or GIFs, or otherwise you will get an error. I have included two files, GIRL.GIF and CHEETA.GIF. Once you have run the program, you should get a 640x350x16 screen with your pictures in gray at the top. There should be red borders around the images. There will also be a menu at the bottom. Now that you have loaded your two graphic files, you will want to start putting up a grid. The process of morphing two images together is not difficult. You need to first get some lines on your grid. To do this, just put the mouse cursor close to the border of one of the images (it has to be withing several pixels), and hit the right mouse button. This will put a line on the image. If you clicked on the vertical edge of the picutre, a horizontal line will appear. If you clicked on the horizontal edge of the picture, a vertical line will appear. (You can have a maximum of 32 horizontal lines and 32 vertical lines.) You will need to put several (10-20 depending on the complexity of the image) horizontal lines and vertical lines on the grids. Note that when you put a new line on one image, a new line will also appear on the other image. Once you have the grid lines done, you need to move the points around. To move a point, just place the mouse cursor close to it (within 10 pixels), press the left mouse button, drag it to where you want it, and release the mouse button. You need to place the points so they correspond between the two grids. For example, if you were doing a morph between the included girl and cheeta, you would put several points outlining the eyes of the girl, and you place the corresponding points on the other image around the eyes of the cheeta. If the above made no sense to you, just run the program with the following command: RMORF GIRL.GIF CHEETA.GIF Then, load the 'GIRLCHTA' matrix. When this matrix pops up, you should understand what I mean. So that is the basic concept behind morphing. Once you have placed all of your grid points, you should probably save the grid (just click on the save matrix box and enter a filename). After you have saved the matrix, you will probably want to set the number of frames. Note that each frame takes up 192,018 bytes, and there must also be an extra 100,000 bytes or so on your hard drive to hold the transfer matrices. To change the number of frames, the starting frame, or the ending frame, just click on the appropriate box (the box that says 'ENDING FRAME' or whatever, NOT the box with the number in it). After you have selected the number of frames, just click on the box that says 'GO', and you're off! As the program does the actual morphing, several pixels in the very upper-left hand corner should switch colors. So if your computer has been sitting for several minutes, the hard drive light isn't on, and those pixels aren't moving, then it probably crashed. (This shouldn't happen, though.) If, for some reason, you decide that you don't want to do a morph while the program is morphing, you can press the key and wait patiently for the program to finish the current frame, then it will relinquish control to you. Notes on new features for Version 0.4: New GIF support! Should be relatively transparent to the user. Also finally got rid of all of those dumb matrix-crashing bugs. Notes on new features for Version 0.3: FLI support is now available!! I have included a public domain FLI viewing utility called AAPLAY so you can view the resulting FLI animation files. There is a small button below the message box on the main screen of rmorf which will say 'TGA' on it. At this point Rmorf outputs 24bit Targa files. If you click it once, it will say Gif, and the output files will be Gifs. If you click it again, the button will say FLI, and Rmorf will output FLI files Generating Gif and Fli files takes longer than just TGA files because Rmorf has to remap the colors in the images and compress them. If you are generating a Fli file, after the morphing is completed, the program will remap the colors, then it will convert all of the separate images into a Fli. This takes a lot of hard drive space. You should leave at least 200- 260k free per frame for the Fli file. The resulting Fli will (obvoiusly) be smaller than this though, generally around 20-60k per frame. If you are generating Gif files, after each frame is morphed, the computer will remap the image and save it as a Gif. It may look as if the computer has locked up, but it probably hasn't. It takes about 5-10 seconds on my 386-33DX to do a color remap, so it takes a while. Note that it must remap each frame individually, unlike the Fli, which only needs to remap once. There is another new button underneath the message box which will say 'Morph' on it when you first run the program. If you click this button, it will toggle to say 'Warp'. In the warp mode, Rmorf only warps one matrix, and it doesn't mix the colors. So now you can have fun by just morphing. There are lots of possibilities for this option: animations of pop cans crushing, re-arranging somebody's face, etc. The last new button says 'Flip' on it. This just swaps the two matrices when you click on it. **************************************************************************** ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7/29/93: Observations from the Author: Hello, all. It has been two months since I have released a new shareware version of Rmorf. I have been receiving huge amounts of e-mail from users notifying me that there are matrix bugs which cause the program to crash. I finally got tired of answering all of that e-mail when the bugs were already fixed in the registered version, so I wanted to put out a new shareware version, but thought it would be lame to completely re-distribute the whole program just for a bug fix. So I decided to add in the GIF support, which works pretty nice. When I started Rmorf, I did not envision it ever becoming this big. I acutally began work on Rmorf as an aside, between other programs, but it has expanded and taken large amounts of my time. I certainly didn't expect to have as large of a distribution of Rmorf as I do now. There have been over 1,400 downloads of Rmorf off of Compuserve alone in the past couple of months. I have had many different offers to market Rmorf commercially, but have resisted because I like the idea of shareware. Because of all of the registrations which I have received I have been able to purchase a brand new Comtrade 486-66 DX2, which cuts down on compile time a lot. In return, I have been able to supply you out there in computerland with quality software at a very low price. A program similar to this selling retail at a software shop would probably be around $100-150. So I guess what I'm trying to say is thank you to all of the people who registered, sent me e-mail, etc. I have had many calls from folks just wanting to say that I have done a good job with the program, and that makes it worth staying up until 2:00 am working on eradicating a bug or adding in a new feature. So until the next version of Rmorf, party on and be excellent to each other. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ **************************************************************************** Be watching for upcoming Fascinations Software releases. Sincerely, Richard Goedeken (President, Fascinations Software)