Add Deterministic option to IterateIK3D #112524
Open
+1,283
−135
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If deterministic option is
true, the previous frame's result is discarded. At this point, the new result is calculated from the bone pose excluding the IterateIK3D as the initial state. This means the result will be always equal as long as the target position and the previous bone pose are the same. However, ifangular_delta_limitandmax_iterationsare set too small, the end bone of the chain will never reach the target.Setting deterministic option is
trueandangular_delta_limitto 180 degrees will produce the same results as the old SkeletonIK in FABRIK.Deterministic FABRIK3D:

Old SkeletonIK3D:

(As I mentioned in #110120 (comment), the handling of Tips differs)