warp [Mon, 27 Jan 2003 09:38:31 +0000 (09:38 +0000)]
The gcc 2.95 problem was in fact OP_STORE_V doing nasty things to numbers that were not quite 'valid' floats, so we now just copy as ints.
This allows us to make the string handling /much/ cleaner again.
havoc [Mon, 27 Jan 2003 02:54:54 +0000 (02:54 +0000)]
lightning beams have been replaced with a polygon effect which renders faster than the model effect and looks... oh umm... about 100x better, old effect still available - cl_beampolygons 0 to go back to models - some r_lightningbeam_* cvars added for tweaking new effect
r_speeds now reports some realtime lighting info
shadowless light support added
(unsuccessful) attempt to fix r_drawportals by moving the call to happen whether portal rendering was used or not
comment about possible optimization to shadow volumes added (rather, inverted light volumes and how to get maximum performance from them)
light styles are now checked for validity (must be in the right number range)
tiny cleanup to cubemap name handling (cubemaps are still not actually supported)
r_editlights_rtlightcolorscale and sizescale are now applied only in LoadWorldLights and SaveWorldLights, not in light creation (also somewhat to compensate for this fact, .lights loading has been tweaked to double the brightness)
torch light colors changed (more orange)
r_editlights_spawn no longer takes parameters
r_editlights_edit now has subcommands instead of setting all properties, the commands are: origin, originx, originy, originz, move, movex, movey, movez, radius, color, style, cubemap, shadows
r_editlights_toggleshadow added (useful for point and click shadow toggling)
display overlay now shown when pointing at a light in editing mode, indicating all properties of the light
havoc [Thu, 23 Jan 2003 20:10:07 +0000 (20:10 +0000)]
entity shadow casting is now optional per entity (EF_NOSHADOW added), and special entities (static entities like torchs, and tempentities like beams) do not cast shadows
intermission player does not cast shadows and the cameraman in Nehahra movie and cinematics no longer casts shadows
havoc [Thu, 16 Jan 2003 23:53:26 +0000 (23:53 +0000)]
works with NULL worldmodel
fixed overbright lighting! (light flickering is now smooth and everything)
added r_editlights_rtlightssizescale and r_editlights_rtlightscolorscale which scale light properties when loading as well as saving (to undo the change - this can be exploited to modify all lights in the level)
reduced used area of attenuation texture a little to ensure black edges
changed defaults for attenuation texture settings and rtlights sizescale/colorscale to greatly improve performance while still looking good
now defaults to no fake bumpmapping on walls (saves texture memory and looks better to me)
havoc [Wed, 15 Jan 2003 13:05:32 +0000 (13:05 +0000)]
expanded string table offset table from 1024 to 65536, there must be a better solution than this though...
this fixes savegame loading (which allocates lots of negative string offsets)
havoc [Tue, 24 Dec 2002 23:00:59 +0000 (23:00 +0000)]
loadimagepixels is a little cleaner now (yes made cleaner by goto...) and dprints info about loaded images
critical bug in image_loadskin fixed (s->basepixels_width and height were not being set)
havoc [Sun, 22 Dec 2002 22:56:09 +0000 (22:56 +0000)]
unified model skinframe loaders used for mdl, md2, md3, and bsp textures (both external and internal where applicable)
imageskin_t and image_loadskin/image_freeskin functions added to image.[ch] for use by the unified skinframe loaders
added palette_nocolormap
split r_shadow_bumpscale cvar into r_shadow_bumpscale_bumpmap (for _bump textures) and r_shadow_bumpscale_basetexture (self explanatory)
now loads _norm normalmap textures (tenebrae compatibility)
_nmap normalmap texture support removed (it was broken in the previous release and I don't need to bog down the texture loader with even more unnecessary names)
r_shadow_lightattenuationpower added (default 2, to leave it looking identical to previous versions, this controls the falloff curve of light)
renamed detailtextures array to mod_shared_detailtextures and moved it and related code to model_shared.[ch]
removed progs/missile.mdl shadow casting check (in r_shadow_realtime mode) I had forgotten to remove before committing last time
molivier [Wed, 11 Dec 2002 17:51:31 +0000 (17:51 +0000)]
Some stupid Linux machines (i.e. Mandrake) seem to ignore their own network properties; in this case, we use the loopback address as the default one. Also, fixed an inoffensive bug when binding the UDP control socket.
havoc [Mon, 2 Dec 2002 01:52:13 +0000 (01:52 +0000)]
changed master server list around a bit (added rick.cube-sol.net and my master server as well)
master server list can now have gaps
ipaddr is now parsed from the getserversResponse properly (thanks Rick)
now reports port number in developer print for sending messages to master servers
havoc [Mon, 2 Dec 2002 01:43:50 +0000 (01:43 +0000)]
reverted to fast version of trianglefacinglight code, as it was found to be a speed gain in benchmarks compared to the light radius checking version
fixed an unitialized variable warning
havoc [Mon, 2 Dec 2002 00:42:25 +0000 (00:42 +0000)]
renamed and altered SZ_HexDumpToConsole to be Com_HexDumpToConsole which takes a qbyte * and a size, instead of a sizebuf_t
added SZ_HexDumptoConsole which just calls Com_HexDumpToConsole
havoc [Sat, 30 Nov 2002 09:44:26 +0000 (09:44 +0000)]
decals added back due to popular demand, currently not at all optimized (they're just particles) and not clipped to surfaces
cl_decals 1 to enable (this is saved to config), cl_decals_time and cl_decals_fadetime change settings for them (these are also saved to config)
redesigned particle additive flag to be a blend mode number (PBLEND_ALPHA, PBLEND_ADD, or PBLEND_MOD - for decals), lots of special hacks for the nifty new PBLEND_MOD mode
havoc [Wed, 27 Nov 2002 00:22:15 +0000 (00:22 +0000)]
changed format of aliasvertex_t to use floats (hopefully this is a speedup, it sure bloats memory use - 36 bytes each, compared to 4 bytes in mdl/md2)
corrected scale for md3 vertices mentioned in header (md3 is still not supported yet)
added some unfinished mesh structures to begin support for md3
havoc [Tue, 26 Nov 2002 20:49:13 +0000 (20:49 +0000)]
mdl and md2 vertices are now stored in a different structure called aliasvertex_t, it has all the features of mdl, md2 and md3 formats and simplifies interpolation, it also has precomputed texture vectors for faster realtime lighting.
normals are no longer interpolated if not needed (fake shadows and shadow volumes do not need them)
added VectorM, VectorMAM, VectorMAMAM and VectorMAMAMAM macros to make aliasvertex_t interpolation code more readable
havoc [Fri, 22 Nov 2002 12:43:30 +0000 (12:43 +0000)]
r_shadows is now ignored when in r_shadow_realtime mode
r_shadow_realtime 3 added (no depth test on visible shadow volumes)
visible shadow volumes now have backface culling disabled, to better demonstrate the overdraw
havoc [Wed, 20 Nov 2002 12:54:15 +0000 (12:54 +0000)]
CalcSurfaceExtents now uses surf->poly_verts instead of edges
brush model bounding box calculations are now based on meshes instead of edges
CalcSurfaceExtents has been merged into Mod_GenerateSurfacePolygon
msurface_t firstedge and numedges have been removed (they were only used for generating the polygon during loading)
shuffled around msurface_t fields in order of most common access at the top, to least common at the bottom, this is in an attempt to reduce wasted memory traffic
havoc [Wed, 20 Nov 2002 11:18:50 +0000 (11:18 +0000)]
removed all 3x4 matrix support (wasn't used, and isn't likely to ever be used)
moved Matrix4x4_Print to mathlib.[ch] because it really doesn't belong in the entirely quake-independent matrixlib.[ch]
havoc [Sat, 16 Nov 2002 12:49:34 +0000 (12:49 +0000)]
lightmap update checking is now handled very differently; each brush model has a set of lightmap chains for each light style, and they are marked if the light style's value changes, similarly dlights mark surfaces they touch as well... both use surf->cached_dlight... this doesn't seem to be a speed gain (or loss) at present, but allows further restructuring which should be a speed gain
havoc [Sat, 16 Nov 2002 01:24:03 +0000 (01:24 +0000)]
rewrote how texture chains are handled, they are now stored outside the surfaces, and are rebuilt as the player moves through the world (bmodel texture chains are just left untouched)
good efficiency improvement I think
havoc [Sun, 10 Nov 2002 05:03:42 +0000 (05:03 +0000)]
added Nexiuz TE_ effects (prefixed TE_TEI_) and Nexiuz plasma trail (an override for EF_BRIGHTFIELD)
Nexiuz mode disables fullbrights
reshaped some of the particle structure (flags is gone, broken apart into separate fields again)
added tex_beam (which uses a separate texture instead of the particle font because it needs to repeat)
simplified some of the texture font generation (tex_ variables now indicate where to put the images in the texture)
now resets trail positions if entity was not active in previous frame
now gives packet dump when Host_Error is called during client message parsing code
now frees the model(s) being loaded when Host_Error is called during model loading code
removed modelflush command because it crashes the realtime lighting code (which points to leafs and surfaces in the world model, a problem which does not exist with r_restart and vid_restart)
R_Stain and R_CalcBeamVerts now use const where appropriate
havoc [Fri, 8 Nov 2002 23:26:54 +0000 (23:26 +0000)]
Elric's changes:
JPEG texture loading using libjpeg (entirely optional at runtime - if not present, it won't load it)
gl_extensionfunctionlist_t is now renamed dllfunction_t and part of a shared system for library opening/function retrieval (functions Sys_LoadLibrary, Sys_GetProcAddress, Sys_UnloadLibrary - for this the library handles are considered void *'s)
LordHavoc's changes:
fixed libjpeg support in non-win32 by using jpeglib.h - honors jpeglib.h's idea of boolean - Linux libjpeg is compiled with boolean as int, unlike windows where it is apparently byte - unfortunately this also means you need libjpeg-devel installed to compile it in non-win32, not sure what can be done about this (but most people seem to have that anyway...)
looks for libjpeg.so.62 instead of libjpeg.so
havoc [Thu, 7 Nov 2002 20:50:05 +0000 (20:50 +0000)]
glossmap textures are now brighter (no change to forced gloss brightness)
now clears lights when reloading lights
r_editlights_quakelightsizescale cvar added, default 0.8, controls size of lights imported from maps, gets a major speed gain but makes the map a little darker
R_Shadow_NewWorldLight now checks if radius or color is too dim and won't spawn such lights
in editing mode the centers of lights are visible now (as crosshair images)
light selection is now done a bit differently - the more precisely you point at a light, the higher it's rating gets, sometimes surpassing the closer lights in the area
havoc [Mon, 4 Nov 2002 01:09:33 +0000 (01:09 +0000)]
now clears stencil to 128 instead of 0, this avoids problems with arbitrary incr/decr orders
stencil shadows are now always erased by glClear, never by drawing again, removes r_shadow_erasebydrawing cvar
shadow volumes now have a nudge away from the surface that cast them, this is controlled by the r_shadow_shadownudge cvar (default 1 unit), avoids rare z fighting issues
shadow volume projection distance is now not infinite for alias model volumes, because they are more well-behaved than the world shadows...
msurface_t poly_radius and poly_radius2 removed
now validates elements in more parts of loading (hoped this would reveal a model shadow bug, but it didn't)
Mod_ShadowMesh_AddVertex now uses a hash table search to speed up static shadow volume building (unfortunately this doesn't seem to be the real speed problem)
removed ALLOCMESHINPIECES option from Mod_ShadowMesh code
removed non-PRECOMPUTEDSHADOWVOLUMES option from static shadow volume creation
removed some unused variables