Documentation for Rmorf Version 0.3 May 8, 1993 Copyright (c) 1993 by Richard Goedeken A product of Fascinations Software Co. Legal Stuff: This software (Rmorf Version 0.3 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 EGAVGA.BGI TRIP.CHR SANS.CHR GIRL.TGA CHEETA.TGA 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: I was flipping through a magazine a couple weeks ago, 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 *************************************************************************** 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. To register, simply print out the REGISTER.DOC file, fill it out, and send it to me with $20 in U.S. currency. (The registered version should be availabe around May 21st, 1993, but you can send in registrations any time.) *************************************************************************** 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 (If you wonder why I chose uncompressed targas, the reason is because the uncompressed targas are usually smaller than the compressed ones!) 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.) The only other morphing program that I know about for the PC takes about 10-50 minutes per frame. How to use the software: The format for running Rmorf is: RMORF filename.TGA filename.TGA As stated earlier, the targa files must be 320x200x24 bits uncompressed, or otherwise you will get an error. I have included two targa files, GIRL.TGA and CHEETA.TGA, if you don't have access to a targa convertor. 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.TGA CHEETA.TGA 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.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. Closing comments: Well, that's it. You've made it through the manual and should (if you've read it all) understand basically how this program works. Have fun! Please register. Be watching for upcoming Fascinations Software releases. Sincerely, Richard Goedeken (President, Fascinations Software)