[comp.sys.amiga.tech] Animation techniques

martin@IRO.UMontreal.CA (Daniel Martin) (01/06/91)

[-]
    I'm trying to make a smooth multidirectionnal scrolling on a 640x400
HIRES (need 16 colors) screen using an A3000.  I have four questions.

   1) Is it possible to scroll vertically, without seeing flicker 
      (I'll use the term "gitter" to minimize confusion) on screen.

      This question relates to the fact that interlace is drawn with 
      two separate fields of 200 lines each (two copper lists).  When you
      move your image up or down, for 1/60th of a second, one field will
      contain the image after scroll, and the other field the image before
      the scroll.  Works great only for scroll=2 (no garbage).

   2) Any techniques to minimise the gitter?

   3) What is the difference between these two animations techniques:

	(a) Use a large bitmap, say 1280x800 with a scrolling area
	   of 640x400.  Use one copper list.  Poke values in the 
	   copper list each VBLANK.  Make modifications in the
	   off screen bitmap area.
	(b) Use two 640x400 screens, with two copper lists.  Make
	   modifications on off screen, and LoadView it when ready
	   (I.e. double buffered screen).
	
   	(Obvious differences: memory used, and scroll smoothness)

   4) How can you modify the copper list directly (technique a), 
      and still be able to support draggable screens?

	Currently if you simply poke values in the active display copper
	list during VBLANK (contained in Gfxbase->ActiView or in your View) 
        you can't support draggable screens.  Should I do a MrgCop/LoadView
	each VBLANK?  In an interrupt routine???

--
    // Daniel Martin                            Universite de Montreal   \\
   //  MediaLab, ca vous regarde!               C.P. 6128, Succursale A,  \\
\\//   Mail: martin@IRO.UMontreal.CA            Montreal (Quebec), CANADA, \\//
 \/    Tel.: (514) 343-6111 poste 3494          H3C 3J7                     \/