Skip to content

Commit 7acd880

Browse files
authored
Merge pull request #155 from De-Panther/view_transform_matrix
Use view transform matrix for view pose
2 parents bf475bd + 757b689 commit 7acd880

File tree

2 files changed

+15
-14
lines changed

2 files changed

+15
-14
lines changed

Packages/webxr/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

77
## [Unreleased]
8+
### Changed
9+
- Use view transform matrix instead of orientation/position for pose.
810

911
## [0.10.1] - 2021-05-08
1012
### Fixed

Packages/webxr/Runtime/Plugins/WebGL/webxr.jspre

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -878,24 +878,23 @@ setTimeout(function () {
878878

879879
for (var i = 0; i < pose.views.length; i++) {
880880
var view = pose.views[i];
881+
var transformMatrix = view.transform.matrix;
881882
if (view.eye === "left" || view.eye === "none") {
882883
xrData.leftProjectionMatrix = view.projectionMatrix;
883-
xrData.leftViewRotation[0] = -view.transform.orientation.x;
884-
xrData.leftViewRotation[1] = -view.transform.orientation.y;
885-
xrData.leftViewRotation[2] = view.transform.orientation.z;
886-
xrData.leftViewRotation[3] = view.transform.orientation.w;
887-
xrData.leftViewPosition[0] = view.transform.position.x;
888-
xrData.leftViewPosition[1] = view.transform.position.y;
889-
xrData.leftViewPosition[2] = -view.transform.position.z;
884+
this.quaternionFromMatrix(0, transformMatrix, xrData.leftViewRotation);
885+
xrData.leftViewRotation[0] = -xrData.leftViewRotation[0];
886+
xrData.leftViewRotation[1] = -xrData.leftViewRotation[1];
887+
xrData.leftViewPosition[0] = transformMatrix[12];
888+
xrData.leftViewPosition[1] = transformMatrix[13];
889+
xrData.leftViewPosition[2] = -transformMatrix[14];
890890
} else if (view.eye === 'right') {
891891
xrData.rightProjectionMatrix = view.projectionMatrix;
892-
xrData.rightViewRotation[0] = -view.transform.orientation.x;
893-
xrData.rightViewRotation[1] = -view.transform.orientation.y;
894-
xrData.rightViewRotation[2] = view.transform.orientation.z;
895-
xrData.rightViewRotation[3] = view.transform.orientation.w;
896-
xrData.rightViewPosition[0] = view.transform.position.x;
897-
xrData.rightViewPosition[1] = view.transform.position.y;
898-
xrData.rightViewPosition[2] = -view.transform.position.z;
892+
this.quaternionFromMatrix(0, transformMatrix, xrData.rightViewRotation);
893+
xrData.rightViewRotation[0] = -xrData.rightViewRotation[0];
894+
xrData.rightViewRotation[1] = -xrData.rightViewRotation[1];
895+
xrData.rightViewPosition[0] = transformMatrix[12];
896+
xrData.rightViewPosition[1] = transformMatrix[13];
897+
xrData.rightViewPosition[2] = -transformMatrix[14];
899898
}
900899
}
901900

0 commit comments

Comments
 (0)