Enable stereo in post credits scene (#509)

This commit is contained in:
artum 2022-06-16 19:21:26 +02:00 committed by GitHub
parent c2bfd281bf
commit fd45fe1171
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -13,10 +13,14 @@ namespace NomaiVR.EffectFixes
private Transform screenTransform;
private Transform cameraTransform;
private Transform offsetTransform;
private Camera originalCamera;
private Camera vrCamera;
private RenderTexture stereoTexture;
internal void Start()
{
cameraTransform = Instantiate(AssetLoader.PostCreditsPrefab).transform;
vrCamera = cameraTransform.GetComponentInChildren<Camera>();
screenTransform = cameraTransform.GetChild(0);
screenTransform.parent = null;
@ -30,13 +34,19 @@ namespace NomaiVR.EffectFixes
cameraTransform.localPosition = Vector3.zero;
cameraTransform.localRotation = Quaternion.identity;
var originalCamera = Camera.main;
originalCamera = Camera.main;
originalCamera.tag = "Untagged";
originalCamera.cullingMask &= ~(1 << LayerMask.NameToLayer("UNUSED"));
originalCamera.transform.position = new Vector3(1075, 505, -765);
originalCamera.transform.rotation = Quaternion.identity;
originalCamera.rect.Set(0, 0, 1, 0.5f);
originalCamera.targetTexture = AssetLoader.PostCreditsRenderTexture;
originalCamera.enabled = false;
stereoTexture = new RenderTexture(AssetLoader.PostCreditsRenderTexture.descriptor);
stereoTexture.Create();
Camera.onPreRender += OnCameraPreRender;
}
internal void Update()
@ -49,6 +59,19 @@ namespace NomaiVR.EffectFixes
{
offsetTransform.localRotation *= Quaternion.Euler(0, signedCameraAngle, 0);
}
originalCamera.targetTexture = AssetLoader.PostCreditsRenderTexture;
originalCamera.Render();
originalCamera.transform.position += Vector3.right * 10;
originalCamera.targetTexture = stereoTexture;
originalCamera.Render();
}
void OnCameraPreRender(Camera camera)
{
if (camera != vrCamera || camera.stereoActiveEye != Camera.MonoOrStereoscopicEye.Right)
return;
Graphics.CopyTexture(stereoTexture, AssetLoader.PostCreditsRenderTexture);
}
}
}