quakeforge-old/doc/gl_notes.txt

165 lines
6.9 KiB
Text

gl_notes.txt for QuakeForge, original copyright by Id Software.
---------------------------------------------------------------
If you are running win-95, your desktop must be set to 32k or 64k colors
before running glquake. NT can switch automatically.
Theoretically, quake 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.
resolution options
------------------
quake-glx -window
This will start glquake in a window on your desktop instead of switching the
screen to lower resolution and covering everything.
glquake-glx -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.
quake-glx -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, quake 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:
quake-glx +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.
quake-glx +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.
quake-glx +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.
Quake 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. Quake 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.
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
Quake uses 16bit textures by default but on OpenGL implementations
that support the GL_EXT_shared_texture_palette extension, Quake 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_volfog .0009
Currently use with wateralpha .3 to try out the fog effect on water
surfaces. This will eventually lead to volumetric fog, stay tuned.
r_waterripple 5
Produces waves in the water surfaces.
r_waterwarp 0
Turns waterwarp effect off underwater
r_fog .0005
Makes fog based on the Exp2 equation.
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. You can find
tools for created properly vis'ed maps that will run quickly with this
turned on.
r_mirroralpha
Has been removed in Quakeforge until has been rewritten, due to poor
implimentation.