To Be Continued... 3Dfx Graphics Demo (1999)

Sunday, October 28, 2012
By: Matthew Doucette


"To Be Continued..." by Saw Tooth Distortion.

Downloads:

  1. 3DFX DEMO: To Be Continued...  (3MB size)
  2. 3DFX GLIDE WRAPPER: zeckensack's Glide wrapper (235KM size; source: zeckensack.de/glide; required to run on modern hardware via OpenGL)
  3. SOUNDTRACK (OPTIONAL): sickmon.xm (785KB size; Fast Tracker 2 Module format; " Sick on Monday" composed by Jussi-Matti Salmela (Elwood) )

 

Introduction:

"To Be Continued..." was my April 2nd, 1999 contribution to the demoscene, masquerading as a final year Acadia University COMP 4983 final project. It uses 3D hardware acceleration via a Voodoo 2 3Dfx chip, in 640x480 resolution (hi-res at the time) in 16-bit color. It was coded in two weeks, and only used 3Dfx Voodoo 1 features and 2MB of texture memory.

It was released under our former name, Saw Tooth Distortion.

 

Credits:

 

Development Specs:

Software:

Hardware:

 

Backward Compatibility:

"To Be Continued..." was coded for Voodoo 1 or Voodoo 2 3Dfx cards.  A Glide wrapper (or 3Dfx wrapper) is required unless you have a Voodoo 1 or Voodoo 2 3Dfx graphics card installed (doubtful).  We suggest Rolf Neuberger's zeckensack's Glide wrapper, linked above.

 

History:

The AMD-K6 200MHz processors ran Quake slower than Intel Pentium 133MHz processors, due to slow floating point units. Keep in mind Quake was optimized for Pentiums.

 

Coding Details:

All coding was done in Microsoft Visual Studio C++ v5.0 with the 3Dfx Glide v2.x API.

A note about Glide:

"Glide is not a full featured graphics API such as OpenGL, PHIGS, Autodesk CDKTM, or DirectX. It does not provide high level 3D graphics operations such as transformations, display list management, or light source shading. Glide specifically implements only those operations that are natively supported by the Voodoo Graphics hardware. In general, Glide does not implement any functions that do not directly access a Voodoo Graphics subsystem's memory or registers." - 3Dfx

This means is that you have to understand 3D graphics and algorithms to program 3D effects in Glide.  Basically, only the inner code of a two-dimensional 3-sided polygon rendering procedure is performed by the graphics card for you.

 

Screenshots:

Screenshot descriptions, in order: 1) Flat Shading, 2) Specular Highlights / Gouraud Shading / Texture Mapping, 3) Environment Mapping / Gouraud Shading, 4) Object Wave / Gouraud Shading / Texture Mapping, 5) 3D Parameterization / Environment Mapping / Gouraud Shading, 6) Phong Shaded Specular Highlights / Gouraud Shading.

 

Special Thanks:

Special thanks goes to the following people and companies which helped make "To Be Continued..." a reality.  It can be shocking how much actual work goes into the production of even the simplest application.

 

Old Notes:

Old notes by myself, posted on matthewdoucette.com before the page you are reading now existed.

These are examples of my real-time graphics programming using 3D Accelerated graphics cards. Specifically, I programmed in Glide for 3Dfx based cards. Through the use of Glide Wrappers (also known as 3Dfx Wrappers) my work will now play on most windows (DirectX based) systems. I suggest zeckensack's Glide wrapper. (Thanks Rolf Neuberger, for creating this wrapper which enables me to showoff my old work!) Without a glide wrapper, you could only view my work on a 3Dfx card, which you probably do not have.

"To Be Continued..." was first presented at Acadia University in April 1999 for my COMP 4983 final project. It is a real-time 3D accelerated graphic demo, entirely self taught. I coded it and Elwood (Jussi-Matti Salmela) composed the musical score ("Sick On Monday"). It showcases my abilities in real time three dimensional computer graphics rendering, 3Dfx, and music integration.

It was my first attempt at programming...
...a C/C++ program larger than one hour's work
...a 3D graphics chip, the 3Dfx Voodoo 2
...a 3D chip directly via the chips hardware registers (using Glide), not via a simplistic 3D graphics API such as DirectX. Keep in mind 3D chips do not actually do 3D calculations, other than texturing. Even the shading had to be fully coded.
...a sound system within a program.

All in all, it turned out well.

 

 

External Links:

 

 

About the Author: I am Matthew Doucette of Xona Games, an award-winning indie game studio that I founded with my twin brother. We make intensified arcade-style retro games. Our business, our games, our technology, and we as competitive gamers have won prestigious awards and received worldwide press. Our business has won $180,000 in contests. Our games have ranked from #1 in Canada to #1 in Japan, have become #1 best sellers in multiple countries, have won game contests, and have held 3 of the top 5 rated spots in Japan of all Xbox LIVE indie games. Our game engines have been awarded for technical excellence. And we, the developers, have placed #1 in competitive gaming competitions -- relating to the games we make. Read about our story, our awards, our games, and view our blog.