[comp.graphics] Real time video animation

gfs@abvax.UUCP (Greg F. Shay) (01/08/88)

Does anyone know if there are systems/boards/companies for INEXPENSIVE 
real-time video animation for, for example, the PC?
	I am referring to the following type of scenario:
	1) Cartoon-like images, large areas of similar color, not gradual
shading.  This would allow large data reduction using run-length data 
compression.
	2) Frames built one at a time, recorded in sequence on hard disk,
	3) Frames played back in real time, ready for Video tape recording.

Given the data throughput of the hard disk, I theoretically calculate that
animation done in two's (i.e. 15 fps for video) with moderately complex
pictures is possible.
	
	One reference I do have is a mention of R.J. Hackathorn's "ANIMA II:
A 3-D color animation system," 1977 SIGGRAPH Proceedings, pp.54-64.  I have
not read this yet, but I believe it applies to the above outline.

	Does anyone know more about this, has anyone implemented something
inexpensively (<$1000) for a small computer?

	Personally, I would love to experiment with animation techniques and
be able to produce a reasonable cartoon-like final product without the hassle
of filming frame by frame off of the CRT screen and then convert to video.
(I consider video the final destination because of the ease of adding sound
and the availability of home VCRs and public access cable channels.)
Also, for animation, you need to see the real-time feedback to fine tune your 
animation technique.  (Most people resort to lo-res previews or wire-frame for 
real time animation checks.)

	What is thy wisdom, oh great and powerful net?

			Greg

ali@rocky.STANFORD.EDU (Ali Ozer) (01/11/88)

In article <159@abvax.UUCP> gfs@abvax.UUCP (Greg F. Shay) writes:
>Does anyone know if there are systems/boards/companies for INEXPENSIVE 
>real-time video animation for, for example, the PC?
>
You might want to consider the Amiga --- An Amiga 500 with one or more megs
of memory will serve you quite nicely. Software to do animations at rates
of 30 frames a second for upto 10 seconds or so is already available. Even
with a $600 VHS recorder (3 or 4 heads, and a flying erase head) one can
create some wonderful movies (pasted together from 5-10 second animations).
The Amiga 500 has RGB and composite B&W out; you'll need to get composite
color (either through a cheap RGB->composite converter, or a genlock unit, 
which will cost a bit more ($150 for AmiGen, by Mimetics) but also provide
genlocking capability (mixing an external video signal with Amiga
generated graphics --- like the cereal commercials with Tony the tiger, for
instance!)).

The Amiga is specially suited for desktop video, because:
- The output signal provides overscan, avoiding the fixed-color border around
  the image. Such a border (present on most computer outputs) is rather
  distracting when recorded on tape.
- High resolution, color: You can get 704 x 470 (16 colors out of 4096) or 
  352 x 470 (all 4096 colors). 
- In all modes can animate upto 30 frames/second.
- The output is NTSC compatible. (Or PAL, is you're using an European Amiga.
  Then you also get more lines, 704 x 600 or so, I think.)
- Several software packages to do what you want is already available:
   -VideoScape 3D does full 3D animation, provides several output 
    resolution choices, and can render wireframe. 
   -Sculpt 3D does ray-tracing, and Animate 3D or PageFlipper can be used to
    animate ray-traced (4096 color!) images.   
   -Aegis Animator and Deluxe Video provide 2D animation. These are older and
    more limited programs (low-res, etc). But, as a tradeoff, they can
    usually play back animations for long periods of time (5-10 minutes
    easily possible).
   -The Director provides a scripting language which can play back animations,
    sounds, images, etc, combining the various forms of output possible.
   -A good choice of very low priced digitizers (video and audio) exist.
    DigiView digitizes 640x400 images at upto 2^21 colors, and the camera
    and the software will cost you under $350.
   -Also available are languages (if you wish to do you own programming) and
    many high-quality public domain utilities...
- All Amiga software uses the "IFF" standard to save images/sounds/animations,
  which makes going between software packages easy.
- As mentioned above, the Amiga signal can also be easily genlocked,
  meaning you can easily (and cheaply!) add titles & so forth to videos.
- Finally, the price is reasonable: Amiga 500 with 1 Meg of memory and single
  880K drive will cost you under $700, add to that a hires RGB color monitor 
  and you're talking under $1000.

With more memory (upto 9 Megs is possible) and a harddisk, you can of course
generate animations that run for more than 5-10 seconds. Of course, from
experience, being able to generate 5-10 second animations is good enough
in most cases; with a flying erase head VCR putting them together is
painless and clean. 

I'm not associated with Commodore-Amiga, by the way, I'm just a very
happy Amiga owner. 

Ali Ozer, ali@rocky.stanford.edu, ali@score.stanford.edu

