Stereo (3D) Animations New Opcode for FORM ANIM ======================== Submitted by William J. Coldwell (08/23/91) TITLE: New OpCode 6 Addition to ANIM IFF Format Revision Date: 20.8.91 Prepared by: Cryogenic Software 13045 SouthEast Stark St Suite 144 Portland, OR 97233-1557 Contact: William J. Coldwell Voice: (503) 254-8147 (11a-4p PDT/PST) Data: (503) 257-4823 (EMail to SYSOP) Portal: Cryogenic UUCP: uunet!m2xenix!percy!cryo!billc Internet: billc@cryo.rain.com 1. Introduction In 1989, we added support into one of our commercial products to support the Haitex X-Specs glasses. This documentation will not go into a detailed description of this product. Contact Haitex for more information concerning the hardware: Haitex Resources, Inc. Post Office Box 20609 Charleston, SC 29413 Voice: (803) 881-7518 Fax: (803) 881-7522 Contact: Shawn Glisson We found that there was not a supported way to display stereo animations using the current IFF ANIM OpCode 5 specification. Cryogenic supported OpCode 6 as an internal format in our commercial programs (see below) and provided Public Domain players. It is our intention at this time, to release this format to other developers wishing to support stereo animations using this OpCode. When we first started this project, the current Amiga machines had a 512K of CHIP RAM maximum. This caused some memory problems with some of the higher resolution stereo animations, since the Quad Buffers were in CHIP RAM for our players. It was our intention to attempt to do some memory magic to require only two of the four bitmaps to be in CHIP RAM at one time. It was our feeling that this would have caused the animations to slow down, due to data swapping that may or may not have needed to be done. By the end of 1989, all development had stopped on OpCode 6. This left all buffers in CHIP, and the format has remained the same since then. 2. OpCode 6 Additions to OpCode 5 Please refer to the ANIM IFF format submitted by Sparta/Aegis. The format is exactly the same as OpCode 5 but is QUAD buffered instead of DOUBLE buffered. This allows the player to show 2 screens at one time for the X-Specs Glasses. Each picture MUST be viewed for 1/60th of a second, therefore to see a 3-D Picture the viewer can only play ANIMs at 30 frames per second. (2 pictures = 1 frame). The IFF file is stored exactly the same except that instead of having each DLTA (delta) modify bitmap two frames back, it modifies the bitmap four frames back. Example: ------------------------ | | | BMHD | | | ------------------------ | DLTA (1) | ------------------------ | DLTA (2) | ------------------------ | DLTA (3) | ------------------------ | DLTA (4) | ------------------------ | DLTA (5) | ------------------------ | DLTA (6) | ------------------------ . . . ------------------------ | DLTA (x) | ------------------------ 3. Playing OpCode 6 ANIMs Four bitmaps are allocated. Bitmaps 1 and 3 are the left views, and bitmaps 2 and 4 are the right. The First bitmap is gets its image from the bitmap in the file (BMHD). The Second bitmap is a copy of the first with DLTA (1) performed on it. The Third Bitmap is a copy of the first with DLTA (2) performed on it. The Fourth Bitmap is a copy of the first with DLTA (3) performed on it. We now have the first two 3-D Pictures: One in bitmaps 1 and 2 and the other in bitmaps 3 and 4 DLTA (6) is used to create the third left view from bitmap 1. DLTA (7) is used to create the third right view from bitmap 2. DLTA (8) is used to create the forth left view from bitmap 3. DLTA (9) is used to create the forth right view from bitmap 4. NOTE: This technique requires 4 Loop frames at the end to perform looping. 4. Chunk Changes In the ANHDChunk structure the only differences between OpCode 5 and OpCode 6 are the _Operation_ field which should be set to 6, and the _Interleave_ field which should be set to 4. 5. Supporting Software 3-D Professional 1.0+ (Progressive Peripherals and Software) View 1.7 and above (Public Domain) on a Fred Fish Disk MSA: Make Stereo ANIM (internal) Available upon request. PSA: Play Stereo ANIM (internal) Available upon request.