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.
eihrul [Thu, 8 Oct 2009 14:43:44 +0000 (14:43 +0000)]
use R_SHADOW_SHADOWMODE_ enum for shadowmode for readability
fix regression in cubemap texturetype for shadowmapping
only use one FBO per shadowmap cubemap lod and update depth attachment per side transition
vortex [Tue, 6 Oct 2009 22:44:11 +0000 (22:44 +0000)]
Added reliable Q3BSP tangentspace/modelspace deluxemaps detection method to support q3map2 FS-R8 (and maybe other q3map2 forks). Entity loader checks for "deluxeMaps" worldspawn key. It should be '1' if deluxemaps are modelspace, and '2' for tangentspace ones. Otherwise old modelspace deluxemaps detection is used.
vortex [Sun, 4 Oct 2009 22:38:47 +0000 (22:38 +0000)]
-added game Blood Omnicide
-added r_shadow_gloss2exponent (gloss exponent for forced gloss surfaces), this don't work for Dot3 pieline however, i'm used this to make "wet surfaces when rain falls" in Blood Omnicide
-added DP_CSQC_ENTITYTRANSPARENTSORTING_OFFSET, DP_CSQC_ENTITYNOCULL, DP_CSQC_SPAWNPARTICLE. Definitions are here: http://darkmaster.quakedev.com/work/csqc_new_ext.qc
havoc [Sun, 4 Oct 2009 12:35:50 +0000 (12:35 +0000)]
added sv_gameplayfix_consistentplayerprethink which defaults on - this
cvar causes SV_Physics to call all PlayerPreThink functions, then move
all players, then call PlayerPostThink functions, then move all
entities, to improve consistency of firing/moving in multiplayer
in singleplayer this has no effect at all (because there is only one
client)