havoc [Fri, 28 Oct 2005 05:44:11 +0000 (05:44 +0000)]
tweaked GLSL lighting shader to get a bit more performance (at least 7%) on GF6 by making all variables half precision except TexCoord, hopefully also helps GFFX
havoc [Wed, 26 Oct 2005 10:13:00 +0000 (10:13 +0000)]
replaced CL_PointQ1Contents with longer calls to contents conversion and CL_PointSuperContents
changed CL_PointSuperContents to a #define calling SV_Move directly as an optimization
havoc [Wed, 26 Oct 2005 02:02:49 +0000 (02:02 +0000)]
reverted bsp recursion changes (back to the BoxOnPlaneSide method) because the skipping of solid leafs in node bounding box generation was completely breaking q3bsp collisions, and without the reduced node boxes the bsp recursion code runs horribly slow for unknown reasons
havoc [Mon, 24 Oct 2005 04:42:22 +0000 (04:42 +0000)]
moved d_lightstylevalue into r_refdef.lightstyle
moved r_dlights into r_redef.lights and made it an array of pointers into cl_dlights to save memory and time
merged R_UpdateLights into CL_DecayLights and renamed it CL_UpdateLights
renamed R_RTLight_UpdateFromDLight to R_RTLight_Update and made it take only the dlight pointer
implemented cl_activedlights variable to prevent scanning whole MAX_DLIGHTS range every frame
havoc [Mon, 24 Oct 2005 04:28:49 +0000 (04:28 +0000)]
fixed a flaw in Mod_Q1BSP_RecursiveRecalcNodeBBox, it was merging bounding boxes even if they came from solid leafs, which meant that the solid hull around the world was making almost all nodes have a bounding box of +-1 billion units, negating any benefit at all to node bounding boxes
10% speed gain in masque.bsp by changing pvs box checking functions to use box tests when recursing the bsp tree instead of BoxOnPlaneSide (now that the node boxes are usable)
havoc [Sun, 23 Oct 2005 20:02:31 +0000 (20:02 +0000)]
got rid of Mod_CheckLoaded, changed how model system restart works to make this work properly
disabled model purging on level change, now only the world model is unloaded, this should improve slightly load times from level to level if a model is used in an early level, then not used in the next, and then used again in the next after that, however it also increases memory usage
havoc [Sun, 23 Oct 2005 19:42:34 +0000 (19:42 +0000)]
changed network entity pvs checking to cache the cluster list (updated whenever the cull box changes), this got a 20% speed gain in masque.bsp, also rewrote much of the network entity handling code for another 1% speed gain and slight readability improvement
havoc [Sun, 23 Oct 2005 06:36:05 +0000 (06:36 +0000)]
rewrote r_speeds stats code, now uses renderstats global structure rather than individual c_ global variables, this makes maintenance a lot easier, additionally changed all the stats to be more representitive of how the engine actually works (counting entities instead of models/bmodels/sprites separately, among other changes), condensed r_speeds stats display to fewer lines
havoc [Fri, 21 Oct 2005 05:05:49 +0000 (05:05 +0000)]
made darkplaces compile successfully with g++ to test for errors C doesn't care about (result: found no actual bugs, just C++ compilers being ultra fussy)
havoc [Fri, 14 Oct 2005 07:36:45 +0000 (07:36 +0000)]
removed Lights Per Model setting from effects options menu, as it only affects .lights files now that vertex dlights are gone... leading to much confusion among users
havoc [Tue, 11 Oct 2005 10:06:10 +0000 (10:06 +0000)]
fix a stupid bug with the runes display on the hud (it was detecting rogue/hipnotic hud's by the existence of the items2 field, which due to the DP progs loader always exists)
- SFXs no longer allocate mempools, they use the sound mempool directly.
It saved 21KB and 129 mempools (from 191 to 62) in my quick test.
- removed unused function S_UnloadSound
- changed an endian test in the Ogg Vorbis code to look more coherent
changed R_TimeReport to call glFinish to improve the accuracy of the reports on each subsystem (not allowing deferred rendering - yes this knocks your framerate down a lot)
rewrote colormapping handling to store colormap_pantscolor and colormap_shirtcolor in entity_render_t rather than having the annoying palette lookups in the renderer, while doing this I removed support for fullbright rendering of colormap colors 14 and 15 (this shouldn't really affect anyone, stock quake did not even let you use these colors, and they're ugly colors anyway :)
rewrote portions of surface renderer again, to improve readability and overbright handling, this shouldn't change anything visually
use a better check for bmodels when clearing stainmaps which won't happen on old submodels (which might not be unloaded yet when this function is called)
- Updated Zlib definitions to version 1.2.3. The only difference is that
the function calling convention has changed on Win32 (previously, the
zlib DLL used WINAPI). YOU NOW NEED AN OFFICIAL "zlib1.dll" version
1.2.x instead of your old "zlib.dll" (get it from http://www.zlib.net/).
If you still want to use a DLL with the old calling convention,
uncomment line 101 and recompile (such a DLL can be found at
http://www.winimage.com/zLibDll/).
- Removed QuakeForge copyright since the last bit of QF
code was removed months ago by LordHavoc
- Changed the way we test the presence of the O_NONBLOCK flag
MCBSP version 2 loading in the engine.. Some very ugly code (will be rewritten). Also, I haven't thought of how bboxes will round to hull sizes yet, so don't even bother trying to use the format yet. Also, someone might want to add a dhullinfo_t instance in the model struct or something, so the rounding functions would be able to access the hull sizes. I'm not sure how that will all work yet.
new surface renderer, builds a layer list in R_UpdateTextureInfo, currently requires r_test to be 1 to use it, will be removing old surface renderer (still available) soon
Mac OS X OpenGL and input module, using Carbon and AGL. Still in development, but stable enough for a player to use. Notable problems and missing features: no hardware gamma support, no desktop menus, mouse movement scaling NOT disabled (please, if someone knows how to do that with Carbon, let me know), and the fact that it has only be tested on one computer so far (my iBook G4)...
removed detail texturing (it only worked in q1bsp and hlbsp maps, did not work properly with rtlights, was liked by some people and disliked by many more, and consumed some memory)
moved waterscrollmatrix handling into texture->currentexmatrix to simplify texture matrix shaders like water, and added support in R_Shadow_RenderLighting functions
changed Mod_Q3BSP_LoadEffects to allow brushindex -1 (for effects applied to the whole map), and made it use a warning instead of an error for invalid brushindex
migrated surface list iteration into the RenderLighting paths for more efficient handling of surfaces, this increased GLSL performance, and vertex lighting performance (rewrote most of it), dot3 path is still quite slow however
fix a few very small mistakes by Black and Elric: precompiler directives (#define) can not have whitespace before them, but can have whitespace after the #
Added CoreAudio (Mac OS X) sound driver. Changed / fixed a couple of Mac OS X related lines in the makefiles. The sound format is now printed at sound module startup.
split model->DrawShadowVolume into CompileShadowVolume and DrawShadowVolume to simplify things
moved ShadowMesh creation from R_RTLight_Compile to R_Q1BSP_CompileShadowVolume
split R_Shadow_RenderLighting into several functions for different paths to (very slightly) improve readability
fixed a bug introduced by recent specularscale optimizations (it wasn't being passed to RenderLighting)
removed r_shadow_realtime_world_compilelight cvar and all code relating to it (no longer compiles lighting geometry), this is necessary for proper handling of water and animated textures
migrated a lot of error handling out of R_Shadow_RenderLighting and into the loading code or DrawLight code, this makes r_shadow_realtime_world_compilelight
0 faster than it was, still not quite as fast as compilelight 1 however
New MCBSP format, used for my mod. It differs from bsp 29 in that it stores coloured lighting data in the bsp file itself, it has a different set of hulls, and a differently formatted header (I used a few hacks to pull that off without adding a new header struct... maybe be changed later).
Anyway, do NOT use this format yet! The format is WIP and backward compatibility will not be kept!
now has two precision error workaround cases rather than one, lifts have been successfully tested at 1 million frames per second
slight cleaning of some variable declarations
The broken pushers are PARTLY fixed. They will now stop when in contact with an entity and call their blocked() QC function. However they appear to have a tiny portion stuck in the player, so the developer console will still be spammed with 'player is stuck.' messages, and the player can still jump while a crusher is on his head.
Note to smart people: I'm not sure what to stick in movetype for the SV_ClipMoveToEntity calls, so I put 0 since it's not important. Maybe that should be changed to the appropriate value for the sake of Good(tm).