havoc [Mon, 15 Mar 2004 07:00:14 +0000 (07:00 +0000)]
3d texcoords now must use rmeshstate_t.pointer_texcoord3f instead of pointer_texcoord, this allows texture matrices and such
implemented (broken and disabled) texture matrix optimizations in R_Shadow_RenderLighting, I'm still trying to figure out what is wrong
havoc [Mon, 15 Mar 2004 05:27:02 +0000 (05:27 +0000)]
reorganized texture setup code in R_Shadow_RenderLighting to be cleaner, fixed CVA locking in voodoo1/2 paths (it was locked while the color array update was happening, no good)
havoc [Sun, 14 Mar 2004 05:31:45 +0000 (05:31 +0000)]
got rid of Cshader system as it really wasn't helping anything, now all surfaces types use one R_DrawSurfaceChain function, which calls the appropriate passes
havoc [Sat, 13 Mar 2004 23:30:20 +0000 (23:30 +0000)]
merged static and dynamic rtlight handling almost entirely (even uses DrawShadowVolume and DrawLight to generate cached meshes - however this currently lost the r_shadow_portallight optimizations)
added a surfacelist to model_t containing surface indices for each submodel
merged R_Shadow_DiffuseLighting and R_Shadow_SpecularLighting into R_Shadow_RenderLighting (which takes a lighting parameter containing LIGHTING_DIFFUSE and LIGHTING_SPECULAR flags)
commented out cullradius/cullradius2 in rtlight structs because they weren't used
havoc [Sat, 13 Mar 2004 23:26:17 +0000 (23:26 +0000)]
added texmatrix[] to rmeshstate_t and removed R_Mesh_TextureMatrix function
reorganized water rendering code to make it a lot less confusing (especially the r_watershader code)
molivier [Thu, 11 Mar 2004 08:08:04 +0000 (08:08 +0000)]
Changed the way DP detects and handles the CPU endianess. All the tests are done at compile time now. Tested on Win32 (MSVC6 and MinGW32), Linux and NetBSD; should also work on the other BSDs.
havoc [Wed, 10 Mar 2004 21:40:02 +0000 (21:40 +0000)]
now calls GL_LockArrays manually around each R_Mesh_Draw call instead of locking inside R_Mesh_Draw, so some things can render the same geometry repeatedly (shadow volumes and lighting) without unlocking)
havoc [Wed, 10 Mar 2004 07:43:41 +0000 (07:43 +0000)]
GL_Color no longer interacts with GL_ColorPointer (so be sure to set GL_ColorPointer if it have been left on something you don't want)
GL_ColorPointer now resets glColor when array is turned off, because glColor gets trashed while color array is on (so sayeth the GL spec, and so proveth the NVIDIA driver)
havoc [Wed, 10 Mar 2004 07:14:24 +0000 (07:14 +0000)]
now supports GL_EXT_stencil_two_side extension (found on NV30/R300 class cards), this halves the polycount thrown at the card for shadow volumes, which got me a 77% speed gain on my GFFX5200
havoc [Wed, 10 Mar 2004 05:51:53 +0000 (05:51 +0000)]
added showtime/showtime_format and showdate/showdate_format cvars, and moved the fps display to bottom right corner (above the optional time/date displays)
havoc [Wed, 10 Mar 2004 03:28:04 +0000 (03:28 +0000)]
added Print versions of Printf functions and made all calls that do not need formating use the Print versions; yes this is a cosmetic cleanup, prints are too rare to have any performance improvements.
havoc [Tue, 9 Mar 2004 20:35:51 +0000 (20:35 +0000)]
worked around curve collision problems by doing special sort-of-axial edge planes on triangle collisions (ultimately the collision routine needs to do edge/edge collisions somehow to make this unnecessary)
now snaps triangle mesh vertices to 1/32 of a unit precision to keep the plane calculations a little more accurate (note: this is done at collision time), although this doesn't seem to be necessary
collision nudge values are now configurable via cvars (collision_ cvars, warning: things tend to break if startnudge != endnudge, and enternudge should be the same as leavenudge)
havoc [Wed, 3 Mar 2004 15:26:27 +0000 (15:26 +0000)]
made r_showtris transparent (quite faint actually), color coded different types of geometry, and now shows all tris (even hud), cleaned up a few qgl calls (GL_Clear added, etc) to make it more reliable
havoc [Tue, 2 Mar 2004 20:29:58 +0000 (20:29 +0000)]
temporarily disabled compiled rtlights (they'll make a comeback after dynamic rtlight optimizations are finished)
dynamic rtlight shadow volumes for bmodels are now generated from a single mesh for the entire model, in which only some ranges of triangles are marked, this finally cured the performance problems with dlight
s
havoc [Tue, 2 Mar 2004 00:22:31 +0000 (00:22 +0000)]
dlights using light_lev now need the PFLAG_FULLDYNAMIC flag set to operate, otherwise they are ignored, this was necessary (lights that did not remove themselves were being treated as proper dlights), it is also now more tenebrae compatible (EF_FULLDYNAMIC translated to PFLAG_FULLDYNAMIC in GAME_TENEBRAE mode)
havoc [Mon, 1 Mar 2004 18:56:32 +0000 (18:56 +0000)]
more cleanups of R_RenderScene (now r_view_ variables exist which are copied from the r_refdef fields each frame, these variables can easily be reconfigured for texture renders for mirrors or whatever)
havoc [Mon, 1 Mar 2004 04:59:51 +0000 (04:59 +0000)]
screenshots are now saved to screenshots/ and videos are now saved to video/, and both now use the name template dp%06d.tga or .jpg, GAME_FNIGGIUM uses fniggium%06d.tga or .jpg as per Sajt's request
havoc [Mon, 1 Mar 2004 03:49:14 +0000 (03:49 +0000)]
upgraded network protocol to DP5, now sends precise entity angles (except for EF_LOWPRECISION entities), this increases normal entity data by 3 bytes (18 bytes for origin+angles, was 15 bytes in DP4, still 9 bytes for EF_LOWPRECISION origin+angles), upgraded a few other parts of protocol to precise angles and/or floats as well (client data updates now use float for punchvector and velocity
)
havoc [Mon, 1 Mar 2004 01:58:02 +0000 (01:58 +0000)]
cleaned up rtlight handling, merging most code between world rtlights and dlights (which now could conceivably be compiled if static)
moved R_ShadowVolumeLighting to r_shadow.c
added RENDER_LIGHT flag to entity_render_t to make rtlighting optional per entity
havoc [Mon, 1 Mar 2004 01:46:35 +0000 (01:46 +0000)]
fixed SV_TouchAreaGrid to not crash if SV_IncreaseEdicts is called during a touch function, by making a list of edicts to touch and then running through the list afterward
havoc [Wed, 25 Feb 2004 18:41:19 +0000 (18:41 +0000)]
MOVETYPE_BOUNCE change: an explosion above gibs will now cause them to bounce into the air, rather than skidding to a halt immediately like they were doing
havoc [Sun, 22 Feb 2004 18:56:51 +0000 (18:56 +0000)]
fixed GL_Scissor call in rtlight code (apparently I need to feed it a top to bottom rectangle... ? must be something weird in the transform math as GL uses bottom to top)
made q1bsp and q3bsp a little more alike (regarding pvs clusters), now q3bsp has all the same pvs cluster fields as q3bsp
added fake lightgrid and pvs data to q3bsp loading when map is unlit or unvised respectively, this should improve internal consistency
havoc [Sat, 21 Feb 2004 21:05:21 +0000 (21:05 +0000)]
cleaned up R_RenderView setup code a bit, and shuffled SCR_CalcRefdef stuff to SCR_UpdateScreen
scissor is now on during all of R_RenderView (including rtlight portions), and GL_Scissor is used to set it instead of direct qglScissor calls, also GL_ScissorTest is used
r_farclip is now calculated without need for... just about anything, this allowed shuffling the setup code around a bit
various cleanups to allow multiple view renders per frame
added scr_zoomwindow cvars to do a (silly) zoomed view picture-in-picture overlay, it works but turned out useless in playtesting unless you want to stare at a shambler's chest... ugh
R_AnimateLight and R_BuildLightList merged to become R_UpdateLights
some setup code from R_RenderView became a new function R_UpdateWorld
GL_SetupView_ViewPort calls replaced by qglViewport calls, as it was a mostly useless wrapper