Nested Canvases


In Satori, when there is a canvas open, one of the options from the file menu is "load to layer". This is used to load a bitmap to a layer in the open canvas. It can also be used to load another canvas to a layer in the open canvas and thus you can create a nested canvas. The canvas which has been loaded to layer behaves as if it were a bitmap. So for example you can move, shrink or stretch and rotate the layer which it is in and paint over it. Everything you do is recorded in the open canvas. The canvas which was loaded to layer is not altered.


I shall use capital letters or capitalised words to represent the canvases. Normally it will not matter which layer a canvas is loaded to so I shall use a simple notation to A < (B C D) to represent a canvas A with three canvases B, C and D loaded to layer somewhere. They may be in different layers or in the same layer. Indeed you can load the same canvas more than once.

When I am referring to a specific canvas such as the one below I shall use capitalised names.

e.g. Scene < (House Wood Background)


Take a look at this scene:-

It is constructed from 3 canvases thus:-

How To Do It

It is extremely simple. Create canvases House, Wood and Background and save them. Create a new canvas, Scene, then go to Satori's file menu, click on "Load to layer" and load House into a layer in Scene. Repeat this for Wood and Background and you have the nested canvas shown above.

You can now manipulate the layers containing House, Wood and Background. You can scale, rotate, colour correct, add brush strokes, do whatever you want just as if they were a bitmaps. This brings me to the performance aspects of nested canvases.


Suppose House is a complex canvas and that if you make changes to House Satori takes its time redisplaying the canvas. Provided that you save House with compression set to low you can make changes to Scene much more quickly than you could if the house and the scene were in the same canvas. This is because Satori is able to get information from a bitmap stored with House rather than redrawing the house from the objects in the canvas.

Canvas "compression" in Satori is not really compression at all. Satori always saves objects: the information it needs to create the scene. It can also save a bitmap version of the canvas with the objects. "High compression" really means "save only a thumbnail bitmap of the canvas". This is what you see when you use browse. "Medium compression" means "save a bitmap version of the canvas". "Low compression" means "save a more detailed bitmap version of the canvas".

Multi-Canvas Working

In the canvas Scene < (House Wood Background) you can open more than one canvas at the same time if you need to. Suppose that while you are working on Scene you realise that you need to change House. You do not have to close Scene. You can open House, work on it and save it while keeping Scene open, and then resume work on Scene.

This way of working also leads to better performance. While Satori was working on House it was not having to redisplay objects in Scene, Wood or Background. Compare that to the situation where all the objects in the four canvases are in one canvas X with lots of layers. Every time you change something in X Satori has to redisplay the view of the canvas using all the information in X.

One point to bear in mind with multi-canvas working on Scene < (House Wood Background) is that if you open House, change it and then save it while Scene is already open then the changes you make to House will not appear on the window displaying Scene until you do something which makes Satori look at House again e.g. use Hi-Rez. Nevertheless the changes to House will be picked up when you next open or render Scene whether or not you look at them in Scene's window.

Forward to Part 2 (Painting By Objects)---->


 Nigel Sutton