home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / bbs / gfx / minimorph-1.1b.lha / MiniMorph-1.1b / MiniMorph.DOC < prev    next >
Text File  |  1993-05-11  |  10KB  |  259 lines

  1.  
  2.  
  3.                MiniMorph v1.1b
  4.  
  5.  
  6.   by Philippe Banwarth 1993/94
  7.   based on VMorph version 2 beta by Lee Wilkie 1992/93 (mainly for user
  8.   interface)
  9.  
  10.  
  11. This is the freeware version of MiniMorph. You may use and distribute it as
  12. long as you don't ask more than a small copy fee. You use it at your own risk.
  13.  
  14. It needs : ReqTools.library          © Nico François
  15.        IFF.library    (v23 or more)    © Christian A. Weber
  16.  
  17.  
  18. About this document.
  19.   As my English is very poor, and as MiniMorph's user interface is inspired 
  20.   by VMorph's one much of this document is taken from VMorph's doc file.
  21.   (indicated by [] )
  22.  
  23.  
  24. What is  MiniMorph ?
  25.   MiniMorph is a program that will allow you to create smooth morphs/warps
  26.   between two different images over a period of frames to create an animation.
  27.   Actually it works only on greyscale pictures (16-256). It has been written
  28.   100% in assembler to be as fast as possible. For example morphing a 
  29.   320*256*256 picture takes less than 9 seconds on a standard A1200.
  30.  
  31. [
  32. What is morphing ?
  33.   Morphing is an effect whereby you take a source and destination image
  34.   and over a period of time you fade/'bend' the source image into the
  35.   destination.
  36.  
  37.  
  38. What is warping ?
  39.   Warping is very similar to morphing except that the destination image
  40.   is only used as a 'shape'. The source image is then warped to fit this 
  41.   shape. This process is twice as fast as morphing as only one image is
  42.   rendered per frame as opposed to two for morphing.
  43. ]
  44.  
  45. What's on the disk ? 
  46.    1) MiniMorph v1.1b in two version a hires
  47.       and a lores one. The hires version can't handle pictures smaller than
  48.       640*256 (200 for NTSC). On non AGA machines it will be much slower
  49.       specially if you have no real fast ram.
  50.    2) IFF an ReqTools libraries (with a script to install them).
  51.    2) Three IFF pictures for you to experiment with.
  52.    4) This documentation.
  53.  
  54.  
  55. What are  MiniMorph requirement ?
  56.    1) IFF and ReqTools libraries (supplied)
  57.    2) Kickstart 1.3+
  58.    3) As much ram as possible. At least (picture height * picture width * 4) 
  59.       bytes of fast ram + (picture height * picture width * 1.5) bytes of
  60.       chip ram + some more ram for IFFlib to work
  61.  
  62. [
  63. How does MiniMorph do it?
  64.   To create a morph/warp you need two images, a source and a destination.
  65.   These are loaded into the program and are overlayed with a grid. Where the
  66.   lines of the grid intersect is called a point. One point on one of the
  67.   grids has a 'sister' point on the other.
  68.   
  69.   What the user then does is position these points over specific parts of
  70.   each image that are common to both. For example, if you were morphing 
  71.   between two faces you would position some points around the nose on the
  72.   source grid to 'outline' it then you would place the same points around
  73.   the nose on the destination grid.
  74.   
  75.   What you are left with after editing is complete is two grids that define
  76.   the shape of the source and destination images.
  77.   
  78.   When rendering is finally started   MiniMorph   does the following for each
  79.   frame :
  80.   
  81.    1) Creates a 'frame' grid from the source and destination grids.
  82.       The shape of this is a mix of the source and destination grids
  83.       and depends on what frame is being rendered. Example :
  84.       
  85.        First frame        -      100% Source/000% Dest
  86.        Half way frame     -      050% Source/050% Dest
  87.        Last frame         -      000% Source/100% Dest
  88.  
  89.    2) Takes the image data from every square of the source grid and maps
  90.       it into the shape of the same square from the frame grid to form
  91.       image A. 
  92.  
  93.    3) Does the same with the destination grid to form image B
  94.  
  95.    4) Mixes images A+B depending on current frame as above. Example :
  96.  
  97.        First frame        -      100% image A/000% image B
  98.        Half way frame     -      050% image A/050% image B
  99.        Last frame         -      000% image A/100% image B
  100. ]
  101.  
  102.  
  103.     
  104. Using   MiniMorph :
  105.   Keys :
  106.     Space .................    Toggle between source and destination grids.
  107.     Cursor keys ........... Move the picture (if greater then 320*256)
  108.     F1/F2/F3/F4............ Open/close one of the windows.
  109.  
  110.  
  111.   Edit window :  
  112.     Slider button ......... Set strength in attract/repulse mode.
  113.     Mode .................. Move/attract/repulse (it's faster for you to
  114.                   try than for me to explain).
  115.     Show moves ............ Display for each point the move from source 
  116.                   to destination position. Press space for
  117.                   normal display.
  118.     The big slider ........ Move the display window on the pictures.
  119.  
  120.  
  121.   Picture window :
  122.     Image load ............ Load a picture, it may be truncated to match
  123.                   the actual size. MiniMorph accept any IFF
  124.                   picture and translate it to grey scale if
  125.                   necessary. It don't take care of specials
  126.                   modes (EHB, HAM, HAM8) so the result may
  127.                   be strange.
  128.     Image clear ........... Clear the picture.
  129.     Grid load ............. Load a grid, it's scaled to the picture size.
  130.     Grid save ............. Save the grid.
  131.     Reset ................. Reset the both grids AND images to the value
  132.                   indicated.
  133.  
  134.   Render window :
  135.     # of frames ........... The total number of frames including the
  136.                   first one (i.e. the source image (both
  137.                   modes)) and the last one (i.e. the
  138.                   destination image (morph mode)). So
  139.                   should be at least 2.
  140.     From ..................    The first frame to be rendered. It is
  141.                   senseless to 'render' frame 1 except if
  142.                   you want it to be saved with MiniMorph's
  143.                   palette. Start at one (not zero)
  144.     To .................... The last frame to be rendered.
  145.     GO .................... Start the rendering. Press ESC to stop.
  146.     name .................. This is the save name. MiniMorph saves each
  147.                   frame separately. A % in the name will be
  148.                   replaced by the frame number (which is added
  149.                   to the end if none). NIL: means no saving.
  150.     # of grey ............. Allow you to choose the depth of the outputed
  151.                   pictures. Please note that this has NO
  152.                   effect on the processing speed NOR on the
  153.                   display (Which is always 16 colours so non
  154.                   AGA machine users can use MiniMorph).
  155.  
  156.   Misc window :
  157.     TaskPri    ...............    Set the task priority. Useful when you
  158.                   want the rendering to be done as a
  159.                   background task while you play a
  160.                   minigame for example (they use less than
  161.                   10% of a 7MHz 68000)
  162.  
  163.  
  164.  
  165.  
  166. Using the editing grid :
  167.  
  168.   Moving a grid point.
  169.     Click on the point with the left button to pick it up and release button
  170.     to drop it.
  171.   
  172.   Adding a row to the grid.
  173.     Move the cursor to the very left edge of the SCREEN (which is not
  174.     necessary left edge of the picture) between the two grid lines where you
  175.     wish to add a row and click the right button. 
  176.    
  177.   Adding a column to the grid.
  178.    Move the cursor to the very top edge of the screen (same remark) between
  179.    the two grid lines where you wish to add a column and click the right
  180.    button.  
  181.   
  182.   Removing a column or a row.
  183.     Go to the opposite edge and click right mouse button. The removed
  184.     row/column is the one that is left/up.
  185.  
  186. [
  187. Things to remember when using  MiniMorph
  188.  
  189.   1) When choosing two images to morph between make sure they are
  190.      of similar composition i.e. if they are faces try to get two that
  191.      are roughly the same size, brightness and in similar positions
  192.      within the image. This will produce a better morph. Also cut out
  193.      both objects being morphed and paste them onto a neutral background.
  194.      
  195.   2) Avoid creating 'bad' squares when editing as these will cause
  196.      incorrect results. A bad square is defined as :
  197.  
  198.     Any point along any of its diagonals lying outsize the area
  199.     of the square itself. (confused!? - you will be!)
  200.     
  201.   3) Animation frame values start at one, so for a ten frame animation
  202.      set range from one to ten. 
  203.  
  204.   4) When producing a morph or warp animation the first frame
  205.      will be identical to the source image. It is good idea to set
  206.      the range start to two and use the source image as the first frame.
  207.  
  208.      When morphing the above is true for the last frame as this will be
  209.      the same as the destination image. So decrease range end by one and
  210.      use the destination image as the last frame. 
  211.     
  212.    5) When outlining an obj