SebLague / Portals

Portals in Unity
https://www.youtube.com/watch?v=cWpFZbjtSQg
MIT License
780 stars 170 forks source link

Android not working - fix candidate #5

Open JRRomacho opened 4 years ago

JRRomacho commented 4 years ago

I thought that was an issue related to shaders, but looks like there is something about render textures. Replacing: viewTexture = new RenderTexture (Screen.width, Screen.height, 0);

by: viewTexture = new RenderTexture (Screen.width, Screen.height, 24);

Portals are rendered, but with no recursion. Why is this happening? Is feasible to fix recursion with Android?

vegechick123 commented 4 years ago

I've met the problem, you can fix recursion problem by replacing: portalCam.Render (); by:

RenderTexture buffer = RenderTexture.GetTemporary(Screen.width, Screen.height, 24);
portalCam.targetTexture = buffer;
portalCam.Render ();
Graphics.Blit(buffer, viewTexture);
RenderTexture.ReleaseTemporary(buffer);

the reason is viewTexture in origin code is used as the texture of recursion portal, when we call portalCam.Render ();, it also used as the targetTexture of Camera.We can't read the same RenderTexture while it is being written, so the recusion is black.