Announcement

Collapse
No announcement yet.

Are the 'Add Force' nodes already multiplied by DeltaTime?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Are the 'Add Force' nodes already multiplied by DeltaTime?

    Just wondering if the 'Add Force' and 'Add Force At Location' nodes multiply the input force by deltaTime already? I'm noticing some strange unpredictable force updates when I multiply my input force by deltaTime.

    I'm also wondering, is there away I can Damp my force, without using Linear Damping on the entire object? I know the 'Compression Ratio' and 'Spring Tension' of my upward force, is there a way I can damp this force only rather than the entire object as a whole? That way I get stable damping and spring-like physics without the entire object being slowed down.

    Here's my 'Add Suspension Force' function which is called every frame, I'd like to damp the force per-spring if I can. Can't work out how to transition the Math into nodes.

    Click image for larger version

Name:	Capture.JPG
Views:	1
Size:	96.3 KB
ID:	1137506
    Last edited by TheJamsh; 08-17-2014, 12:41 PM.

    #2
    In my experience they do yes. Don't know about the other question.

    Comment


      #3
      Add Force and Add Force At Location automatically account for the delta time. It's also possible to turn on sub-stepping where we interpolate the force over multiple sub-ticks in the physics system.

      I'm not sure what you mean by damping the force. At each frame you must apply any forces you want, so if you applied a force in frame 1 but not in frame 2, frame 2 will have 0 force applied.
      If you're interested in a spring like simulation with damping you could use the formula F = -kX + k2 dX/dt where X is the distance between the object and its resting position, and dX/dt is simply the change in distance.

      Hope that helps, maybe I misunderstood something. Let me know if you have any more questions.

      Comment


        #4
        Any chance you can break down F = -kX + k2 dX/dt a little further? Would be a big help!

        Comment


          #5
          Originally posted by shrike13 View Post
          Any chance you can break down F = -kX + k2 dX/dt a little further? Would be a big help!
          Old thread, but I hope I can shed some light on Ori's post:

          The first half, F = -kX, is a basic spring equation without damping. F is the resulting force of a spring with a stiffness constant of k currently displaced from its resting position by a distance of X. When dealing with springs, it helps to think of it in terms of displacement, i.e. the degree to which it is stretched/compressed relative to its relaxed state (in which it exerts no force at all). In the equation above, a relaxed spring would correspond to X = 0.0, and clearly it doesn't matter what stiffness the spring has at that point - the output F will be zero regardless.

          The second half, k2 * dX / dt, just adds (+) a damping effect proportional to the current delta displacement, i.e. how much the offset from the resting position has changed in the current timeframe. This acts as an opposing force to the basic spring force, slowing it down if the spring displacement is changing very rapidly, that is, it does exactly what a damper does. Conversely, if the delta displacement is very small (dX is ~0) there is not going to be any noticeable damping at all, and only the first half of the expression will have any effect on the resulting force.

          Everything except k would be calculated for each frame, while k itself is a constant that you can set however you like to find a value that works well for what you want to accomplish.

          Hope that helps.

          Comment


            #6
            JEEEEEESUS that bump...

            Comment


              #7
              It's Necro Friday!

              Comment


                #8
                Originally posted by Xenome View Post
                Old thread, but I hope I can shed some light on Ori's post:

                The first half, F = -kX, is a basic spring equation without damping. F is the resulting force of a spring with a stiffness constant of k currently displaced from its resting position by a distance of X. When dealing with springs, it helps to think of it in terms of displacement, i.e. the degree to which it is stretched/compressed relative to its relaxed state (in which it exerts no force at all). In the equation above, a relaxed spring would correspond to X = 0.0, and clearly it doesn't matter what stiffness the spring has at that point - the output F will be zero regardless.

                The second half, k2 * dX / dt, just adds (+) a damping effect proportional to the current delta displacement, i.e. how much the offset from the resting position has changed in the current timeframe. This acts as an opposing force to the basic spring force, slowing it down if the spring displacement is changing very rapidly, that is, it does exactly what a damper does. Conversely, if the delta displacement is very small (dX is ~0) there is not going to be any noticeable damping at all, and only the first half of the expression will have any effect on the resulting force.

                Everything except k would be calculated for each frame, while k itself is a constant that you can set however you like to find a value that works well for what you want to accomplish.

                Hope that helps.
                Thanks, big help!

                Comment

                Working...
                X