Use the view from other cameras in the scene as VideoTexture in Cycles I have a scene with monitors that display video from cameras in the same scene (or other scenes, but all of them are linked i.e., same objects in the scene). The cameras shown on the monitors do not view the monitors, so no looping should occur.

I found https://www.youtube.com/watch?v=mPFhX_ogL2Y that shows how to get the effect in the Game Engine.

I would like to do this in cycles.

Essentially I would like a material input node that corresponds to the output of the composition of a particular scene. The incoming image should honor the render settings of the particular scene and any compositing applied to it.

The Render Layer node does not appear to honor the resolution or compositing settings of the scene it comes from, and is not available to apply as a texture in the material node editor (that I can find).

I understand that this could be done by rendering the animation from the various cameras, then applying that video as textures to the monitors, then rendering the camera of the monitors. That's super tedious if your making changes to the whole scene, and I don't want to do that.
Can do it in compositor, using an UV pass to distort the images and some ID masks to mix the render layers from different scenes... you can lower the samples for the scenes that will be seen in monitors, and will have faster renders.

Here's a simple test I just did, never tried something like this before so there may be some mistakes and things to improve. I unwrapped the tv screens and assigned materials with different IDs to use as masks.

https://www.dropbox.com/s/nepv0ukolw9r0od/MONITORS.blend?dl=1

edit: had to use the unwrapping to correct aspect ratio of images a bit

and more info:


you use different scenes for each camera
in main scene you activate UV pass and Material Index pass


UV pass allow you to distort an image to match the geometry
ID material pass allows to isolate different monitor screens
but you need to unwrap the tv screens and use different materials for each

in compositor you have a render layer for each scene
use UV pass from main scene to distort the other render layers
and use ID materials to set the alpha for the other render layers
then mix the layers, could even use compositor blur or depth of field


but easier is to just look at the blend... I guess it can be done in other ways, ID masks for alpha is not that good; also multiview was meant to support multiple custom cameras at some point -I think- that would allow to have just one scene to feed the compositor



And a more conventional setup works too... you can use the File Output node in compositor to export the other scenes, and load those Image Sequences as textures in cycles, all you need to do is set offset to -1 in texture nodes... there's a 1 frame lag though, and the first frame won't have any textures -and I had a couple of crashes-

https://www.dropbox.com/s/j83imtyszl6xvik/MONITORS_SEC.blend?dl=1