webVRRigMode.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233
  1. import { Camera } from "../camera";
  2. import { Matrix, Viewport } from "../../Maths/math";
  3. Camera._setWebVRRigMode = function(camera: Camera, rigParams: any) {
  4. if (rigParams.vrDisplay) {
  5. var leftEye = rigParams.vrDisplay.getEyeParameters('left');
  6. var rightEye = rigParams.vrDisplay.getEyeParameters('right');
  7. //Left eye
  8. camera._rigCameras[0].viewport = new Viewport(0, 0, 0.5, 1.0);
  9. camera._rigCameras[0].setCameraRigParameter("left", true);
  10. //leaving this for future reference
  11. camera._rigCameras[0].setCameraRigParameter("specs", rigParams.specs);
  12. camera._rigCameras[0].setCameraRigParameter("eyeParameters", leftEye);
  13. camera._rigCameras[0].setCameraRigParameter("frameData", rigParams.frameData);
  14. camera._rigCameras[0].setCameraRigParameter("parentCamera", rigParams.parentCamera);
  15. camera._rigCameras[0]._cameraRigParams.vrWorkMatrix = new Matrix();
  16. camera._rigCameras[0].getProjectionMatrix = camera._getWebVRProjectionMatrix;
  17. camera._rigCameras[0].parent = camera;
  18. camera._rigCameras[0]._getViewMatrix = camera._getWebVRViewMatrix;
  19. //Right eye
  20. camera._rigCameras[1].viewport = new Viewport(0.5, 0, 0.5, 1.0);
  21. camera._rigCameras[1].setCameraRigParameter('eyeParameters', rightEye);
  22. camera._rigCameras[1].setCameraRigParameter("specs", rigParams.specs);
  23. camera._rigCameras[1].setCameraRigParameter("frameData", rigParams.frameData);
  24. camera._rigCameras[1].setCameraRigParameter("parentCamera", rigParams.parentCamera);
  25. camera._rigCameras[1]._cameraRigParams.vrWorkMatrix = new Matrix();
  26. camera._rigCameras[1].getProjectionMatrix = camera._getWebVRProjectionMatrix;
  27. camera._rigCameras[1].parent = camera;
  28. camera._rigCameras[1]._getViewMatrix = camera._getWebVRViewMatrix;
  29. }
  30. };