Short: GLquake & GLqwcl for WOS (MiniGL/Warp3D) Author: Christian Michael Uploader: Christian Michael (christian michael groenjord dk) Type: game/shoot Version: 1.0 Replaces: game/shoot/BlitzQuake_wos.lha Requires: PPC, 64MB RAM, WarpOS, Warp3D v4.2 Architecture: ppc-warpup BlitzQuake - GLQuake and GLQwcl ports by Christian Michael GLqwcl/GLquake for WarpOS (v1.0 - first Aminet-Release) Based on quake/quakeworld by Frank Wille and Steffen Haeuser Changes since beta4 (was 68k-only): WarpOS versions of GLquake/GLqwcl - compiled with GCC IMPORTANT: needs at least 600K stack set manually - Scripts for launching from quakedir: are included - Demo and example-serverlist for GLqwcl included Visuals: - Added R5G6B5 lightmap format for better color-resolution Enable this new lightmap with startup-parameter -lm_RGB - Discovered that additive beleding looks good on voodoo3 Additive blending for lightballs was previously disabled. Visuals (GLquake only): - Added a new parameter -litfiles (enables colored lights) Litfiles archive, gl_flashblend 0 gl_fake_multitexture 1 and r_litfiles 1 needed. - Added new cvar: gl_glows. The effects are performance degrading but looks cool. - Improved the look of fog (gl_fog 1) - Added possibility to keep lightbulb-effects during dynamic lightmapping (gl_flashblend 0) if gl_glows is enabled. For best visuals try the combination of "gl_flashblend 0", "gl_glows 1" and "gl_fake_multitexture 1", "r_litfiles 1" and the startup-parameters "-litfiles -lm_RGB" Performance: - Large general speedup (partly due to GCC) - Decided to make GL_POINTS the default primitive for particles and removed the standard method completely. - Made "r_models_maxdist" affect standard model-drawing - Replaced "r_vertexarrays 2" with "r_cull_aggressive 1" and ensured that it will only discard peripheral objects - Models: Sacrificed pr primitive shadecolor in favor of pr model shadecolor (gl_smoothmodels 0) Performance (geometrycache - GLqwcl only): - Geometrycache (-cachearrays) was rewritten and optimized to use GL_EXT_compiled_vertex_array which means almost same speed as the previous system, but with full clipping. - Reduced requirements for cache indices by a factor 5, allowing for caching all aliasmodels in the new format. The cache currently uses around 8K/modelframe for remapped geometry and indices. - model_LOD command removed. Instead, I added a possibility to use lossy compression for model-geometry, in order to boost performance. This is a very simple form of LOD reduction. It works by allowing tolerance when searching for identical vertices. It can be enabled by the parameter -geometrycompress #, where # is in the range 1 to 8. - The compiled arrays can be disabled with "gl_compiled_arrays 0", in which case it will use the standard glDrawElements pipeline (don't try - it is slower than normal vertexarrays without cache..) Bugfixes: - Fixed issues with alpha testing (ref value was too high) - Fixed broken lightmap formats (GL_LUMINANCE/GL_ALPHA) - Fixed details and controls submenus in GLquake - Fixed bounding box culling for rotating models (bug in original src) - Fixed memory bug and re-enabled default 2048 particles - Fixed some rare crashes related to the experimental guardband-clipping in MiniGL misc: - removed local transformations "gl_local_transform" since it was of lower quality and only marginally faster than the current MiniGL pipeline. Suggestions for further performance-improvements: - Rewrite model loaders for compiled-vertexarrays (See gl_rmain.c in GLqwcl src for implementation) - Rewrite inner loops in ASM (MiniGL and GLquake/GLqwcl) - Rewrite particlesystem - current is slow and looks boring Other suggestions: - Fix AHI code (copy from Frank Wille's latest source..) - Fix interpolation for shadows in GLquake - Add some new funky effects :) - Write fully OpenGL-compilant point-draw func for MiniGL - Implement HalfLife bsp (see ThomazQuake/Darkplaces)