/// <summary> /// Update MV Matrix /// </summary> private void UpdateCoords() { if (this.layerTransform == null || !this.layerTransform.gameObject.activeSelf) { return; } if (this.layerEyeCamera[0] == null || this.layerEyeCamera[1] == null) { return; } //if (this.overlayShape == OverlayShape.Quad || this.overlayShape == OverlayShape.Cylinder) { // update MV matrix for (int i = 0; i < this.MVMatrixs.Length; i++) { if (Pvr_UnitySDKRender.Instance.StereoRenderPath == StereoRenderingPathPico.SinglePass) { Matrix4x4[] unity_StereoWorldToCamera = Pvr_UnitySDKSinglePass.GetStereoWorldToCameraMat(); this.MVMatrixs[i] = unity_StereoWorldToCamera[i] * this.layerTransform.localToWorldMatrix; } else { this.MVMatrixs[i] = this.layerEyeCamera[i].worldToCameraMatrix * this.layerTransform.localToWorldMatrix; } this.ModelScales[i] = this.layerTransform.localScale; this.ModelRotations[i] = this.layerTransform.rotation; this.ModelTranslations[i] = this.layerTransform.position; this.CameraRotations[i] = this.layerEyeCamera[i].transform.rotation; this.CameraTranslations[i] = this.layerEyeCamera[i].transform.position; } } }
private void InitSinglePass() { #if ANDROID_DEVICE bool supportSinglePass = true; #if UNITY_2018_1_OR_NEWER if (UnityEngine.Rendering.GraphicsSettings.renderPipelineAsset != null) { supportSinglePass = false; if (!Pvr_UnitySDKAPI.BoundarySystem.UPvr_EnableLWRP(true)) { Debug.Log("UPvr_EnableLWRP return false"); } Vector2 resolution = GetEyeBufferResolution(); if (!Pvr_UnitySDKAPI.BoundarySystem.UPvr_SetViewportSize((int)resolution.x, (int)resolution.y)) { Debug.Log("UPvr_SetViewportSize return false"); } } #endif if (Pvr_UnitySDKProjectSetting.GetProjectConfig().usesinglepass) { bool result = false; if (supportSinglePass) { result = Pvr_UnitySDKAPI.System.UPvr_EnableSinglePass(true); } if (result) { StereoRendering = new Pvr_UnitySDKSinglePass(); stereoRenderPath = StereoRenderingPathPico.SinglePass; eyeTextureCount = 3; } Debug.Log("EnableSinglePass supportSinglePass " + supportSinglePass.ToString() + " result " + result); } #endif }