joer@nscpdc.NSC.COM (Joe Rawlings ) (01/12/88)

In article <159@abvax.UUCP> gfs@abvax.UUCP (Greg F. Shay) writes:
>Does anyone know if there are systems/boards/companies for INEXPENSIVE 
>real-time video animation for, for example, the PC?
>
>	Does anyone know more about this, has anyone implemented something
>inexpensively (<$1000) for a small computer?
>

There is a newly released graphics package for the PC that may have 
just what you need.  The CG-VDI Programmer's Toolkit allows you to build
display lists and store many of them (very compact storage algorithm)
in a single file.  Each display list can be drawn into a frame (a linked 
list is built automatically and may be edited).  The frames can be displayed 
individually, in groups or as a "movie" as rapidly as the computer can 
put them up.  The package sits on top of the Graphic Software Systems' (GSS) 
GSS*CGI which is a part of the GSS Graphics Development Toolkit  (GDT) 
(also available as the IBM Graphics Development Toolkit).  You can get 
the GSS GDT by mail order for around $300.00.  You have to contact 
Professional Graphic Services, (PGS) to get the CG-VDI Programmer's Toolkit,
($350.00).

The GSS package "talks" to many output devices so you would have a lot
of latitude in your selection of your equipment.

GSS:   (503) 641-2200
PGS:   (503) 244-4717 

Cheers,

JR

-- 
*  Joe Rawlings                         nsc!nscpdc!joer                       * 
*  ICM Product Support                  1-800-222-2433 (outside Oregon)       * 
*  Portland Development Center          (503)-629-4414 (Oregon/World)         *

baer@percival.UUCP (Ken Baer) (01/13/88)

In article <159@abvax.UUCP> gfs@abvax.UUCP (Greg F. Shay) writes:
>Does anyone know if there are systems/boards/companies for INEXPENSIVE 
>real-time video animation for, for example, the PC?
>	I am referring to the following type of scenario:
>	1) Cartoon-like images, large areas of similar color, not gradual
>shading.  This would allow large data reduction using run-length data 
>compression.
>	2) Frames built one at a time, recorded in sequence on hard disk,
>	3) Frames played back in real time, ready for Video tape recording.
>
>	Does anyone know more about this, has anyone implemented something
>inexpensively (<$1000) for a small computer?
	You bet!!
>
>	Personally, I would love to experiment with animation techniques and
>be able to produce a reasonable cartoon-like final product without the hassle
>of filming frame by frame off of the CRT screen and then convert to video.
>(I consider video the final destination because of the ease of adding sound
>and the availability of home VCRs and public access cable channels.)
>Also, for animation, you need to see the real-time feedback to fine tune your 
>animation technique.  (Most people resort to lo-res previews or wire-frame for 
>real time animation checks.)

	What you just described is essentially what Animation:Apprentice
does.  This package is available for the Commodore Amiga (at least 1meg)
for just $299.  It is intended as an animation system.  I think you should
spend the time to explore this package.  It really takes adventage of the
special features of the Amiga, and will do all the rendering automatically.
The package allows you to design a character(s), create actions, and
choreographies, and view rehearsals.  Then when you're satisfied, tell the
machine to render the animation.  This can take from an hour to overnight
depending on the complexity, and length etc., but it's a lot faster than
filming frame bt frame off the CRT.  
	Animation:Apprenice is made by Hash Enterprises of Vancouver WA.
They are working on an IBM version, and an Atari ST version, but the Amiga
one is available now, and has more graphics hardware to take advantage of.
You can contact the company at (206)256-8567.  It really sounds like this
is the package you're looking for.  Hash Enterprises is also working on
other animation products for the Amiga.  If you are serious about animation,
I think it's worth your while to contact them.

[I appologize for the semi-commercial nature of this article, but I think
 it's of interest of members of this newsgroup]
-- 
	-Ken Baer.  					 
   //   Amiga: The PC that CAN walk and chew gum at the same time.
 \X/    USENET - ...tektronix!reed!percival!baer   OR   baer@percival.UUCP
"The Few, The Proud, The Criminally Insane - Oberlin Computer Science" - me.

cmcmanis%pepper@Sun.COM (Chuck McManis) (01/14/88)

In article <159@abvax.UUCP> gfs@abvax.UUCP (Greg F. Shay) writes:
>Does anyone know if there are systems/boards/companies for INEXPENSIVE 
>real-time video animation for, for example, the PC?
>	I am referring to the following type of scenario:
>	1) Cartoon-like images, large areas of similar color, not gradual
>shading.  This would allow large data reduction using run-length data 
>compression.
>	2) Frames built one at a time, recorded in sequence on hard disk,
>	3) Frames played back in real time, ready for Video tape recording.
>
>Given the data throughput of the hard disk, I theoretically calculate that
>animation done in two's (i.e. 15 fps for video) with moderately complex
>pictures is possible.

