I have spent a great deal of time over the last week looking at various possibilities for the Dreamspace animation. Here are some that I am considering:
This is an image that somebody else made, so I may not have a legal leg to stand on, but I’m hoping I can track down the artist and license it. I have a huge version of this, and the idea would be to create a sequence of perhaps 16 versions of this that are progressively shrunk. Blitting the frames in reverse order onto the screen would produce the impression of moving into a tunnel. Such blitting would be simple enough. The trick likes in scaling the frames properly so that I get a smooth transition at the end of the loop. That will take very precise measurements.
After working with it, I established that this image is unscaleable. The image is not symmetric, nor do the different layers have regular ratios of diameters. This copy of the image with perfect circles superimposed reveals the asymmetries in the image:
They’re small, but they’re enough to make any linear scaled magnification produce inconsistencies when used in a loop. Oh well, it was a nice thought.
The Linear Spiral
This would be drawn algorithmically, or it could be done with simple rotation and blitting. I could make something much more graphically interesting if it’s just a matter of blitting frames.
The Regular Spiral
I won’t bother to show this. It’s just a simple spiral rotated. Very easy to do, but I think it’s too simple and a bit cliched. Twilight Zone, anyone?
There are two versions of this:
The first uses color gradients to produce a software look. The second one is stronger. Neither one of these can be generated quickly using algorithms; both would require pre-rendering with blitting.
It therefore appears that, no matter what, I’m going to be using frame blitting, and the only issue is how to render all the frames. That in itself is a straightforward process, but it will be time-consuming. And I’ll have to pay close attention to the frame size, as the blitting process could be time-bound if the frame is too big.