mirror of
https://github.com/Raicuparta/nomai-vr.git
synced 2025-12-11 20:15:08 +01:00
Enable stereo in post credits scene (#509)
This commit is contained in:
parent
c2bfd281bf
commit
fd45fe1171
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user