Currently, the best price performance for home animation is the Amiga 
computer. It can be configured for short animations, recordable on your
home VCR for about 1K. It also has very reasonably priced software available
and the animation formats are fairly well documented so adding your own 
routines is fairly easy. Animations on this machine are usually done in 
a non real time generation mode, followed by a real time playback mode.
Playback ranges from 20 - 30 fps and the duration is limited to what will
fit in memory. My experience has been about 20 seconds of animation for a 
1 Meg machine, up to about 4 minutes for an 8 meg machine. Current strategies
for reading animations in from disk while running them would boost that
time to several minutes. The animations are stored in a delta encoded 
double buffered frame stream, the less things change on the screen the 
more you can store. 

Advantages to the Amiga are :
	1) It has a up to 4096 colors available for the animations.
	2) Several packages exist *now* for animation, Videoscape-3d,
	   Animate-3d, The Director, Photon Video, and Animators Apprentice
	3) Directly recordable on a home video tape recorder. Longer 
	   animations can be spliced together when using an 8mm deck (or
	   really anything with a flying erase head.)
	4) Final cost is a lot lower than other systems. If you think you
	   will want lots of memory get an Amiga 2000 ($2K + slots) the
	   Amiga 500 is more expensive to expand, but costs less initially
	   ($1K + Expansion Chassis).
	5) It meets all your requirements + you can do ray traced animations
	   if you want to later.
	6) You can run another task to add sound effects.

>	What is thy wisdom, oh great and powerful net?

Just opinion. Like Lee said, "If you can find a better deal buy it!"


--Chuck McManis
uucp: {anywhere}!sun!cmcmanis   BIX: cmcmanis  ARPAnet: cmcmanis@sun.com
These opinions are my own and no one elses, but you knew that didn't you.

peter@sugar.UUCP (Peter da Silva) (01/15/88)

In article <159@abvax.UUCP>, gfs@abvax.UUCP (Greg F. Shay) writes:
> Does anyone know if there are systems/boards/companies for INEXPENSIVE 
> real-time video animation for, for example, the PC?

> 	Does anyone know more about this, has anyone implemented something
> inexpensively (<$1000) for a small computer?

