vortex [Sat, 31 Dec 2011 09:53:16 +0000 (09:53 +0000)]
UNMERGE! ODE stuff:
1) Cleaned up capsule/cylinder setup code. New geomtypes - axis-oriented cylinder (x, y, z) and capsule, the only difference from original cylinder/capsule is that leading axis is fixed for these types, allowing to set cylinder with length lesser than diameter. Axis oriented
capsule is not that useful (as there is no capsule which height is lesser than radius, so it's going to fix radius to match), but could be useful is some cases.
2) GEOMTYPE_TRIMESH now supports .scale and .modelscale_vec (q3map2's per-axis scale).
3) New cvar physics_ode_contact_maxpoints (default 16, can be up to 32) to control default maximum number of contact points between two objects, and new .maxcontacts entity field to control maximum number of contacts it could have with other entities, setting it to low value (5 or 10) gains speed with large stacks of GEOMTYPE_TRIMESH, but makes collision more grude, use it on debris and such stuff.
4) At engine startup, print configuration (extensions string) ODE was built with.
5) physics_ode_constantstep is rewritten to do what actually it should do - it tries to run physics with constant time step, making more ODE iterations to match frametime. So it allows to run physics at 50 FPS, 100 fps no matter what rendering fps are, with some restrictions. physics_ode_iterationsperframe has no effect when using constantstep.
6) New GEOMTYPE_NONE that makes object to be entirely ignored by ODE. Also SOLID_NOT and SOLID_TRIGGER defaults to GEOMTYPE_NONE (if geomtype is 0).
7) Added basic forces in same manner as joints (entities with .forcetype), physics_addforce() and physics_addtorgue() is now deprecated as they cant work with multiple ODE iterations per frame.
vortex [Sat, 31 Dec 2011 09:53:16 +0000 (09:53 +0000)]
UNMERGE! ODE stuff:
1) Cleaned up capsule/cylinder setup code. New geomtypes - axis-oriented cylinder (x, y, z) and capsule, the only difference from original cylinder/capsule is that leading axis is fixed for these types, allowing to set cylinder with length lesser than diameter. Axis oriented
capsule is not that useful (as there is no capsule which height is lesser than radius, so it's going to fix radius to match), but could be useful is some cases.
2) GEOMTYPE_TRIMESH now supports .scale and .modelscale_vec (q3map2's per-axis scale).
3) New cvar physics_ode_contact_maxpoints (default 16, can be up to 32) to control default maximum number of contact points between two objects, and new .maxcontacts entity field to control maximum number of contacts it could have with other entities, setting it to low value (5 or 10) gains speed with large stacks of GEOMTYPE_TRIMESH, but makes collision more grude, use it on debris and such stuff.
4) At engine startup, print configuration (extensions string) ODE was built with.
5) physics_ode_constantstep is rewritten to do what actually it should do - it tries to run physics with constant time step, making more ODE iterations to match frametime. So it allows to run physics at 50 FPS, 100 fps no matter what rendering fps are, with some restrictions. physics_ode_iterationsperframe has no effect when using constantstep.
6) New GEOMTYPE_NONE that makes object to be entirely ignored by ODE. Also SOLID_NOT and SOLID_TRIGGER defaults to GEOMTYPE_NONE (if geomtype is 0).
7) Added basic forces in same manner as joints (entities with .forcetype), physics_addforce() and physics_addtorgue() is now deprecated as they cant work with multiple ODE iterations per frame.
vortex [Sat, 31 Dec 2011 09:53:16 +0000 (09:53 +0000)]
ODE stuff:
1) Cleaned up capsule/cylinder setup code. New geomtypes - axis-oriented cylinder (x, y, z) and capsule, the only difference from original cylinder/capsule is that leading axis is fixed for these types, allowing to set cylinder with length lesser than diameter. Axis oriented
capsule is not that useful (as there is no capsule which height is lesser than radius, so it's going to fix radius to match), but could be useful is some cases.
2) GEOMTYPE_TRIMESH now supports .scale and .modelscale_vec (q3map2's per-axis scale).
3) New cvar physics_ode_contact_maxpoints (default 16, can be up to 32) to control default maximum number of contact points between two objects, and new .maxcontacts entity field to control maximum number of contacts it could have with other entities, setting it to low value (5 or 10) gains speed with large stacks of GEOMTYPE_TRIMESH, but makes collision more grude, use it on debris and such stuff.
4) At engine startup, print configuration (extensions string) ODE was built with.
5) physics_ode_constantstep is rewritten to do what actually it should do - it tries to run physics with constant time step, making more ODE iterations to match frametime. So it allows to run physics at 50 FPS, 100 fps no matter what rendering fps are, with some restrictions. physics_ode_iterationsperframe has no effect when using constantstep.
6) New GEOMTYPE_NONE that makes object to be entirely ignored by ODE. Also SOLID_NOT and SOLID_TRIGGER defaults to GEOMTYPE_NONE (if geomtype is 0).
7) Added basic forces in same manner as joints (entities with .forcetype), physics_addforce() and physics_addtorgue() is now deprecated as they cant work with multiple ODE iterations per frame.
vortex [Wed, 21 Dec 2011 15:20:10 +0000 (15:20 +0000)]
Cumulative patch:
Fix RF_MODELLIGHT (was broken and dont work same way engine does it).
Fix bug in physics_ode_constantstep 1 (integer division, huh).
Added new geomtype field for ODE physics - sets collision shape, SOLID_PHYSICS_ are not deprecated (but keeped for compatibility reasons), as geomtype is a more correct way to set collision shape (allows to set both SOLID_CORPSE and trimesh collisions for instance).
Fixed support of custinfoparms.txt as some recent change in shader code seemed to broke it.
vortex [Sat, 31 Dec 2011 09:53:16 +0000 (09:53 +0000)]
ODE stuff:
1) Cleaned up capsule/cylinder setup code. New geomtypes - axis-oriented cylinder (x, y, z) and capsule, the only difference from original cylinder/capsule is that leading axis is fixed for these types, allowing to set cylinder with length lesser than diameter. Axis oriented
capsule is not that useful (as there is no capsule which height is lesser than radius, so it's going to fix radius to match), but could be useful is some cases.
2) GEOMTYPE_TRIMESH now supports .scale and .modelscale_vec (q3map2's per-axis scale).
3) New cvar physics_ode_contact_maxpoints (default 16, can be up to 32) to control default maximum number of contact points between two objects, and new .maxcontacts entity field to control maximum number of contacts it could have with other entities, setting it to low value (5 or 10) gains speed with large stacks of GEOMTYPE_TRIMESH, but makes collision more grude, use it on debris and such stuff.
4) At engine startup, print configuration (extensions string) ODE was built with.
5) physics_ode_constantstep is rewritten to do what actually it should do - it tries to run physics with constant time step, making more ODE iterations to match frametime. So it allows to run physics at 50 FPS, 100 fps no matter what rendering fps are, with some restrictions. physics_ode_iterationsperframe has no effect when using constantstep.
6) New GEOMTYPE_NONE that makes object to be entirely ignored by ODE. Also SOLID_NOT and SOLID_TRIGGER defaults to GEOMTYPE_NONE (if geomtype is 0).
7) Added basic forces in same manner as joints (entities with .forcetype), physics_addforce() and physics_addtorgue() is now deprecated as they cant work with multiple ODE iterations per frame.
vortex [Wed, 21 Dec 2011 15:20:10 +0000 (15:20 +0000)]
Cumulative patch:
Fix RF_MODELLIGHT (was broken and dont work same way engine does it).
Fix bug in physics_ode_constantstep 1 (integer division, huh).
Added new geomtype field for ODE physics - sets collision shape, SOLID_PHYSICS_ are not deprecated (but keeped for compatibility reasons), as geomtype is a more correct way to set collision shape (allows to set both SOLID_CORPSE and trimesh collisions for instance).
Fixed support of custinfoparms.txt as some recent change in shader code seemed to broke it.
vortex [Thu, 8 Dec 2011 23:22:00 +0000 (23:22 +0000)]
ODE: experimental 'erp' field for per-entity control of Error Restitution (was only controlled globally by cvar). For more sharp collisions it helps to set high ERP for small objects and low or 0 on big ones (as high ERP on large and high-mass objects tends to explode pretty badly).
vortex [Thu, 8 Dec 2011 23:22:00 +0000 (23:22 +0000)]
ODE: experimental 'erp' field for per-entity control of Error Restitution (was only controlled globally by cvar). For more sharp collisions it helps to set high ERP for small objects and low or 0 on big ones (as high ERP on large and high-mass objects tends to explode pretty badly).
divverent [Sat, 3 Dec 2011 08:53:50 +0000 (08:53 +0000)]
new cl_minfps logic that seems a lot more successful at attaining target fps
The new approach is quite similar to r_viewscale_fpsscaling; possibly, that
logic then can be changed to use r_refdef.view.quality instead at a later time
divverent [Sat, 3 Dec 2011 08:53:50 +0000 (08:53 +0000)]
new cl_minfps logic that seems a lot more successful at attaining target fps
The new approach is quite similar to r_viewscale_fpsscaling; possibly, that
logic then can be changed to use r_refdef.view.quality instead at a later time