mirror of
https://git.code.sf.net/p/quake/quakeforge-old
synced 2024-12-01 07:51:07 +00:00
165 lines
6.9 KiB
Text
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.
|