havoc [Fri, 6 Nov 2009 12:33:31 +0000 (12:33 +0000)]
added fogging info to rsurface state so model scaling applies to fog
cleanup of EF_ bit checks in renderer - now only uses RENDER_ flags
eliminated reliance on rsurface.entity in most rendering code, now
mirrors the few important fields in rsurface state
havoc [Fri, 6 Nov 2009 11:36:27 +0000 (11:36 +0000)]
reworked R_SkinFrame_Purge handling to encapsulate all modules, not just
the model system, this allows skinframes to be persistent across levels
without being associated with a model
divverent [Thu, 5 Nov 2009 21:33:03 +0000 (21:33 +0000)]
support for "realtime world/dynamic darks". Just for fun. Should impact nothing else, as it is just removing one check and adding a special case for negative light color values, which should be never happening in existing code.
divverent [Tue, 3 Nov 2009 21:12:19 +0000 (21:12 +0000)]
hide private cvars from the output of cvar name and cvarlist commands to prevent password sniffing by evil CSQC
tab completion still shows their value because that cannot be triggered by CSQC code
divverent [Tue, 3 Nov 2009 21:04:39 +0000 (21:04 +0000)]
first test of multi-account rcon:
rcon_password "account1:1234 account2:2345"
Any of the space separated passwords can be matched - the string before the :
in each 'password' is printed to the log. So if that is set, clients can send
commands both with rcon_password "account1:1234" as well as with rcon_password
"account2:2345".
Fully backwards compatible: if rcon_password contains no space, user name
printing is not performed to keep the logs clean.
Also supported for rcon_restricted of course.
NOTE: anyone with rcon_password can read the passwords of the others by simply
sending the command "rcon_password". Of course this will get logged, but makes
all other passwords pointless. Better use this system only for RESTRICTED rcon,
is what I am saying. And WATCH YOUR LOGS.
divverent [Sat, 24 Oct 2009 14:27:02 +0000 (14:27 +0000)]
ODE code cleanup; WARNING: interface change. Springs done with movedir need to be changed from movedir "x y z" to "x z 0" in your maps (the parameter y was previously unused).
divverent [Fri, 23 Oct 2009 07:07:42 +0000 (07:07 +0000)]
speed up ODE by not creating bodies for non-physics entities any more (only creating geoms now); fix speed limit code to no longer cause "butterfly flying"
vortex [Thu, 22 Oct 2009 22:54:35 +0000 (22:54 +0000)]
hacky and experimental DP_LIGHTSTYLE_STATICVALUE extension, allows alternative 'static' lightstyle syntax : "=value", examples: "=0.5", "=2.0", "=2.75". Could be safely used on CSQC side, but SVQC use is limited - other engines connecting to such server will misunderstand this style definition.
divverent [Thu, 22 Oct 2009 08:58:55 +0000 (08:58 +0000)]
due to huge slowdowns even in non-ODE using games (probably from body syncing), turn off ODE_DYNAMIC by default again until this is solved (e.g. by performing no ODE stuff if there is no single MOVETYPE_PHYSICS ent)
divverent [Thu, 22 Oct 2009 08:01:15 +0000 (08:01 +0000)]
make springs use fps- and physics-engine independent movedir values:
_x = spring constant (also applies to internal constraints), set to -1 for "ultra-hard" joint
_y = maximum spring force to apply (0 = no spring)
_z = dampening (only works if _y is not 0)
divverent [Thu, 22 Oct 2009 07:49:55 +0000 (07:49 +0000)]
experimental support for springs:
movedir_x = joint CFM value (works for non-springs too)
movedir_y = spring force
movedir_z = spring ERP value
But maybe we should, instead of raw CFM and ERP, supply spring constant and dampening coefficient (see http://www.ode.org/old_list_archives/2006-January/017614.html)?
divverent [Thu, 22 Oct 2009 07:19:57 +0000 (07:19 +0000)]
change cl_lerping interpolation model from euler angles interpolation to forward/up vector interpolation to prevent problems near the singularity of euler angles
divverent [Thu, 22 Oct 2009 06:42:34 +0000 (06:42 +0000)]
ODE: joints
fields: jointtype, origin, angles, and depending on joint type, velocity as secondary axis
also, clean up pitchsign code to make ODE work with bmodels
havoc [Tue, 20 Oct 2009 14:53:52 +0000 (14:53 +0000)]
removed .axis_forward, .axis_left, .axis_up, .spinvelocity, now the only
new field is .mass
implemented a "hands off" approach to entity->rigidbody property
transfer, it should only lose precision when the QC edits something
havoc [Tue, 20 Oct 2009 10:36:47 +0000 (10:36 +0000)]
added automatic conversion from legacy entity angles/avelocity to
axis_*/spinvelocity for SOLID_PHYSICS_* types
use #ifdef ODE_DYNAMIC checks instead of #ifndef ODE_STATIC
havoc [Mon, 19 Oct 2009 22:29:30 +0000 (22:29 +0000)]
fix a crash when r_shadow_lightattenuation* cvars are changed which was
not freeing shadowmaps before freeing the texture pool
fix a bug where flickering/switchable lights always showed coronas
havoc [Fri, 16 Oct 2009 18:31:38 +0000 (18:31 +0000)]
added r_shadow_dot3 cvar to control whether GL1.3 hardware uses dot3
bumpmapping or not, since on older hardware it can be quite demanding it
defaults off
changed default of gl_combine back to 1 now that the only expensive
feature (dot3 bumpmapping) is on a separate cvar
havoc [Fri, 16 Oct 2009 15:28:36 +0000 (15:28 +0000)]
reorganized sv.writeentitiestoclient handling of Mod_CanSeeBox, no
longer tests player prediction for every entity, reworked to accommodate
support for portals and other remote cameras at some point in the future
added mod_q3bsp_tracelineofsight_brushes cvar (defaults to 0)
added sv_cullentities_trace_entityocclusion cvar (defaults to 0) which
enables a form of visibility culling even in entirely dynamic scenes
(for example instanced buildings)
these cvars allow much more aggressive culling at a higher cost
havoc [Fri, 16 Oct 2009 15:07:57 +0000 (15:07 +0000)]
changed handling of forbidden world writes - they are now only a
warning, and still perform the actual write, additionally the check has
been moved from OP_ADDRESS to OP_STOREP_* and now prints what field is
being written
changed the nature of pointer fields (which are only written by
OP_ADDRESS and read by OP_STOREP_*) to use an index (like field offsets)
instead of a byte offset, this made it a little easier to print the
field offset on world write warnings
havoc [Wed, 14 Oct 2009 09:20:11 +0000 (09:20 +0000)]
fixed bug with gl_paranoid 1 when gl_vbo is 0 where element3s contained
no valid triangles because they were not initialized by Mod_BuildVBOs
moved unfinished OBJ loader from alias code to brush code
eihrul [Mon, 12 Oct 2009 20:03:55 +0000 (20:03 +0000)]
disabled old shadowmap lod formula entirely
renamed r_shadow_shadowmapping_precision cvar to r_shadow_shadowmapping_depthbits
r_shadow_shadowmapping_precision cvar now describes the ratio of shadowmap texels to world units
vortex [Mon, 12 Oct 2009 19:30:54 +0000 (19:30 +0000)]
Experimental r_shadow_shadowmapping_quality cvar which makes a lightradius-based shadowmap resolution calculation instead of LOD'ed one. Quality 1 will make shadowmapres 200 for light with radius 200, quality 0.5 will make 100 for same light. LOD is used, but in other manner, currently no parms for it.