External links, these open in a new tab (Firefox), or window (IE)
VRML Model of the Enterforaprize
To navigate hold the left mouse down.
This model was originally created by Johann Drassima in 3DS format. I approached him with a view to converting into a RealiMation model to put onto the web. Johan e-mailed me the 3DS file on 21st May 1999.
As RealiMation couldn't read .gif files (at that time there was an issue of payment to CompuServe being required) so I converted all the .gif files to .jpg using Paint Shop Pro. At that time RealiMation couldn't read .png files either - that would come a few years later.
The first step was create a new, blank RealiBase and import the 3DS file into the RealiMation Space Time Editor (STE) as it was called at the time. We later came up with the slightly better name of Designer. Software engineers really shouldn't be allowed to name their own software - not that marketting people always do any better.
The only error was a mismapping of the Sev logo texture around the can which was easily corrected this using the texture editing tools in Designer. This was one of the key features of the software, being able to modify models once they'd been imported fixing any errors and making them suitable for their intended target.
The important thing to realise about real-time 3D, especially on the Web (even now), is that the lower the polygon count the better. For the size the Enterforaprize was going to be presented on the web I felt the original polygon count was a little high. In fact when I tried loading this model on a machine with only onboard graphics, not all of it could be displayed. This shows that even a small model like this still needs a separate graphics card to be useable. So I started using some of the tools in Designer to reduce the file size:
* I simplified the Pizza Crust a little to reduce its polygon count.
* I replaced the nacelles with cylinders created in Designer. This created objects with a lower polygon count and a slightly better structure.
* I added a background starfield to the view - since removed as it really wasn't very good.
I e-mailed this version back to Johan, and this was the first put on the web. I don't think anyone saw it, which was lucky as it didn't do much, just sat there and allowed the user to fly the camera around. What was needed was some animation! Unfortunately all of this animation has been lost now that I've converted the model to VRML format. Though a long term goal I have is to reinstate it. Anyway, for completeness here is what I did.
I added smoke rings coming out of the nacelles. These were tori created in the Designer with a semi-transparent material. There is one torus instanced four times. Paths are attached to the instances to get the movement and scaling of the rings. The paths "auto-repeat" so I could use a short path (5 nodes) to define the motion and then have it repeat indefinitely. There is an added complication here. With the simple paths the second set of smoke rings start in the middle of their path. A second, non repeating, scaling action is added to the first to scale the ring to nothing for the first two seconds.
I added another couple of cameras to the RealiBase to give the viewer a choice of views and one following a fly-by path.
I e-mailed this version to Johan for his approval on 25th May 1999 and again on 4th June 1999 after making some more minor changes.
I the mean time I did the following:
I replaced the pizza topping with a new cylinder created in Designer to reduce the polygon count further.
I tweaked the fly-by path to make it "better".
I added a pair of spot lights under the pizza base to illuminate the registry number. I also "pre-lit" the model. This invloves performing the lighting calculations and saving the lit vertex colours with the model. Then when the model is displayed these values can be used directly - rather than performing the lighting calculations every frame, thus improving performance.
The transparency on the smoke rings was increased a little and made the material slightly emissive to give a glowing effect.
The smoke ring path was lengthened. This meant adding a third pair of rings.
The hole at the front of the can was a separate object - on certain graphics cards and when you are far away from the model, you could see z-buffering artefacts as the card cannot decide whether to draw the faces from the hole or the can top first. The solution to this is to delete the hole and put a texture on the can top which includes a hole. To do this I had to delete all the triangles from the can top and replaced them with a new object to get the texture mapping correct.
I resized all of the textures to be square and a power of 2 in size. This is because the graphics card's texture unit requires textures to be in this format. RealiMation will convert textures as and when required, but if they are in the correct format to start off with then this calculation is not needed. This improves load time, again a critical consideration when transferring data across the internet.
I applied the instance transformations to all the objects so that the triangles are actually where they appear to be (except the smoke rings and nacelles which share geometry). Again, this is to improve the frame rate as the geometry doesn't have to be transformed every frame. It's not good modelling practice as it makes it harder to reuse the geometry in other locations in the simulation. However, as we've only got one copy of the model it's not an issue.
I e-mailed this version to Johan on 15th June 1999 and put it onto the web here. And there it sat for several years gathering virtual dust in a forgotten corner of the internet. I carried on tweaking the model, using it for testing purposes and made a few more changes.
The starfield bitmap had a severe impact on the frame rate on my work machine of the time which was running WindowsNT and had PCI Creative Labs TNT card running open GL, but not my home machine of the time (Windows 95, AGP ATI Rage Pro card running Direct3D 6.1). I tried various options, but in the end removed it all together. It looks good on the static image, but doesn't really help when interacting with the model.
What I would have liked to have done.
The can needs to be simplified to reduce the face count again - especially as I added quite a few with the smoke rings.
Redo the pizza base texture to improve the constrast of the registry number. To do this I would have to have got hold of the font used to create the image in the first place, and that is something I never got round to doing.
Save the RealiBase (or now VRML file) in compressed format to improve download times.
Add running lights. Red and green in pairs at top & bottom of pizza crust port & starboard. Red and green on port & starboard nacelles. Yellow on top & bottom of rear of can. White top & bottom in centre of pizza.