Maybe there's a better way to go about this. What I want to do is render 2 scenes for every frame and use the result from the first render as a texture in the next.


Scene 2: A room animated with a computer on the desk.

Scene 1: The screen of the computer.

This probably isn't even possible in the method I'm describing, but I think you'll see what I'm getting at. How can this be done in Blender Internal?


Neither Cycles not Blender-Internal support this, You just have to render out the files to an image or a movie, then load them in as an image texture afterwards.

  • $\begingroup$ Are you sure that something like this can't be done by texturing via a composite? The other day, I researched how to get Cycles lighting quality with the blender internal object outline effect. The answer (this worked well) was to create a duplicate of the scene and in the compositor render both of them and overlay. For every frame, both scenes were rendered and combined. Could that not be pipelined into a texture? Of course you may be completely right. $\endgroup$ – Jonathan Todd Jan 12 '14 at 18:21
  • $\begingroup$ @JonathanTodd You could use compositing to combine both scenes in a way which would look okay, (you don't even need separate scenes, two renderlayers should be fine) but it would not technically be a texture. $\endgroup$ – gandalf3 Jan 12 '14 at 18:29
  • $\begingroup$ @gandalf3 I'm open to it if it works. Post as an answer if that solution achieves the right effect. It would be more effective to be able to work on the scenes/render layers together rather than build the screen animation and apply it as a video texture. Having the character interact with the screen, any changes to the master scene animation would require re-rendering in the other scene separately. Maybe there's an easier way to do it? A trick that movie CGI editors use? $\endgroup$ – Jonathan Todd Jan 12 '14 at 18:49
  • 1
    $\begingroup$ @Jonathan Todd - You could for example, use the compositor to overlay the output of one render onto another, using UV distortion to map it to a 3D surface, its a little more involved to have other objects in-front of it, but possible using Z-Masks. $\endgroup$ – ideasman42 Jan 13 '14 at 4:53

What I was originally thinking of will not work as easily as I thought, however you could use an approach like this. Quoted from my answer here:

You can achieve this with an Image Sequence Texture node:

  1. Set up two render layers with each layer excluding the other:

    enter image description here

  2. Set up compositing nodes so the render layer that is being used to influence the materials renders out to a separate directory. This is possible with the File Path node:

    enter image description here

  3. Render only the influencing layer once to that directory by Pinning enter image description here that render layer. The file will be named something like Image0001.png. Rename it to Image0000.png

  4. Set up the material you want to be influenced. You can pull in the result of the other render layer by adding an Image Texture node, setting the image to Image0000.png, setting the Source to Image Sequence, and setting the Offset to -1

    enter image description here

    This is the result of the other render layer.

  5. Render the animation. (CtrlF12, or Info > Render > Render Animation

    Here is a simple test with two spheres (one on each layer) and a moving light source:

enter image description here

Keep in mind that with this technique, the two layers are one frame apart. This could be fixed by rendering the influencing layer completely beforehand, and adjusting the offset accordingly.

This should work in BI as well, using an image sequence texture (as opposed to an image sequence node).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.