private void onHeadsetUpdate( Matrix4x4 leftProjectionMatrix, Matrix4x4 rightProjectionMatrix, Matrix4x4 leftViewMatrix, Matrix4x4 rightViewMatrix, Matrix4x4 sitStandMatrix) { if (xrState == WebXRState.VR) { WebXRMatrixUtil.SetTransformFromViewMatrix(cameraL.transform, leftViewMatrix * sitStandMatrix.inverse); cameraL.projectionMatrix = leftProjectionMatrix; WebXRMatrixUtil.SetTransformFromViewMatrix(cameraR.transform, rightViewMatrix * sitStandMatrix.inverse); cameraR.projectionMatrix = rightProjectionMatrix; } else if (xrState == WebXRState.AR) { WebXRMatrixUtil.SetTransformFromViewMatrix(cameraARL.transform, leftViewMatrix * sitStandMatrix.inverse); cameraARL.projectionMatrix = leftProjectionMatrix; WebXRMatrixUtil.SetTransformFromViewMatrix(cameraARR.transform, rightViewMatrix * sitStandMatrix.inverse); cameraARR.projectionMatrix = rightProjectionMatrix; } }
private void OnHMDUpdate( Matrix4x4 leftProjectionMatrix, Matrix4x4 rightProjectionMatrix, Matrix4x4 leftViewMatrix, Matrix4x4 rightViewMatrix, Matrix4x4 sitStandMatrix) { WebXRMatrixUtil.SetTransformFromViewMatrix(_leftEye.transform, leftViewMatrix * sitStandMatrix.inverse); WebXRMatrixUtil.SetTransformFromViewMatrix(_rightEye.transform, rightViewMatrix * sitStandMatrix.inverse); }
private void onHeadsetUpdate(Matrix4x4 leftProjectionMatrix, Matrix4x4 rightProjectionMatrix, Matrix4x4 leftViewMatrix, Matrix4x4 rightViewMatrix, Matrix4x4 sitStandMatrix) { Matrix4x4 trs = WebXRMatrixUtil.TransformViewMatrixToTRS(leftViewMatrix); this.headRotation = WebXRMatrixUtil.GetRotationFromMatrix(trs); this.headPosition = WebXRMatrixUtil.GetTranslationFromMatrix(trs); this.sitStand = sitStandMatrix; }
protected void onHeadsetUpdate( Matrix4x4 leftProjectionMatrix, Matrix4x4 rightProjectionMatrix, Matrix4x4 leftViewMatrix, Matrix4x4 rightViewMatrix, Matrix4x4 sitStandMatrix) { if (_wxrManager.xrState == WebXRState.ENABLED) { WebXRMatrixUtil.SetTransformFromViewMatrix(_cameraLeft.transform, leftViewMatrix * sitStandMatrix.inverse); _cameraLeft.projectionMatrix = leftProjectionMatrix; WebXRMatrixUtil.SetTransformFromViewMatrix(_cameraRight.transform, rightViewMatrix * sitStandMatrix.inverse); _cameraRight.projectionMatrix = rightProjectionMatrix; } }
void LateUpdate() { if (OnHeadsetUpdate != null && this.xrState == WebXRState.ENABLED) { Matrix4x4 leftProjectionMatrix = WebXRMatrixUtil.NumbersToMatrix(GetFromSharedArray(0)); Matrix4x4 rightProjectionMatrix = WebXRMatrixUtil.NumbersToMatrix(GetFromSharedArray(1)); Matrix4x4 leftViewMatrix = WebXRMatrixUtil.NumbersToMatrix(GetFromSharedArray(2)); Matrix4x4 rightViewMatrix = WebXRMatrixUtil.NumbersToMatrix(GetFromSharedArray(3)); Matrix4x4 sitStandMatrix = WebXRMatrixUtil.NumbersToMatrix(GetFromSharedArray(4)); if (!this.capabilities.hasPosition) { sitStandMatrix = Matrix4x4.Translate(new Vector3(0, this.DefaultHeight, 0)); } OnHeadsetUpdate( leftProjectionMatrix, rightProjectionMatrix, leftViewMatrix, rightViewMatrix, sitStandMatrix); } }