-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Correctly support global matrix in glTF interactivity #16285
base: master
Are you sure you want to change the base?
Conversation
…improve error handling in FlowGraphGetPropertyBlock
Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s). |
Snapshot stored with reference name: Test environment: To test a playground add it to the URL, for example: https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/16285/merge/index.html#WGZLGJ#4600 Links to test babylon tools with this snapshot: https://playground.babylonjs.com/?snapshot=refs/pull/16285/merge To test the snapshot in the playground with a playground ID add it after the snapshot query string: https://playground.babylonjs.com/?snapshot=refs/pull/16285/merge#BCU1XR#0 |
WebGL2 visualization test reporter: |
Visualization tests for WebGPU |
Fully testing this ATM. |
…roperty name generation for texture mapping
WebGL2 visualization test reporter: |
Visualization tests for WebGPU |
Because of babylon's RHS->LHS conversion of any glTF scene, there was an issue with using the global matrix compared to local matrix in glTF interactivity (or more percise in the glTF json pointer system).
Local matrix is actually in RHS, as the node itself doesn't change the properties provided from glTF. However, globalMatrix was (incorrectly) in LHS. The solution is to provide the global matrix in RHS as well. I am doing it by inverting the root node's transformation and multiplying it. This way we support RHS (identity) and LHS (rotation/scaling combination).
This PR also changes the JSONPointer block and the getproperty block to be a cached operation, meaning calculations will only be done once per execusion. This will optimize the execusion.