Shadow Warrior 3Dfx Notes This archive contains three files: SW 3Dfx Update - run this to update your Shadow Warrior application and create the 3Dfx app. SW 3Dfx Net Startup - use this to launch net games for SW 3Dfx. SW 3Dfx Readme - the document you are reading. To install the update, simply double click the "SW 3Dfx Update" file and select your Shadow Warrior application. This update only works on the full registered version of Shadow Warrior. A new application called Shadow Warrior 3Dfx will be created, and your normal Shadow Warrior will be left so you can still run the non-3Dfx version. To play net games in 3Dfx, drag the "SW 3Dfx Net Startup" application into your Shadow Warrior folder and use it to start net games. You must have at least 32 megs of RAM to run Shadow Warrior 3Dfx. More ram will help peformance, as 3Dfx textures are large and on a 32 meg machine they may need to be read from disk often during play. It will take a few moments the first time you start up Shadow Warrior 3Dfx for textures and animations to be converted. This only happens the first time you start up. New Keys Option-B: Turns on Bilinear filtering ("Blurry" mode) Option-P: Turns off Bilinear Filtering ("Pixelated" mode) F12: Captures the 3Dfx screen. Creates files in PICT format in the Shadow Warrior folder. Notes from 3Dfx 3Dfx Build Engine Version 1.0 Author: Scott Alden Date Created: 9/12/1997 Last Update: 11/22/1997 3Dfx Build Engine Version 1.1 update Author: Jack Mathews / 3Dfx 3Dfx Mac Build Engine 1.1 Author: Mark Adams / Westlake Interactive I had a lot of fun and challenges on working on the Build engine, not everything went as I wanted it and many things are workarounds. Sloped floors were especially fun ;-) An ideal thing to happen is this engine is converted to true polygon rendering system. This could greatly enhance the speed for the 3Dfx hardware. I currently have the raster layer of the build engine rendering spans to the 3Dfx hardware. Thus a wall that fills the entire screen would be made up of X triangles where X = the horizontal resolution of the screen. Since each wall and floor is made up of hundreds of spans, thus thousands of triangles are drawn each frame. For instance if a single wall was rendered in a frame that filled the screen, the renderer would have to draw 640 vertical triangles to draw the wall. All of the tiles in the game are downloaded to the hardware as texture maps, and the span is converted to the 3Dfx format for rendering. There are 3 types of primitives that I use: horizontal triangles for horizontal spans, vertical triangles for vertical spans, and quads for drawing unclipped sprites. Also, the lighting/palette effects that the game uses are achieved by downloading a new palette to the 3Dfx hardware. This palette downloading happens on a span by span basis. Fog and other lighting effects are all achieved by palette changing. A span based renderer is slower than the an ordinary 3D based renderer (like GLQuake) on the 3Dfx because of the conversion of spans involved. For each vertical span in a wall, the texture coords must be calculated specifically for the span, where as a regular polygon for a wall only has to provide texture coordinates at the vertices.