You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: FAQ.md
+37Lines changed: 37 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,6 +22,7 @@ To compile it yourself, refer to the official Godot documentation for further in
22
22
Alternatively, you can download prebuilt export templates from another trusted source.
23
23
For example, the [LimboAI addon](https://github.com/limbonaut/limboai) provides web export templates with GDExtension support.
24
24
25
+
25
26
## Ropes lag one frame behind
26
27
27
28
This is a known issue and related to execution order.
@@ -34,3 +35,39 @@ See [Execution Order Documentation](docs/execution_order.md) for a more detailed
34
35
## Collisions tunnel through objects / stretch along corners
35
36
36
37
See [Collisions Documentation](docs/collisions.md).
38
+
39
+
40
+
## Collisions are not working with Rapier2D
41
+
42
+
Rapier2D is not supported.
43
+
44
+
- It does not report relevant collision information in editor, only at runtime. That means collisions don't work in the editor at all.
45
+
- It reports different results, e.g. collision normals, than Godot's physics implementation, yielding broken collision behavior for various shapes besides polygons.
46
+
47
+
See also [#41](https://github.com/mphe/GDNative-Ropesim/issues/41).
48
+
49
+
50
+
## Verlet Integration is FPS dependant -> Only 60 FPS are supported
51
+
52
+
This warning appears when running a different physics tick rate than 60.
53
+
54
+
The code is only partially frame rate independent.
55
+
Increasing FPS makes the simulation run more often, decreasing FPS makes it run less often.
56
+
The overall behavior might be mostly identical, but it will be sped up or slowed down respectively.
57
+
For example, if the rope swings one time back and forth in one second at 60 FPS, it will do the same in only 0.5 seconds at 120 FPS.
58
+
Some parts of the simulation are FPS independent, like gravity or damping which lessens the effect, but this is not the case in general.
59
+
60
+
In contrast to common Euler based physics engines, this plugin does not continuously integrate forces to handle velocities. It recomputes velocities every frame from the current state.
61
+
This has the advantage of a very simple and efficient implementation.
62
+
63
+
Velocities are determined using the position difference from the current to last frame for each rope point.
64
+
That means, the farther rope points are moved in one frame, the higher their velocities will be in the next frame and the stronger the reaction.
65
+
Since the output position is used directly for the next frame's input, a frame rate independent simulation is impossible.
66
+
67
+
Imagine multiplying velocities with `delta` when computing new point positions.
68
+
On higher frame rates, the rope points would move less because of smaller deltas, on lower frame rates they would move more.
69
+
Instead of making the simulation frame rate independent, `delta` would only act as a kind of damping factor because it only slows the movement down which subsequently affects the velocity computed in the next frame.
70
+
71
+
It's perfectly fine to use this plugin on other frame rates than 60, but you will get different behavior.
72
+
If it works for your use-case, feel free to remove the line producing the warning,
73
+
But be aware that you can't just switch frame rates and expect the same outcome.
0 commit comments