-
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
Fix projection bug when dragging in default (viewport) plane #16203
Conversation
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/16203/merge/index.html#WGZLGJ#4600 Links to test babylon tools with this snapshot: https://playground.babylonjs.com/?snapshot=refs/pull/16203/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/16203/merge#BCU1XR#0 |
WebGL2 visualization test reporter: |
Visualization tests for WebGPU |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Waiting for reviews, you can make sure formatting passes by running npm run format:fix
(it is probably the if
line, that needs to be
if (this._scene.activeCamera) {
WebGL2 visualization test reporter: |
Visualization tests for WebGPU |
Forum discussion here: Mesh drifts towards camera in default PointerDragBehavior axis mode
The issue is that in the default mode (when no custom drag axis or plane normal is provided), the drag plane was being aligned by making it "look at" the camera's position. This meant that instead of being parallel to the camera’s clip (screen) plane, the drag plane always faced the camera. Because perspective cameras cause rays to converge, dragging objects off-center led to an inconsistent intersection between the pointer ray and the drag plane—resulting in the mesh drifting toward the camera.
This PR just explicitly aligns the drag plane with the camera’s forward direction (i.e., parallel to the view plane) rather than having it face the camera's position.