About Resolution |
Shake has no 'working resolution' to set. Resolution is determined by the input images. If you read in a D1 resolution image, you are working at D1. When you composite two different resolution images together, you are given the option to select either the foreground (first image) or background (second image) resolution. For example, if you read in fifty elements, or images, that are 2048x1556, then 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 will be cropped to the video resolution.
Note because of the Infinite Workspace, you don't have to crop a lower-resolution element to match a higher resolution element when you are doing compositing or transformations.
You can check the resolution of an element by viewing it on 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.
You can change an element's resolution in several ways. For these examples, I am compositing a foreground element of 640x480 pixels over a NTSC D1 element of 720x486. The dark grey area designates space outside of the image frame.
Using a Layer operation's clipMode
parameter.
You can set resolution by compositing it over a lower or higher resolution element (including a pure black plate generated with the Color function) and selecting the background or foreground resolution with the clipMode parameter in the layering node.
tree
|
Background res, 720,486
|
Foreground res, 640x480
|
![]() |
![]() |
![]() |
In this next example, a 320x240 black frame is created with Image - Color. We set the resolution of our fg and bg elements to 320x240 by assigning the Background clipMode in the second Over:
These 3 nodes cut into the frame without scaling and filtering the pixels.
Crop: Arbitrarily supply the lower left and upper right corner and cuts into the frame at those coordinates. It also turns off the infinite workspace.
Window: Supply a lower left coordinate, and then the resolution you want the image to be. Will cut off the infinite workspace.
Viewport. Exactly like Crop, except it maintains the infinite workspace. This is usually useful for setting resolutions in preparation for using on-screen controls later on, as the controls are always fitted to the current resolution.
This example has a Crop node attached to it, with the Crop parameters set manually to 244, 92,700,430, returning a 456x338 resolution (yup, completely arbitrary). Notice the on-screen control to adjust the resolution manually.
Crop
|
456,338
|
![]() |
![]() |
Transform Tools: Using a Resize, Fit or Zoom to scale
the frame.
These three nodes will change the resolution by scaling the pixels.
Resize: You set the output resolution of the node, and the image will be squeezed into that resolution. This will usually cause a change in aspect ratio.
Resize
|
320,320
|
![]() |
![]() |
Fit: Like Resize, except it will pad either the horizontal or vertical axis with black to maintain the same aspect ratio
Fit
|
320,320
|
![]() |
![]() |
Zoom: Exactly like 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, etc.
Using the proxyScale
When you set the proxyScale, i.e., .5, you will be scaling the output resolution of your image. However, all resolution settings and indications will be acting as if you were are working at proxy 1 (full) resolution. In terms of a workflow, this is generally not the way to arbitrarily set an output resolution. Rather, it is intended to give the user a quick way of doing test renders.
Working With
High Resolution Images
These guidelines are specifically for high resolution images, meaning 4- and 6k. This entire discussion is based on the premise that you have a massive amount of RAM for your interactive workstation, i.e., probably 1 GB.
Although Shake can work with any resolution, we have put a default cropping on Viewers in the interface at 4096x4096 pixels. This is to protect the user in case they put a Zoom of 1000 on a 2k plate. Instead of trying to render an enormous image, only the lower left corner up to 4096 pixels will get rendered in the interface. This is fine for normal HD or film production, but the cropping will take effect if you read in 6k IMAX plates. This limitation is only in the GUI - images rendered to disk will be at the uncropped full resolution.
You can get by this in two ways. The first is to work with a proxyScale 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 res to 4k. If you want a larger resolution, enter it here. Keep
For more information on these preference files, jump to Customize Shake.
Another change you will probably have to implement is to change the cache settings. By default, we only cache images that are under 2k of resolution. 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, the number of channels, and the amount of bytes. The second line gives the maximum amount of diskspace for the cache directory. We can hopefully 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. We therefore recommend you use proxyScale when working with 4k and 6k images.
If you need to work at full resolution, trying putting a Crop at the end of the chain to focus on an area of interest. This will retain full pixel resolution, but keep your image resolution within the framework of your machine.
Finally, you will probably want to tune the amount of RAM that Shake is using. By default, we assign 64 Mb to the nodes and 64 Mb to the images themselves. You will want to increase the second setting. We recommend a setting of 1/4 of your memory dedicated to each of the two following settings. For example, if you have 512 Mb of RAM, you might want to have memory settings like this:
cache.cacheMemory = 128; diskCache.cacheMemory = 128;
The first line is associated for nodes, and is not effected by image resolution.
The second setting is associated with the images themselves, so you will want
to increase it as your images get larger. The default setting is 64 Mb. These
settings also go in your startup preference file.