If you already have an RGB monitor, you can buy an Amiga 500 with a Meg of RAM 
and half a dozen animation programs of all types (ray-traced 3d, surface
rendered 3d, cartoon style 3d, any sort of 2d, etc...) for that. It's only got
mono composite output, but there's a cheap ($50) gadget to convert the RGB
to hue/croma suitable for videotaping. Or you can buy a used Amiga 1000
with NTSC output built in for less (though you'll have to add back a few hundred
bucks for extra RAM if you want to do any really long animations).
-- 
-- Peter da Silva  `-_-'  ...!hoptoad!academ!uhnix1!sugar!peter
-- Disclaimer: These U aren't mere opinions... these are *values*.

richard@gryphon.CTS.COM (Richard Sexton) (01/18/88)

In article <38786@sun.uucp> cmcmanis@sun.UUCP (Chuck McManis) writes:

Just a minute. (Chuck McManis) writes ?  I just had dinner with this
guy, and now I'm..... Oh never mind.

>In article <159@abvax.UUCP> gfs@abvax.UUCP (Greg F. Shay) writes:
>>Does anyone know if there are systems/boards/companies for INEXPENSIVE 
>>real-time video animation for, for example, the PC?
>
>Currently, the best price performance for home animation is the Amiga 
>computer. 

>My experience has been about 20 seconds of animation for a 
>1 Meg machine, up to about 4 minutes for an 8 meg machine.

Remember that the _probe sequence_ is a full 5 minutes long, and
runs on a 512K Amiga.

-- 
            "It's too dark to put the keys in my ignition"
                        richard@gryphon.CTS.COM 
   {ihnp4!scgvaxd!cadovax, philabs!cadovax, codas!ddsw1} gryphon!richard

rtc@masscomp.UUCP (Richard Carling) (01/19/88)

  I have posted a number of articles to rec.video on
a very similiar subject. Since I KNOW the type of
images I generate will take sometimes hours,
and since on most computers it isn't possible to
sustain realtime animation from disk for any great length of
time I concentrated on finding ways to CHEAPLY make
something as close to single frame animation as possible
(under 3K for everything except the computer).

  Now if your really interested, grep thru rec.video
looking for my name. But briefly here is what I do
to create clean videotaped animation at a speed of
at least 8 frames a second.

  I first run my color MAC II in NTSC mode, using a
small C program (enclosed). I run this (now interlaced RS-170)
into an RGB to NTSC encoder. Then, using a video
recorder which can do interval recording, Sony SLHF-1000 (beta)
or Sony CCD-V110 (8mm) or Panasonic 1950/2950 (VHS/SVHS)
I record each image in my movie onto an "interval" of the tape.
The interval on the 1000 is 6 frames, on the 110, 8 frames.

  Since all of these decks have flying erase heads,
edits are very clean. I then take this very clean but jerky
animation tape and tape it onto a digital video recorder which
has clean 2X playback (e.g. JVC 570 and many others).
Taping this 2X signal back to the first deck gives me 8 to
10 frames a second of animation. If I do this again, it works
but creates mild flagging or tearing at the top of
the screen (with the equipment I am using). So I
stick with doing this just once. I have not looked
at the Panasonic, but from the literature, it looks
like it can do all of this in one deck (you still
need a second deck to capture the finished product).

  A company (whose name escapes me, but was at the Amiga
booth at Siggraph) has a very cheap ($200) controller for
the SLHF-1000 which is supposed to be able to do single
frame animation. All of the decks I listed have insert-edit
capabilities so in theory, all could do single framing given
the proper controller. Issues of tape wear and manual labor
(if an automatic controller is not available) are the
major concern.

  This is not strictly graphics related, so no flames please....

Richard Carling

.......................................

  So you say, hey where is this MAC II code which converts
a MAC II running in non-interlaced 8 bit color mode to
interlaced RGB RS-170 using the standard video card.

Ok, ok...

/************************

The Slot must be between 9 and 14 inclusive.

I am running in slot 4 so 9 + 3 == 12
if you run in the first slot it is 9 + 0 = 9 
I should use slot manager calls to automatically
find the video card but not today.
If looking at the back of the MAC II, the first slot
is the rightmost slot, which is where most individuals
have their MAC II video card placed (so use 9). This may only
work when the MAC II is in 8 bit color mode. 

--->  And disconnect your expensive monitor first!!!!!  <---

Disclaimer:
  I am not responsible if it doesn't work. It works for me.

If you have an RGB compatible interlaced monitor
such as a Sony XBR25 or many others, you can view
the output on it. Pinouts have been provided in
the mac & video newsgroups for cables. If you have
an RGB to NTSC encoder you can view the output on
virtually anything that accepts a standard video input.
*/

main()
{
	SetInterlace( 12 ) ; /* !!! You will want SetInterlace( 9 ); */
}

/* Set to NTSC Video */

SetInterlace(Slot ) int Slot;
{
    long ll, *CardPtr, Calc;
    int Dummy;

    ll = (long ) Slot;
    CardPtr = (long *) ((ll << 20) + 0x80000L);  /* << is the shift left OP */
    
    
    CardPtr[0] = 0xFF;
    CardPtr[1] = 0x48;
    CardPtr[2] = 0xff;
    CardPtr[3] = 0xf7;
    CardPtr[4] = 0x9f;
    CardPtr[5] = 0x1a;
    CardPtr[6] = 0xc4;
    CardPtr[7] = 0xe6;
    CardPtr[8] = 0xfa;
    CardPtr[9] = 0xf7;
    CardPtr[10] = 0xe5;
    CardPtr[11] = 0xF1;
    CardPtr[12] = 0x7b;
    CardPtr[13] = 0xf1;
    CardPtr[14] = 0xd1;
    CardPtr[15] = 0x06;
    
    ll = (long)Slot;
    CardPtr = (long *)((ll <<20) + 0xC0000) ;
    Dummy = *CardPtr ;   /* Must be a Longint reference */
    
}

/* Set To Mac Normal video */

ClearInterlace(Slot) int Slot;
{
    long *CardPtr, ll;
    int Dummy;

    ll = Slot;
    CardPtr = (long *)((ll << 20) + 0x80000L);  /* card = $00100000*slot +$80000 */
    
    CardPtr[0] = 0xFF;
    CardPtr[1] = 0xB8;
    CardPtr[2] = 0xff;
    CardPtr[3] = 0xf7;
    CardPtr[4] = 0x0f;
    CardPtr[5] = 0x1a;
    CardPtr[6] = 0x88;
    CardPtr[7] = 0xb9;
    CardPtr[8] = 0xfa;
    CardPtr[9] = 0xe1;
    CardPtr[10] = 0xe1;
    CardPtr[11] = 0xe9;
    CardPtr[12] = 0x79;
    CardPtr[13] = 0x69;
    CardPtr[14] = 0xd2;
    CardPtr[15] = 0x02;
    
    ll = Slot;
    CardPtr = (long *)((ll << 20) +0xB0000) ;
    Dummy = *CardPtr ;   
    
}

  
....................

Richard Carling