Hyperspace Effects Past and Present
Star Wars Hyperspace Effects
Before proceeding, a little history about how I think starfields were dealt with for creating hyperspace jump point effects. I believe that ILM started with a flat starfield that was created by some means. Next a horizontal track was placed in front of the starfield and a motorized camera with a macro lens was attached to this track and allowed to slide along it. The camera was then moved to its farthest point along the track and focused on the starfield in front of it.
To create the effect, a frame of film in the camera was continuously exposed to the starfield as the camera slid along the track towards the starfield. Of course, the camera had to constantly keep focusing on the starfield as it moved towards it. Having the camera constantly focus on a particular location as it moves around is called "follow focusing". The affect of this is to streak the stars on the frame currently being exposed. Once the camera reached the closest point it was designed to get to the starfield for this frame, it would stop and the exposure onto the frame was terminated. The camera was then moved back to its original starting point on the track, the film in the camera was advanced one frame, and the process was repeated on the next frame of film. The difference is that on this next frame, the camera ends up slightly physically closer to the starfield. By moving the camera closer to the starfield for each successive frame, the effect is to make the stars look they are rushing towards the camera as the Millennium Falcon makes its jump into hyperspace. It should be noted that this is exactly the same way I create hyperspace jump sequences except that I do this procedure completely in virtual space. See the diagram below.
(Image)
Deciding On An Implementation Method
I decided that I didn't want to spend thousands of dollars trying to build the track system required to move the camera forwards and backwards as well as buying a very expensive macro lens. Not to mention the problems I would have encountered trying to implement a follow focus system to keep the camera constantly focused on the starfield. My alternative solution was to start with a high resolution still image of the starfield that would be streaked, and then feed this image into a special purpose image processing and computer graphics C program that would generate the resulting hyperspace image for me.
Since this program is fairly long and probably to complex for most people to understand anyway, I have decided to not list the entire program's exact contents on this webpage, although there are a couple of important code sections listed here. Plus, I'm not at all sure I want to just give away 70 hours of work! I will however describe the algorithm that I used so that you can understand the theory behind what's going on in the program.
Creating the Starfield Input Image
The first thing that I had to do was create myself a starfield that would be used as the image that would be streaked. This was done by me sprinkling sugar onto a piece of black lithographic film and photographing the resulting image. I should note that I ended up having to augment the original input image with about 870 additional hand drawn stars as the original image's 620 stars proved to be insufficent to create a dense enough starfield. Click here for precise details. After the film was processed and the appropriate starfield was scanned into Photoshop at a resolution of 2700 x 1125 pixels, i.e. widescreen format at 300 dpi for a nine inch wide image, the image went through some quality control work to ready it for input into the hyperspace generator program, i.e. the HGP.
The quality control work included cropping the image to the right size, using the Curves command to turn the stars white and the space black, and finally changing the image into Grayscale mode, i.e. 8 bits/pixel, to eliminate all color information. I also went over the entire image by hand and reduced the size of any stars I deemed to be to big. This resulting grayscale image was saved off so that it could be used as a regular starfield at some future time. The last step in this process was to turn this grayscale starfield into a binary starfield.
The starfield to this point is actually grayscale because if you look at the edges around each star you will notice that the edges don't just immediately turn from white to black. They gradually change from white through gray to black. But the HGP only works on binary starfields, i.e. starfields that contain pixels that are either pure white (i.e. value 255) or black (i.e. value 0). To turn my grayscale starfield into a binary starfield I simply used the Threshold command in Photoshop. This turns the above grayscale starfield into a binary starfield, although this binary starfield is still stored as an 8 bit/pixel image file. The binary starfield image is now ready to be ingested into the HGP.
It should be noted that there is no manditory reason why a starfield has to be created in the above way. A completely synthetic starfield can be easily created and fed into the HGP by just using Photoshop's standard editing tools. The reason I did it the way I did was so that the star streaks would perfectly match up with my grayscale starfield, although I did end up adding several hundred extra stars to the binary image to help intensity the effect.
Last Updated: June 1, 2000
HTML URL: http://geocities.datacellar.net/~special_effect/hyperspace_pp.html
E-Mail: special_effect@geocities.com or click here