havoc [Mon, 7 Nov 2005 09:35:58 +0000 (09:35 +0000)]
cleaned up R_WorldVisibility code some more and added additional documentation
renamed r_surfaceworldnode to r_useportalculling and inverted its behavior accordingly
added a special no-pvs-at-all case for floating around in the void to improve readability
havoc [Fri, 4 Nov 2005 12:32:52 +0000 (12:32 +0000)]
eliminated use of node bounding box when recursing collision traces and lights through the BSP tree, now only uses BoxOnPlaneSide approach, with an optimized axial case inlined
havoc [Tue, 1 Nov 2005 09:52:47 +0000 (09:52 +0000)]
fix dedicated server timing, now sleeps less than the full amount of time (like listen servers/clients already did) to maintain a steady framerate, also made it not sleep unless it is at least 10ms, to try to further improve the timing accuracy, thanks to GreEn`mArine for testing this change
havoc [Sat, 29 Oct 2005 10:59:10 +0000 (10:59 +0000)]
rewrote much of the voodoo/tnt rtlight path, now supports fog, and now avoids rendering any black triangles (since these cards don't have a lot of fillrate it's better to cull triangles on the cpu)
havoc [Sat, 29 Oct 2005 06:51:14 +0000 (06:51 +0000)]
converted vertex fogging to use a fogtable array which matches the fog texture
enabled fog texturing on GLSL lighting path (dot3 path and vertex path still need work)
changed EyeVector/LightVector in GLSL shader back to full fp32 precision because at fp16 the vectors were reaching infinity at only a few meters, which obviously broke fogging
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)