THE BIG PICTURE.
An approach to optimizing performance in many-layered Satori Paintings.
By Michael Hirsh.
Page 1 of 2
People use Satori for all sorts of projects,
and they value the software for its three key benefits: Performance,
Editability and Resolution Independence. (R.I.)
Many Satori users will be creating relatively
simple images, or series of images, employing only a few layers.
Satori will tear through this kind of work faster than any bitmap
based program, and still offer the benefits of full editability
and R.I.
When it comes to creating large, complicated
paintings with a few dozen layers, each containing anything up
to a hundred brush and geometry objects, users can see one of
the precious benefits begin to suffer: Performance.
Obviously, performance is the aspect of
Satori most likely to be influenced by the users hardware. While
Satori may be written to be extremely efficient at creating and
manipulating images, the best software writer in the world cannot
magically provide the user with the optimum hardware set-up to
keep the program zipping along.
Performance Boosting Techniques
There's a recognised technique within
Satori, to reduce the processing overheads occasioned by having
many layers open on a large canvas. The method is to flatten
all the work you have done part way through a picture into a
single layer bitmap, using Save As... from the File Menu, and
choosing the ".rir" option. This method allows you
to open up the rir bitmap as a new canvas, add more layers and
keep on painting without losing performance. (See the tutorial
in the Satori Reference Guide: Section 2 Chapter 4 ; "Painting
an Animation Background in Satori".) N.B. The web
edition of the tutorial on this site omits any reference
to the "Flattening" technique. Please refer to your
Satori Reference Guide for the full dead tree version.
So far, so good. However, by converting
several sluggish layers into one fast layer, you can inadvertently
throw away two vitally important things: Editability and R.I.
When layers are flattened into a rir bitmap, all the objects
are lost along with your ability to edit them, unless you save
the layers themselves in a cvs file.
It is vital not to overlook this important
fact if you want to change anything later, (Or worse, your client
wants changes.) and also if you want to output the final image
at any resolution higher than screen resolution; For print, say.
Another Fine Mess...Unpicking
this lot was fun, especially when the client demanded urgent
changes!
This unholy mess was the starting
point for this tutorial. (See next page for the "Before"
and "After" Pictures)
How To Make A Big Mess
If you use this technique of flattening
parts of an image and save a few layers in one cvs file and
a few other layers in another, as well as scrunching down those
layers into new, incremental versions of your picture, you can
end up with an almighty mess in the folder that you are using
to store all those chunks of the picture. You can make matters
much, much, worse if you adopt some spontaneous, improvised system
for naming all these canvases and bitmaps. When you come to output
your image, youll have to try and find all the layers and
put them all back into some sort of master file, in order to
try and regain editability and R.I. Re-structuring a chaotically
filed mass of components of a picture effectively wipes out any
performance gains you might have won through splitting the picture
into speedy little chunks in the first place. Unless the Master
file is properly organised, you could end up with another problem,
rather than a new solution.
Learn Filing For Fun And Profit, Or, Michaels
MO.
My own solution has been to put some serious
thought into organising my data structures from the outset and
getting into that fun-filled field of office life: Filing.
Heres how I tackle big, complicated
pictures. First, I create a folder for my image with an appropriate
name such as Scene 15, or whatever. Then I create four sub- folders
called: 1) MASTER, 2) STAGES, 3) RESOURCES, and 4), OUTPUT.
Ah! That's better...
Heres what goes in each:
1) The MASTER Folder.
This folder contains only those files
which will be required to render the final output. These will
typically include: The original scan (if working with a scanned
image, or a layout thats used as a painting guide), and
the file called "Master.cvs", which will eventually
contain all the layers of the painting needed for the final render.
If you need to output an image which will be split into a foreground
(FG) level, and a background (BG) level, as often happens in
animation projects, then create master files for both levels.
Name them "BGMaster.cvs" and "FGMaster.cvs",
or whatever convention you use. These files may only have layers
added to them, and must not be: A) Moved, or B) Re-sized, so
make sure you know your canvas ratio (X:Y) before you start.
2) The STAGES Folder.
This folder contains all the stages in
the making of the painting, and the number of files contained
within it will grow as the painting progresses. Use simple names
for the stages of your painting such as "Stage 1.cvs"
or "Version 1 cvs", or "SoFar1.cvs". Whatever
you call these steps in the making of your picture, it really
helps to use only one name plus a number, and stick with this
naming all the way through the picture. Wild and fanciful naming
of versions will work against you when you try and recompile
a picture, even after an interval of only a week. If you try
to remember what a bunch of funny cvs names once meant when
you return to the project after a year, you probably won't be
able to make any sense of them at all. They'll no longer be funny,
either.
Heres how the stages work to keep
up the best performance your machine can deliver with Satori.
(We'll start with Stage 1) You open your scanned image, or whatever
your starting point is. You paint several layers until you think
performance is beginning to slow down. (This slowdown is apparent
when using the Zoom button, and especially the Hi-Rez button.
See your Status Bar for details.) Save your canvas as "Stage
1.cvs" and also save it as "Stage 1 rir". Open
the (empty) Master file in the Master folder, and copy the newly
created layers from "Stage 1.cvs" in to the "Master.cvs".
Then close both files.
TIP: When you save and close the Master.cvs
file, if you use Save As... from the File menu, youll get
an extra set of options which allows you to choose the amount
of compression youd like Satori to use when the canvas
is stashed away. If you choose the top option (None) your Master cvs file will be quicker to open up for copy operations, but
it might be quite a large size in megabytes. As we're talking
about large pictures here anyway, let's just accept this size
penalty in favour of the performance boost, which is what we
want, after all.
Now open the flattened bitmap version
called "Stage 1.rir", and Satori will offer to create
a new canvas. Accept by making sure that the New Canvas radio
button is clicked when opening the file. As soon as the new canvas
is open, use the Save As... to save the canvas with the name:
"Stage 2.cvs". Then add the new layers you wish to
paint, daub away happily and speedily until the performance starts
to slow, and then repeat the saving process, remembering to save
your canvas as both a cvs file and also as a rir bitmap file.
Then, open the Master again, as well as "Stage 2.cvs",
and copy the newly created layers into the "Master.cvs",
but not the layer containing the flattened version of Stage 1,
which you've probably had lurking down at the bottom of your
Layer List Palette as you painted over the top of it.
Carry on starting new canvases as you
need to, save them in the two different file types; cvs and rir, carry the flattened bitmap to serve as the basis of the
next cvs, and copy all new layers to the Master file. Youll
end up with a whopping great Master file, and all the layers
will be duplicated in the chunks of the painting called Stage
n.cvs. I use a notebook to remind me of where all these layers
are, and I've also resorted to using a screen capture utility
to take snapshots of the Layer List Palette, as I go. I've even
created a spreadsheet to map where all 37 layers of a painting
were spread over the 17 stages that I had used in painting it.
One day, who knows?, Satori might have
its very own, user-accessible file explorer to handle these copying
functions without even opening the canvases. OK, next sub-folder.
3) The RESOURCES Folder.
This one contains miscellaneous files
such as small canvases you might create (or import) for use as
mapping objects, and test files where you might try out ideas,
and finally, Swatches of colours. I usually move all of my ever
growing tribe of colour swatches into whichever is my current
project folder, but here in the Resources sub-folder, they have
found their true home. They've even started phoning out for pizzas,
and leaving their dirty laundry lying around.
4) The OUTPUT Folder.
This will eventually hold all the rendered-out
versions of your Master canvas as bitmaps ready for export. Having
all the outputs in one folder makes for easy archiving, as well
as exporting.
If all this theory is a bit wordy, there's
a diagram of the data structuring on the next
page.
CONCLUSION
It is worth recognising that when creating
large complicated pictures in Satori, the users hardware can
impose limits on the programs performance. Figuring out a working
method that balances the constraints of hardware against the
three principal benefits of the software repays the effort involved.
A tightly structured approach to data management becomes vital
as file sizes and image complexity increase.
I invite criticism of the methods I have
proposed, and I welcome constructive
suggestions as to how they might be improved.