3DO Animation Basics


This section provides background information about the following topics:

Animation File Formats

The 3DO system supports two animation file formats:

Tools for Creating 3DO Animations

A 3DO animation is a linked list of 3DO cels. You can therefore create animations using one of the available graphics tools, or by linking cels directly using one of the following tools:

Double Buffering

The process of showing a display buffer on the TV screen is not instantaneous; it takes a full 1/30 of a second to move the entire buffer to the screen. The display hardware is completely separate from the cel hardware, so the display-to-TV process happens continuously in the background. Because of this, it is possible to draw cels to a display buffer that is at the same time being shown on the screen. However, when you draw to an active display buffer, cels may tear or not draw completely. To avoid drawing to an active display buffer, you can create two display buffers, switching between them every frame. This technique is known as double buffering, and you'll find it necessary for most 3DO applications.

Double buffering is used for displaying images-as in the slide show example- or for displaying animations, as in all other examples with the exception of jsshowcel. The CreateBasicDisplay() function in Lib3DO sets up a TheScreen structure, which contains, among other things, an array of screen items. An index counter flips between two screens every frame. At the end of a draw cycle, the code calls DisplayScreen() which waits until the next vertical blank and then switches the hardware to display the new buffer.