Rigid body OpenCOLLADA extension

From COLLADA Public Wiki
Jump to: navigation, search
Extension information
This article is part of the COLLADA extensions directory
Adding to the extensions directory

<rigid_body>/<extra>/<technique profile="PhysX_3.x"> Element

Specification Version: 1.4.1
Category: (Physics) Physics Model

Introduction

COLLADA format allows Physics scene description. However only a small set of parameters are supported. This extension allows to embed full set of parameters supported by PhysX 3.x.
See PhysX 3.x documentation for further details about each parameter.

Note relative to transforms

COLLADA does not define any transform for <rigid_body> element and supposes rigid body's initial transform is taken from <instance_rigid_body>’s target. In Maya, a rigid body can have a different transform than its targeted node. Importers can use <global_pose> element to get the actual transform used by PhysX SDK in Maya. Importing and using <global_pose> is optional but if an importer chooses to use <global_pose> then it must use <shape>/<extra>/<technique profile=”PhysX_3.3”>/<local_pose> and <rigid_constraint>/<extra>/<technique profile=”PhysX_3.3”>/<local_pose0>|<local_pose1> and ignore standard COLLADA shape transform and constraint <ref_attachment>/<attachment> transforms.
Related Elements
Affected Parent element(s) <rigid_body>
Extra and/or Technique <extra>/<technique profile=”PhysX_3.x”>
Child elements See following section
Child Elements
Name Description Default Occurrences
<px_rigid_body> Extension’s root element. N/A 0 or 1

Child Elements for px_rigid_body

Child elements must appear in the following order if present:
Name Description Default Occurrences
<global_pose sid=”...”> 7 floating point values: 4 for rotation quaternion and 3 for translation. N/A 1
<actor_flags> Any combination of VISUALIZATION, DISABLE_GRAVITY, SEND_SLEEP_NOTIFIES, DISABLE_SIMULATION. See PxActorFlags documentation. VISUALIZATION 0 or 1
<dominance_group> integer 0 0 or 1
<owner_client> integer 0 0 or 1
<rigid_body_flags> See PxRigidBodyFlags. Can be any combination of KINEMATIC, USE_KINEMATIC_TARGET_FOR_SCENE_QUERIES, ENABLE_CCD, ENABLE_CCD_FRICTION. No flag 0 or 1
<min_ccd_advance_coefficient sid=”...”> Floating point value. 0.15 0 or 1
<max_depenetration_velocity sid=”...”> Floating point value INF 0 or 1
<linear_damping sid=”...”> Floating point value 0 0 or 1
<angular_damping sid=”...”> Floating point value 0 0 or 1
<max_angular_velocity sid=”...”> Floating point value 7.0 0 or 1
<sleep_threshold sid=”...”> Floating point value 5e-5 0 or 1
<stabilization_threshold sid=”...”> Floating point value 1e-5 0 or 1
<wake_counter sid=”...”> Floating point value 0.4 0 or 1
<min_position_iters sid=”...”> Integer value 4 0 or 1
<min_velocity_iters sid=”...”> Integer value 1 0 or 1
<contact_report_threshold sid=”...”> Floating point value INF 0 or 1

Example

   <rigid_body name=”RB0”>
       <dynamic>true</dynamic>
       ...
       <extra>
           <technique profile=”PhysX_3.x”>
               <px_rigid_body>
                   <global_pose>0 0 0 1 0 0 0</global_pose>
                   <actor_flags>VISUALIZATION</actor_flags>
                   <dominance_group>1</dominance_group>
                   <owner_client>0</owner_client>
                   <rigid_body_flags>KINEMATIC ENABLE_CCD</rigid_body_flags>
                   <min_ccd_advance_coefficient>0.15</min_ccd_advance_coefficient>
                   <max_depenetration_velocity>1e32</max_depenetration_velocity>
                   <linear_damping>0</linear_damping>
                   <angular_damping>0</angular_damping>
                   <max_angular_velocity>7</max_angular_velocity>
                   <sleep_threshold>5e-7</sleep_threshold>
                   <stabilization_threshold>24.059</stabilization_threshold>
                   <wake_counter>0.4</wake_counter>
                   <min_position_iters>8</min_position_iters>
                   <min_velocity_iters>4</min_velocity_iters>
                   <contact_report_threshold>3.40282e38</contact_report_threshold>
               </px_rigid_body>
           </technique>
       </extra>
   </rigid_body>