Recipe 55: MirrorHouse
- Download the Recipe 55 patch
- Other tutorials in this series:
Book 1 (Recipes 00-12), Book 2 (Recipes 14-25), Book 3 (Recipes 26-43), Book 4 (Recipes 44-49)
- See all Recipes
- Using 3D cameras and feedback to create complex patterns
- Working with multiple jit.gl.camera objects and capturing to textures
This patch takes 4 different camera views of the same 3D scene and maps it onto 4 different videoplanes. By altering the relationship between the cameras and their output planes, we can get some pretty stunning feedback. The result is exquisite and complex repetitive visual patterns without any inputs, similar to a house of mirrors or kaleidoscope.
To begin with, we have 4 jit.gl.videoplane objects arranged in a cross pattern and each rotated inward 45 degrees. For each videoplane, there is a jit.gl.camera feeding textures to it. Each of these cameras has capturing turned on, and is outputting a texture of the scene. By default, these cameras are in the same position and rotation, but move the pictsliders and you’ll be able to spread them out and reorient the cameras.
The texture output of the jit.gl.camera objects is passed through a jit.gl.slab object with a color scale-bias effect loaded. The jit.gl.slab provides some basic color manipulation, but is also necessary to add another texture capture stage so that the feedback doesn’t glitch out. OpenGL doesn’t like it when you try to capture to a texture that you are also rendering in the scene. Passing the texture through jit.gl.slab avoids that situation.
Finally, we have another jit.gl.camera in the scene with no capturing happening, just to render it onscreen.