// handle OCSVRWorksCameraRig events
    private void updateFoveationPattern(OCSVRWorksCameraRig cameraRig)
    {
        var overfillProj   = predictedMotionProvider.leftProjection;
        var overfillAspect = overfillProj.width / overfillProj.height;

        cameraRig.UpdateFoveationPatternProps(predictedMotionProvider.foveationInnerRadius,
                                              predictedMotionProvider.foveationMiddleRadius,
                                              1 / (overfillAspect >= 1.0f ? overfillProj.height : overfillProj.width));
    }
    private void Awake()
    {
        _msg = new NetMQ.Msg();

        cameraRig         = GetComponent <AirVRCameraRig>();
        _foveatedRenderer = GetComponent <OCSVRWorksCameraRig>();

        liveMotionProvider      = new MPPLiveMotionDataProvider();
        predictedMotionProvider = new AirXRPredictedMotionProvider(this, liveMotionProvider);
        gameEventEmitter        = new AirXRGameEventEmitter(cameraRig);
    }
Exemple #3
0
    private void Awake()
    {
        _owner = GetComponentInParent <MotionPredictionPlayback>();

        _leftEyeAnchor = transform.Find("LeftEye");
        _leftEyeCamera = _leftEyeAnchor.GetComponent <Camera>();

        _rightEyeAnchor = transform.Find("RightEye");
        _rightEyeCamera = _rightEyeAnchor.GetComponent <Camera>();

        foveatedRenderer = GetComponent <OCSVRWorksCameraRig>();

        foveatedRenderer.OnUpdateFoveationPattern += onUpdateFoveationPattern;
        foveatedRenderer.OnUpdateGazeLocation     += onUpdateGazeLocation;
    }
    private void updateGazeLocation(OCSVRWorksCameraRig cameraRig)
    {
        var config = this.cameraRig.GetConfig();

        if (config == null)
        {
            return;
        }

        var leftProj  = predictedMotionProvider.leftProjection;
        var rightProj = predictedMotionProvider.rightProjection;

        var leftGaze = new OCSVRWorksCameraRig.GazeLocation {
            x = -leftProj.center.x / leftProj.width,
            y = -leftProj.center.y / leftProj.height
        };
        var rightGaze = new OCSVRWorksCameraRig.GazeLocation {
            x = -rightProj.center.x / rightProj.width,
            y = -rightProj.center.y / rightProj.height
        };

        cameraRig.UpdateGazeLocation(leftGaze, rightGaze);
    }
Exemple #5
0
 private void onUpdateGazeLocation(OCSVRWorksCameraRig cameraRig)
 {
     foveatedRenderer.UpdateGazeLocation(_leftGazeLocation, _rightGazeLocation);
 }
Exemple #6
0
 private void onUpdateFoveationPattern(OCSVRWorksCameraRig cameraRig)
 {
     foveatedRenderer.UpdateFoveationPatternProps(_foveationPatternInnerRadius, _foveationPatternMiddleRadius, _foveationPatternScale);
 }