[x3d-public] Mantis 407: RigidBodyCollection errorCorrection and maxCorrectionSpeed field definitions
Don Brutzman
brutzman at nps.edu
Mon Jul 5 11:31:13 PDT 2021
With some effort, Dick and I improved RigidBodyCollection field definitions today.
* Mantis 407: 37.4.11 RigidBodyCollection -- Missing Definition
https://www.web3d.org/member-only/mantis/view.php?id=407
We first refined /errorCorrection/ field definition to reduce ambiguity, then attempted to add a missing definition for /maxCorrectionSpeed/ field. Prose modifications to spec appear after the following node signature.
==================================================
X3D4 Architecture, 37.4.11 RigidBodyCollection
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/rigidBodyPhysics.html#RigidBodyCollection
RigidBodyCollection : X3DChildNode {
MFNode [in] set_contacts [Contact]
SFBool [in,out] autoDisable FALSE
MFNode [in,out] bodies [] [RigidBody]
SFFloat [in,out] constantForceMix 0.0001 [0,∞)
SFFloat [in,out] contactSurfaceThickness 0 [0,∞)
SFFloat [in,out] disableAngularSpeed 0 [0,∞)
SFFloat [in,out] disableLinearSpeed 0 [0,∞)
SFTime [in,out] disableTime 0 [0,∞)
SFBool [in,out] enabled TRUE
SFFloat [in,out] errorCorrection 0.8 [0,1]
SFVec3f [in,out] gravity 0 -9.8 0
SFInt32 [in,out] iterations 10 [0,∞)
MFNode [in,out] joints [] [X3DRigidJointNode]
SFFloat [in,out] maxCorrectionSpeed -1 [0,∞) or -1
SFBool [in,out] preferAccuracy FALSE
SFNode [] collider NULL [CollisionCollection]
}
[...]
The errorCorrection field is a rate factor that describes how quickly the system should resolve intersection errors due to floating point inaccuracies. This value ranges between 0 and 1. A value of 0 means no correction at all is performed, a value of 0.8 indicates that 80% of each error is corrected in a single step, while a value of 1 indicates that all errors should be each error is completely corrected in a single step.
EDITORS NOTE: the following field definition deserves close review, with possibility of being removed or fully redefined.
The maxCorrectionSpeed field limits the amount of change that can be applied to resolve intersection error, effectively modifying object positions, using an absolute value of speed. A value of -1 indicates that no speed limitation exists, while a value of 0 indicates that no corrections are allowed.
==================================================
All review and feedback welcome, especially with respect to implementation.
all the best, Don
--
Don Brutzman Naval Postgraduate School, Code USW/Br brutzman at nps.edu
Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman
More information about the x3d-public
mailing list