Glquake v0.99, Quake v1.09 release notes | |
3dfx owners -- read the 3dfx.txt file. | |
On a standard OpenGL system, all you should need to do to run glquake is put | |
glquake.exe in your quake directory, and run it from there. DO NOT install | |
the opengl32.dll unless you have a 3dfx! Glquake should change the screen | |
resolution to 640*480*32k colors and run full screen by default. | |
If you are running win-95, your desktop must be set to 32k or 64k colors | |
before running glquake. NT can switch automatically. | |
Theoretically, glquake will run on any compliant OpenGL that supports the | |
texture objects extensions, but unless it is very powerfull hardware that | |
accelerates everything needed, the game play will not be acceptable. If it | |
has to go through any software emulation paths, the performance will likely | |
by well under one frame per second. | |
3dfx has provided an opengl32.dll that implements everything glquake needs, | |
but it is not a full opengl implementation. Other opengl applications are | |
very unlikely to work with it, so consider it basically a "glquake driver". | |
See the encluded 3dfx.txt for specific instalation notes. 3dfx can only run | |
full screen, but you must still have your desktop set to a 16 bit color mode | |
for glquake to start. | |
resolution options | |
------------------ | |
We had dynamic resolution changing in glquake for a while, but every single | |
opengl driver I tried it on messed up in one way or another, so it is now | |
limited to startup time only. | |
glquake -window | |
This will start glquake in a window on your desktop instead of switching the | |
screen to lower resolution and covering everything. | |
glquake -width 800 -height 600 | |
Tries to run glquake at the specified resolution. Combined with -window, it | |
creates a desktop window that size, otherwise it tries to set a full screen | |
resolution. | |
You can also specify the resolution of the console independant of the screen | |
resolution. | |
glquake -conwidth 320 | |
This will specify a console resolution of 320 by 240 (the height is | |
automatically determined by the default 4:3 aspect ratio, you can also | |
specify the height directly with -conheight). | |
In higher resolution modes such as 800x600 and 1024x768, glquake will default | |
to a 640x480 console, since the font becomes small enough at higher | |
resolutions to become unreadable. If do you wish to have a higher resolution | |
console and status bar, specify it as well, such as: | |
glquake -width 800 -height 600 -conwidth 800 | |
texture options | |
--------------- | |
The amount of textures used in the game can have a large impact on performance. | |
There are several options that let you trade off visual quality for better | |
performance. | |
There is no way to flush already loaded textures, so it is best to change | |
these options on the command line, or they will only take effect on some of | |
the textures when you change levels. | |
OpenGL only allows textures to repeat on power of two boundaries (32, 64, | |
128, etc), but software quake had a number of textures that repeated at 24 | |
or 96 pixel boundaries. These need to be either stretched out to the next | |
higher size, or shrunk down to the next lower. By default, they are filtered | |
down to the smaller size, but you can cause it to use the larger size if you | |
really want by using: | |
glquake +gl_round_down 0 | |
This will generally run well on a normal 4 MB 3dfx card, but for other cards | |
that have either worse texture management or slower texture swapping speeds, | |
there are some additional settings that can drastically lower the amount of | |
textures to be managed. | |
glquake +gl_picmip 1 | |
This causes all textures to have one half the dimensions they otherwise would. | |
This makes them blurry, but very small. You can set this to 2 to make the | |
textures one quarter the resolution on each axis for REALLY blurry textures. | |
glquake +gl_playermip 1 | |
This is similar to picmip, but is only used for other players in deathmatch. | |
Each player in a deathmatch requires an individual skin texture, so this can | |
be a serious problem for texture management. It wouldn't be unreasonable to | |
set this to 2 or even 3 if you are playing competatively (and don't care if | |
the other guys have smudged skins). If you change this during the game, it | |
will take effect as soon as a player changes their skin colors. | |
GLQuake also supports the following extensions for faster texture operation: | |
GL_SGIS_multitexture | |
Multitextures support allows certain hardware to render the world in one | |
pass instead of two. GLQuake uses two passes, one for the world textures | |
and the second for the lightmaps that are blended on the textures. On some | |
hardware, with a GL_SIGS_multitexture supported OpenGL implementation, this | |
can be done in one pass. On hardware that supports this, you will get a | |
60% to 100% increase in frame rate. Currently, only 3DFX dual TMU cards | |
(such as the Obsidian 2220) support this extension, but other hardware will | |
soon follow. | |
This extension will be autodetected and used. If for some reason it is not | |
working correctly, specify the command line option "-nomtex" to disable it. | |
GL_EXT_shared_texture_palette | |
GLQuake uses 16bit textures by default but on OpenGL implementations | |
that support the GL_EXT_shared_texture_palette extension, GLQuake will use | |
8bit textures instead. This results in using half the needed texture memory | |
of 16bit texture and can improve performance. This is very little difference | |
in visual quality due to the fact that the textures are 8bit sources to | |
begin with. | |
run time options | |
---------------- | |
At the console, you can set these values to effect drawing. | |
gl_texturemode GL_NEAREST | |
Sets texture mapping to point sampled, which may be faster on some GL systems | |
(not on 3dfx). | |
gl_texturemode GL_LINEAR_MIPMAP | |
This is the default texture mode. | |
gl_texturemode GL_LINEAR_MIPMAP_LINEAR | |
This is the highest quality texture mapping (trilinear), but only very high | |
end hardware (intergraph intense 3D / realizm) supports it. Not that big of | |
a deal, actually. | |
gl_finish 0 | |
This causes the game to not issue a glFinish() call each frame, which may make | |
some hardware run faster. If this is cleared, the 3dfx will back up a number | |
of frames and not be very playable. | |
gl_flashblend 0 | |
By default, glquake just draws a shaded ball around objects that are emiting | |
light. Clearing this variable will cause it to properly relight the world | |
like normal quake, but it can be a significant speed hit on some systems. | |
gl_ztrick 0 | |
Glquake uses a buffering method that avoids clearing the Z buffer, but some | |
hardware platforms don't like it. If the status bar and console are flashing | |
every other frame, clear this variable. | |
gl_keeptjunctions 0 | |
If you clear this, glquake will remove colinear vertexes when it reloads the | |
level. This can give a few percent speedup, but it can leave a couple stray | |
blinking pixels on the screen. | |
novelty features | |
---------------- | |
These are some rendering tricks that were easy to do in glquake. They aren't | |
very robust, but they are pretty cool to look at. | |
r_shadows 1 | |
This causes every object to cast a shadow. | |
r_wateralpha 0.7 | |
This sets the opacity of water textures, so you can see through it in properly | |
processed maps. 0.3 is very faint, almost like fog. 1 is completely solid | |
(the default). Unfortunately, the standard quake maps don't contain any | |
visibility information for seeing past water surfaces, so you can't just play | |
quake with this turned on. If you just want to see what it looks like, you | |
can set "r_novis 1", but that will make things go very slow. When I get a | |
chance, I will probably release some maps that have been processed properly | |
for this. | |
r_mirroralpha 0.3 | |
This changes one particular texture (the stained glass texture in the EASY | |
start hall) into a mirror. The value is the opacity of the mirror surface. | |