So you'd like to try your hand at making a NPRQuake renderer. This is a fairly easy task. First of all, you must download all of the NPRQuake source that we have linked on the I want it! page. Unzip all of this source. By default, it will be unzipped to a directory called NPRQuake. The default quake renderer is called dr_default. This would be a good starting place for your renderer.

Because of some issues that we were unable to work out, the DrawSequentialPoly function is never called, so note that if you make changes here, nothing will be visibly different. This function was used for faster video cards that didn't need to have the poly draw order sorted.

There are sevaral functions that you should be interested in modifiying. The DrawGLPoly function gets called for drawing all of the polygons that actually make up the map (walls, floors, etc). In addition, there is a funciton called R_BlendLightmaps that actually gets called to render the lightmaps onto the map polys. Next there are a set of functions that pertain to drawing when underwater. Those are DrawGLWaterPoly and DrawGLWaterPolyLightmap. Next there are two more functions that relate to the drawing of the surfaces that make up the sky and the water. Those are EmitSkyPolys and EmitWaterPolys. Additionally, there are two functions that relate to the drawing of Alias models which make up the bad guys, and certain items. Those functions are GL_DrawAliasFrame and GL_DrawAliasShadow. Finally there is a function that defines how particles are drawn called R_DrawParticles. We realized that these instructions are a bit spartan and we will add to them as time permits. If you have any questions that aren't answered in the documentation please feel free to ask. Thanks.

The NPRQuake Guys.