Is it possible to write to one depthBuffer and multiple colorbuffers using RenderTexture objects? In my project I have two RenderTexture objects assigned to separate camera texture targets. Within Start() method my second camera sets:
The final result is of course put in camera.targetTexture, but unfortunately without taking into consideration the depthBuffer information from the first camera. Any ideas why it isn’t working?
@MakeCodeNow Once again thanks for your help.
Of course the second rendering performed by second camera was clearing whole depth information from the first camera’s pass. The lack of precise description from Unity’s site cost me a lot of troubles.
Intelisense within MonoDevelop enums several
CameraClearFlags, that is:
Skybox. It seems that
SolidColor flag instructs clearing the depth buffer in addition to color buffer (who would’ve guess? maybe
Depth flag should clear the color buffer as well?). Furthermore, there is a second
CameraClearFlags.Color flag (which of course I was using in my desperation), but I wasn’t able to figure out what’s the purpose of it existence.
And finally my workaround: I’ve ended up clearing the second camera manually by setting up camera’s
cullingMask = 1 << LayerMask.NameToLayer("Nothing") and trigerring
Render() function. Then rendering the first one and at the end rendering second camera once more, but this time with it’s cullingMask properly set and clearFlags set to
CameraClearFlags.Nothing (here the depth buffer from the first camera’s
Render() finally weren’t cleared up. Amen.