havoc [Sat, 16 Oct 2004 11:29:13 +0000 (11:29 +0000)]
now parses more of q3 shaders to guess at proper rendering settings for surfaces, now implemented are additive blend, deformvertexes autosprite (and autosprite2), nomipmaps, nopicmip, cull twosided/none/disable, surfaceparm nomipmap
now assumes that a q3 texture is not transparent unless it has a shader saying it is (yes shaders are now required to enable transparency in q3bsp)
now loads the texture used in the first pass of the shader if there is no texture of the same name as the shader itself
what this all means: quake3 maps look 99% correct (other than lack of animation and various shader effects)
black [Fri, 15 Oct 2004 21:18:02 +0000 (21:18 +0000)]
-Added a more descriptive comment for prvm_edict_t::p
-Added 3 new builtins to the new VM: ftoe, etof, parseentitydata
-Changed the Win32 driver to reuse the GL hDC if possible instead of
calling GetDC and ReleaseDC every frame.
havoc [Fri, 15 Oct 2004 07:08:12 +0000 (07:08 +0000)]
now shows status messages in join game menu when a server is typed in manually (it was only showing them in the server list, oops), also added additional status messages
havoc [Fri, 15 Oct 2004 06:53:41 +0000 (06:53 +0000)]
revert an optimization to shadow volume generation that saved a little cpu time but cost a lot of gpu fillrate, and caused shadows to randomly invert sometimes
molivier [Wed, 13 Oct 2004 07:03:57 +0000 (07:03 +0000)]
Lots of minor fixes and improvements to the sound engine, plus a few more important changes:
- moved the internal structures and API into a separate file (snd_main.h)
- added a lock mecanism on SFXs to free them as soon as they're no longer used
- simplified the sound API
- minor fixes and comment changes here and there
- independent sound volume for fake CD tracks
- updated MSVC and Dev-C++ project files accordingly
- removed unused functions
- added a SFX flag to make sure the engine complains at most one time for each missing sound file
- made the SFX list a linked list to remove the hardcoded limit for the number of SFX a client can handle
- changed the way ambient sounds are managed to be more consistent with the new API
- factorized some code
- removed the useless IN_Accumulate in the Win32 specific code
- removed the table for 8bit sound mixing (snd_scaletable)
black [Tue, 12 Oct 2004 19:08:30 +0000 (19:08 +0000)]
-Its now possible to add support for other edict_private structs easily.
(Note: You have to derive them by composition from the original one -
e.g. struct server_edict_private_s { prvm_edict_private_t base; ... };
or just copy the elements from prvm_edict_private_t into the new struct -
and add them to the anonymous union p in prvm_edict_t.)
havoc [Tue, 12 Oct 2004 17:27:06 +0000 (17:27 +0000)]
allow invalid skin numbers on entities using tenebrae dlights (falling back to the model's skin 0 for actual rendering, but using the skin number for a dlight cubemap)
havoc [Sat, 9 Oct 2004 02:03:39 +0000 (02:03 +0000)]
added SV_EntitiesInBox function to find entities within a box, merging the box testing in the trigger/trace code, and also greatly optimized PF_findradius using this function
havoc [Sat, 9 Oct 2004 01:56:14 +0000 (01:56 +0000)]
fixed reconnect command which was being ignored by the client (forgot that it doesn't know what came from the client console and what came from the server, so disabling it in the client console was a bad idea)
havoc [Fri, 8 Oct 2004 20:11:04 +0000 (20:11 +0000)]
got rid of cl_nodelta cvar (it has never been useful, and rarely worked)
got rid of ackframenum -1 handling
removed ackframenum from entityframe4 and entityframe5 databases as they didn't use it for anything anyway (it is used only temporarily inside the AckFrame functions)
havoc [Fri, 8 Oct 2004 19:39:47 +0000 (19:39 +0000)]
fixed constant resetting of animation interpolation on entities that just spawned (fixes framegroup animation problems on non-static entities that don't change much)
changed movement interpolation to better handle every-other-frame updates which tend to happen with rate limiting
havoc [Fri, 8 Oct 2004 04:31:06 +0000 (04:31 +0000)]
cleaned up Host_Say to not process the message (MUCH simpler and I didn't trust that code anyway), fixed crash with fromServer messages (it was not checking teamonly, save is not a valid edict)
havoc [Mon, 4 Oct 2004 14:04:05 +0000 (14:04 +0000)]
NUM_FOR_EDICT now casts to int so that it never returns a 64bit integer on 64bit compiles which sometimes end up getting passed to printf with the wrong format...
sped up nexuiz rtlights benchmark by 4% by optimizing box cull on models to skip triangle box cull when surface box is entirely inside light box
restructured R_Shadow_ConstructShadowVolume loops a bit to make for less stalls, this seems to have only netted a 0.5% speed gain or so
removed a few fields from q3msurface_t
added a facelist to each q3mtexture_t so that the renderer can build a list of faces of the same texture without any face->texture comparisons
rewrote R_Q3BSP_DrawSky and R_Q3BSP_Draw, this improved a nexuiz timedemo with no rtlights by 116%
recalculate model->brushq3.num_leafs during loading because some broken q3map/q3map2 compiler versions actually count submodels as leafs in the bsp file
added r_rtworld, r_rtworldshadows, r_rtdlight, r_rtdlightshadows, and r_lightmapintensity cvars to greatly clean up the handling of the various rtlight/normal rendering modes
ifixed lighting problems on transparent alias models in r_shadow_realtime_world mode with r_shadow_realtime_world_lightmaps < 1 (note: still does not use the rtlights entities, just bsp model light queries like lightmap mode uses)
cleaned up handling regarding RENDER_LIGHT, RENDER_SHADOW, EF_ADDITIVE, alpha, r_fullbright, RENDER_EXTERIORMODEL, and model->flags (now the EF_ADDITIVE and EF_FULLBRIGHT flags were moved to model->flags2)
tag children now inherit RENDER_EXTERIORMODEL from their parent so you can simply attach an external weapon model to the player model and it will appear/disappear according to chase_active appropriately
fix R_Shadow_UpdateWorldLight (used by editing commands) to set cubemap even if it's an empty string, otherwise it's impossible to remove a cubemap on a light
added a Mod_BuildNormals function to accelerate vertex lighting which doesn't need texture vectors
moved vertex blending function from gl_models.c to model_alias.c and renamed accordingly
model loader now compiles frame zero into raw arrays because most models are not animated, this speeds up non-animated models, and anything else idling on frame 0, this eliminates vertex processing in many cases