x


how to do a simple multi-pass rendering?

Hi there,

I would like to do a relatively simple two-pass rendering in Unity. I'm used to use OpenGL, where I could setup a multi-pass rendering rather fastly. Unfortunately I'm kind of perturbed in Unity3D. Especially, I cannot find a simple example.

What I want to do is

  1. Render object with Shader1 from camera1 perspective into a RenderTexture. I create a mask here (stencil). This actually works and is fairly easy to setup.

  2. I want to composite the mask (render texture) with another texture using Shader2 and display the result. Shader2 is again fairly simple, two texture lookups and simple computation. So I set up a second camera2 orthographic and a plane with the attached shader material that takes as input the mask (render texture) and a second texture.

Problem is the output is totally wrong. I'm not even sure the first pass is done before the second. I set camera depth of camera1 to 0 and depth camera2 to 1, so they should be in order. Do I have to disable a camera, when the other camera is doing its rendering? How can I be sure that rendering is done in the right order so that the output is coherent?

I can't find clear instructions or examples on that topic. I also looked into the ImageEffects, but it didn't help a lot.

Thanks for any comment

more ▼

asked Feb 14 '12 at 11:13 PM

sekond_ gravatar image

sekond_
16 3 3 4

(comments are locked)
10|3000 characters needed characters left

0 answers: sort oldest
Be the first one to answer this question
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x1651
x335
x7

asked: Feb 14 '12 at 11:13 PM

Seen: 584 times

Last Updated: Feb 14 '12 at 11:13 PM