This video shows the Amiga AGA chipset combining 3 full screen 8-bit layers (or playfields, if you prefer) using various 8-bit alpha values.
LAYERS
Background: * PTDQ system * 320x200 dots * max 256 colors
Middleground: * PTDS system * 160x200 logical dots, 319x200 physical dots * max 16 non-transparent colors * each base color can have an arbitrary 8-bit alpha (actually used: 0 for complete transparency, 128 for dark colors, 255 for bright colors) * "native" chunky dots (i.e. each byte in the layer buffer corresponds to a dot) * triple buffer
Foreground: * PTDQ system * 320x200 dots * max 81 non-transparent colors * each base color can have an arbitrary 8-bit alpha (actually used: 0 for complete transparency, 192 for see-through graphics, 255 for solid graphics)
NOTES
* The color model is RGBW for all the layers, but each layer could use a color model of its own without making any difference performance-wise. * If the middleground had used PTDQ, its size would have been 320x200 dots and its maximum number of non-transparent colors would have been 81. However, that would have required the PTDQ C2P conversion. * If the middleground did not use 100% transparent dots, its maximum number of colors would have been 81. * If the foreground did not use 100% transparent dots, its maximum number of colors would have been 256. * The display size is actually 319x200 dots to hide the leftmost column of dots, as PTDS requires a 1-dot shift to the right for the even bitplanes. * The ball is rendered by scaling and flipping in real time a 128x128 chunky bitmap. * The ball is wiped by means of both CPU and Blitter. The logic that handles the geometry still needs to be refined in order to provide a massive speedup. * For convenience, the video has been recorded with WinUAE. * On a stock Amiga 1200, the demo runs at 50 fps except when the ball covers most of the screen (in that case, the frame rate drops proportionally to the size of the ball); the slowdowns will be greatly reduced once the wiping is optimized. * On an accelerated Amiga, the demo runs at steady 50 fps. * YouTube's encoding reduced the saturation of colors.
I made this PTDS proof-of-concept program many months ago, but I couldn't bother releasing it until today. It produces an effect of movement over a variable terrain. The terrain is rendered by means of perspective-correct texture mapping, according to a looping sequence of textures (Texequencer = Textures + Sequencer), on a triple-buffered 319x200 PDTS screen, using the RGBW color model. Apologies for the dull textures :p
NOTES * On a stock Amiga 1200, the speed alternates between 26 and 27 fps. * On an Amiga 1200 equipped with a Blizzard 1230 IV mounting a 50 MHz 68030 and 60 ns FAST RAM, the speed alternates between 89 and 90 fps. * YouTube's encoding degraded the quality.
I have just released yet another demo (months ago I had shown a video, but I had not released the program itself):
The terrain is rendered by means of perspective-correct, wrap-around texture mapping. The city is rendered by means of solid bitmap zooming. The UFO is rendered by means of zero-keyed bitmap zooming. The screen uses PTDS, is 319x200 dots and employs the RGBWa color model. On a stock Amiga 1200, the speed varies between 19 and 23 fps. On an Amiga 1200 equipped with a Blizzard 1230 IV mounting a 50 MHz 68030 and 60 ns FAST RAM, the speed varies between 67 and 80 fps. The fps fluctuations depend on the fact that the size of the UFO goes from very small (thus requiring only a few RAM accesses) to very large (requiring a lot of RAM accesses).