ScreenBOT

The Animated 3D Museum: Development

On this page we talk to the geeks about what went into this program, and get a little bit under the covers to cover a few attributes that contribute to the generally high quality of the renderer.

Future updates and enhancements will be provided as well.


Although quaternions, linear algebra, and Taylor series calculus will not be covered, we will discuss some Direct X features worth looking into, in order to get the best image quality from a Direct 3D scene.

 

Maximizing 3D Image Quality :

One neat feature of the program is that exhibits have been designed to match in size the aspect ratio from your original image file. This makes it easier for the program to render exhibits with a high level of quality and also adds more realism to the scene.

The program optimizes 3D settings to match video hardware by:

Optimizing Texture Quality: This is done by checking for card device capabilities. D3DTSS_MAXANISOTROPY can provide the best image clarity without jaggies. If anisotropic filtering is not supported, then linear filtering will be used. There is a noticeable difference between the two. Linear looks blurry in comparison to anisotropic, however it still does look much better than point filtering which provides the best performance, with the nasty expense of cubed looking textures.

If possible, the Direct X setting: D3DCREATE_MIXED_VERTEXPROCESSING is used with D3DCREATE_MULTITHREADED to also maximize performance and image quality.

By checking for D3DMULTISAMPLE_6_SAMPLES support, on down to two, the program reduces jaggies, by antialiasing samples of textures.

Like most Direct X games today, the program matches its Bits Per Pixel with current screen settings, often using D3DFMT_X8R8G8B8 (32 bpp) on down, to 24 and 16. The 32, 24, and 16 bpp settings support millions of colors. Screen colors are represented for monitors with RGB or Red Green Blue combinations. With 24 bpp this means (R8*G8*B8) so 8 bits can be used to define the Red shade (from 0000000 to 11111111 in Base two), with another 8 for the Blue shade, and 8 for green. Basically 16,581,375, or 255 * 255 *255 colors can be defined this way. 32 bpp provides for transparency, or alpha which can be used for all sorts of neat special effects. Direct X typically will not run with a total of 256 colors or 8 bpp. This ancient mode actually produced decent quality screens in the past because Windows generated a sample palette from the images with more colors, and then selected the sampled palette into the screen. You will need to use more colors in Display Settings to use Direct X, and avoid palettes.

There are four D3D8 Point Lights in the center of each museum room, and two directionals. These lights are the source for the dramatic shadows, and the reason why ScreenBOT has this radical sheen. The exhibits are not affected by lighting by design, and so in some darker rooms they have this dramatic glowing appearance. Each room has slightly different lighting settings.

By using Direct X "Managed" Memory with surface SWAP-DISCARD the program can request memory be freed at strategically beneficial moments by calling ResourceManagerDiscardBytes(0). This call is done between rooms and after exhibits have been rotated, or recycled with [R]. Direct X frees memory used by the textures and sound files automatically using its own memory manager. This function call is nothing more than a suggestion to the memory manager to check on things.

The animated character, ScreenBOT is in the Microsoft X-File storage format and was created using Caligari trueSpace. The trueSpace program simplified the process of modeling and animating a 3D character while maintaining impressive image quality. ScreenBOT is composed of 12,986 faces, or combined forming shapes. This was necessary to support the unique extrusions or holes in his body, and his dramatic rounded figure, which is especially hard to model in a mesh format. Although we have used Maya for animation in the past, the Caligari product made it very easy to see our results rapidly in the X format, and the renderer has truly been just as impressive as products from Alias Wavefront, 3D Studio Max, or Lightwave. We particularly like the "fly" mode which allows you to float around your scene like a dollying camera.

We like to think of ScreenBOT as a friendly, Space-Age picture tourist. Although the antennae look like sensors, they are also radio receptors, so ScreenBOT can 'receive' transmissions from other worlds. Although not shown yet, He has the capability to raise his eyes and mouth forming a smile. We hope to develop ScreenBOT further, and advance his animation capabilities beyond just standing and walking. This may be done in the next version which will likely become a full fledged game.  

Some testers have suggested putting a different image on the other side of the cube exhibits, "like a real museum." Well, that would defeat the exhibit - size to fit feature, as well as the filled glass or cubed glowing effect. The filled glass effect adds to the larger than life visual effect. Also, there is a surprisingly low texture size limit even on today's newer cards. The typical NVIDIA 5200 card would not be able to display eight images with the same level of quality as four, because we would be forced to back off providing the texture for the image at practically original, full screen size. Four textures (plus those for the museum and ScreenBOT) seem to be fairly optimal, as we have tested really huge, print size 600 dpi images in combinations of four for problems, and loss of quality. If you run a print shop with really large bmp or jpg files, the program should handle these files without problems (because they get scaled down to 72 dpi screen size). Unfortunately the TIF format is not yet supported, however the program can load the newer png format which supports transparency.

Some have said this program is nothing more than a cheap b-grade 3D knockoff. To the critics we say, try changing it to produce better results! The gray - white shadowed wall colors cannot conflict with your full screen color image files, and when was the last time you saw your friends and family rotating around in a 3D cube like huge poster children for $14.95? :-)

Version 1.1
In Development:
Floor and wall textures will be selectable
An alternate floor texture

Actual museum images from the real museums even look credible in the program. I have the classic Mona Lisa painting from The Louvre, France: http://www.louvre.fr/ and she really looks, well real! Even if you designed the scene in your own animation program costing hundreds, if not thousands of dollars, the camera would have to be programmed to navigate the scene from a script, and the renderer would have to be able to update the scene very rapidly to match our image quality. It will also be a real challenge to keep up with our high frame per second program translation speed. We rest our case!

Frankly, without the Direct X product from Microsoft this program would not have been possible at all. We would like to take this opportunity to thank those at the Microsoft Direct X team for their committment to high quality and robust modular programming. 3D realism has never been better. It is hard to imagine what they will come up with next! It really is true, just like Bill says: "Where do you want to go today?" There just aren't limits any more!

Bruce MacFarlane
Programmer
Wise Owl Games

http://www.wiseowlgames.com
info@wiseowlgames.com