- Home /
SetTargetBuffers for multiple color buffers
Anyone been able to successfully use the following function?
In my case, I pass two colorbuffer objects from two separate RenderTexture objects. The result, after rendering through camera.Render() function, is: first colorbuffer properly rendered; second - only cleared up (the clear color value seems to be equal in both colorbuffers).
void SetTargetBuffers(RenderBuffer[] colorBuffer, RenderBuffer depthBuffer);
Example:
// r1, r2 RenderTexture objects
RenderBuffer[] rb = new RenderBuffer[] {r1.colorBuffer, r2.colorBuffer};
worldCam.camera.SetTargetBuffers(rb, r2.depthBuffer);
worldCam.camera.Render();
Are your shaders setup to write to more than one render target? If the shaders aren't setup for $$anonymous$$RT, you won't see anything in that 2nd target except for the clear color.
Answer by KEric · Feb 19, 2014 at 10:01 AM
@MakeCodeNow Many thanks for your help.
For anyone who'll find it useful - within the shader program, the fragment part has to return multiple (two in the case above) COLORs, one for each buffer that is passed to SetTargetBuffers.
struct f2s {
fixed4 col0 : COLOR0;
fixed4 col1 : COLOR1;
};
f2s frag(v2f i) {
f2s fout;
fout.col0 = // some color
fout.col1 = // some color
return fout;
}
Your answer
Follow this Question
Related Questions
Read depth buffer on the cpu 1 Answer
Can I use a render target as a shader property when rendering to the same render target? 1 Answer
How to get depth texture and render texture from one camera 0 Answers
How to get the depth values of the camera view? 1 Answer
How to clean on RenderTexture to transparent with brush 0 Answers