About Resolution

Shake has no "working resolution" to set. Resolution is determined by the input images. If a D1 resolution image is read in, you work at D1. When you composite two different resolution images, you are given the option to select either the foreground (first image) or background (second image) resolution. For example, if you read in 50 elements, or images, that are 2048x1556, you are working at 2048x1556. If you composite all of these over a 720x486 background, and you want the background resolution of that composite, then all of the foreground elements are cropped to the video resolution, or you can choose to remain at the 2048x1556 resolution.

Because of the Infinite Workspace, you don't have to crop a lower-resolution element to match a higher resolution element when compositing or applying transformations.

You can view the resolution of an element in the title bar of the Viewer, or by placing the cursor over the node and looking at the help text in the lower right window.

Changing Resolution

You can change the resoluton of an element several ways. In the following examples, a foreground element of 640x480 pixels is composited over a NTSC D1 element of 720x486. The dark grey area designates space outside of the image frame.

Foreground, 640x480
Background, 720x486

 

tree
Background res, 720,486
Foreground res, 640x480


In the following example, a 320x240 black frame is created with Image - Color. The resolution of the foreground and background elements is set to 320x240 by assigning the background clipMode in the second Over:


 

The following three nodes change the resolution by scaling the pixels.

Resize: You set the output resolution of the node, and the image is squeezed into that resolution. This usually causes a change in aspect ratio.




Fit: Like Resize, except it pads the horizontal or vertical axis with black to maintain the same aspect ratio.


Zoom: Same as Resize, except that you are supplied with scaling factors, so a zoom of 1, 1 is the same resolution; 2, 2, is twice as big; .5, .5 is half the size, and so on.

 

Re-Mastering to a Different Resolution With Proxies

You can re-master your scene's resolution with proxy images. As an example, you can load NTSC and PAL images simultaneously, with one set being a proxy image. With the proper scaling factors, the scene can be reset in the other resolution by switching the proxy set.

Working With High Resolution Images

These guidelines are specifically for high resolution images of 4K and 6K. The following discussion is based on the premise that you have a massive amount of RAM for your interactive workstation, (at least 1 GB).

Although Shakes works with any resolution, there is a default cropping on Viewers in the interface of 4096x4096 pixels. This protects the user in case a Zoom of 1000 is applied on a 2K plate. Instead of trying to render an enormous image, only the lower left corner up to 4096 pixels is rendered in the interface. This is fine for normal HD or film production, but the cropping takes effect if you read in 6K IMAX plates. This limitation is only in the GUI – images rendered to disk are at the uncropped full resolution.

You can get by this in two ways. The first is to work with a proxies of less than 1. With a proxyScale of .5, you can potentially look at images up to 8K x 8K resolution. The other workaround is to change the default Viewer limits by customizing a ui preference file. Add the following lines:

gui.viewer.maxWidth = 4096;
gui.viewer.maxHeight = 4096;

These lines set the maximum resolution to 4K. If you want a larger resolution, enter it here.

For more information on these preference files, jump to Customize Shake.

Another change you have to implement is to change the cache settings. By default, only images under 2K resolution are cached. This is to keep the cache open enough to add more files by not caching large files. You can override this with the following two lines, which indicate the default values. The first line tells the maximum size by listing the X resolution, the Y resolution, number of channels, and amount of bytes. The second line gives the maximum amount of diskspace for the cache directory. You can assume that if you are working on a 6K plates that you can allow for more than 512 Mb of disk space for your cache. These lines go in your startup preference files. You will have to modify the numbers to suit your production situation:

diskCache.cacheMaxFileSize = 2048*2048*4*2;
diskCache.cacheSize = 512;

Keep in mind that if you set your maximum file size to 6K x 6K x 4 channels x float, you are saving massive files. The return you have on swapping this in and out of cache is extremely limited, at best. It is recommended you use proxies when interactively working with 4K and 6K images.

If you need to work at full resolution, try putting a Crop at the end of the chain to focus on an area of interest or using the Viewer DOD. This will retain full pixel resolution, but keep your image resolution within the framework of your machine.

Finally, you will need to tune the amount of RAM used by Shake. By default, 64 MB are assigned to the nodes and 64 MB to the images themselves. You need to increase the second setting. A setting of 1/3 of your memory dedicated to each of the two following settings to reserve memory for other applications and flipbooks. However, the first one rarely needs to go above 96 MB. For example, if you have 1 GB of RAM, you might want to have memory settings like this:

cache.cacheMemory = 96;
diskCache.cacheMemory = 500;

The first line is associated for nodes, and is not affected by image resolution. The second setting is associated with the images themselves, so you want to increase it as your images get larger. The default setting is 64 MB, which if useless for large resolutions. These settings also go in your startup preference file.