Fix case for bodies which begin as dynamic.#13
Open
gfodor wants to merge 2 commits intoInfiniteLee:masterfrom
Open
Fix case for bodies which begin as dynamic.#13gfodor wants to merge 2 commits intoInfiniteLee:masterfrom
gfodor wants to merge 2 commits intoInfiniteLee:masterfrom
Conversation
…to explicitly manage the first 3 initial physics syncs to coordinate the host process setting the initial transform properly before physics starts driving it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This fixes an issue where the physics system does not properly handle the case where a new body is added that is initially set to DYNAMIC. Dynamic bodies are currently always synced out of the physics engine on every tick, however this means that if a body starts out as dynamic, its initial transform is never written to the physics engine (so it ends up just getting an identity transform in the physics engine.)
To fix this, bodies now explicitly track the first three sync passes in a counter, and if a body is dynamic and its first and second syncs are seen while its dynamic, then the worker waits for the initial transform to be written by the host process, syncs it to physics, and then proceeds as usual.
Also addresses a potential bug where the matrix offset in the buffer was not being used when resetting dynamic objects.