PhysX
PhysX copied to clipboard
Mechanical energy is lost when setting initial velocities or applying impulses
Library and Version
PhysX v5.4.1
Operating System
Windows 11
Steps to Trigger Behavior
- Download this sample program
- Compile and debug
- Examine the output
Expected Behavior
The mechanical energy (kinetic energy + potential energy) should remain constant.
Actual Behavior
A significant amount of energy is lost during the simulation which causes the ball to fall short of its intended height by about 4cm.
Investigation
This appears to be caused by a lag in the velocity value compared to the position. If the calculation of mechanical energy is adjusted for this lag, the energy remains constant throughout the simulation (however, the same loss shows immediately after the first frame.) If a correcting velocity value is calculated to cancel out the difference during the first frame, the simulation runs without any appreciable energy loss and the ball reaches the target height. This correction is included in the sample program.