View Single Post
Old 12-20-2007, 08:34 PM   #955
Jim Sachs
Developer
 
Jim Sachs's Avatar
 
Join Date: Dec 2000

Location: Southern Oregon
Posts: 9,775
The CPU has not been the bottleneck since Pentium 1 days, and then only when calcnormals (an option to recalculate the suface normal of the fish every frame) was used.

The bottleneck is simply the graphics card's ability to blast all those bytes onto the screen. A screen resolution of 1920x1200x32 means that 9,216,000 bytes have to be moved to the screen just to refresh the pixels once. But each pixel may need to be modified several times as nearer objects overwrite farther objects, translucent pixels modify those beneath them, stencils and reflections get applied, etc. The z-buffer (another 2 bytes per pixel) also has to cleared to all zeros, then each pixel updated to the depth of that pixel in the scene. This is a very simplistic description, which barely scratches the surface of all the things that have to happen 60 times per second.

The Aquarium is multithreaded, at least as far as a sequential time-critical program can be. The code does not change, it's simply a compiler switch. One of my biggest problems has always been operating smoothly in a multitasking environment. Even setting the Priority to the highest possible setting, when you let go of the CPU, you really have no idea when you'll get it back. All those network programs, internet servers, wireless transmitters, worms and viruses that people insist on installing on their computers are always sucking up clock cycles and causing my movie to stutter.

Speaking of VooDoo cards, it's possible that MA3 will not work with them. Traditionally, 3Dfx cards had a limit of 256x256 on their textures, and the new Aquarium is mostly 512x512 textures. This is ironic, as my first 3D programs would ONLY work on 3Dfx machines. Their 3D language, Glide, was light-years ahead of everything else.
Jim Sachs
Creator of SereneScreen Aquarium
Jim Sachs is online now   Reply With Quote