Apple Pro Training Series. Shake 4. Professional Compositing and Visual Effects

A proxy is a lower-resolution image that you substitute for a high-resolution image so you can work faster. Think of proxies as the Mini Me of visual effects. Because the images are smaller, you drastically decrease your disk access time, your memory consumption, and your processing time. Naturally, your quality will suffer as well, which is why proxies are generally for testing purposes. Once you are done assembling your script with proxies, you return your script to full resolution to render your final output.

In this example, you have the full-resolution image and a 1/3 proxy. In the following images, you can see that the proxy takes up one-ninth of the space, meaning potentially only 11 percent of the processing time, memory usage, and disk activity.

Shake will automatically adjust pixel-based values to compensate for the lower resolution, so a Pan of 100 pixels is calculated to be only 33.333 pixels when using a 1/3 proxy. The actual Pan parameters in the interactive text field will not be modified.

There are three basic approaches for using proxies. These are controlled in the Globals tab of the Parameters workspace.

  • useProxy You want to speed up your processing, but you don't plan on working on the project for an extended period of time.

  • useProxy and pre-render your proxy files You are working on a project for a long time, the project is extremely large, and your high-resolution files are probably on a remote disk. You will be doing many flipbook tests.

  • interactiveScale Your general speed is fine, but you want to adjust nodes quickly and interactively at full resolution. This will not affect your flipbooks or renders.

Creating On-the-Fly Proxies

On-the-fly proxies are generated only when needed and are discarded when your disk cache is full. The disk cache is a temporary storage area on your disk, which Shake uses to improve system performance. The Globals useProxy parameter reads your input images and scales them down, placing them first into memory and then into the disk cache as memory runs out. It then recomputes the script at the lower values and leaves it at that resolution until you return it to full resolution.

Note

The useProxy setting will affect your flipbooks and renders.

You can change to lower proxy sizes using presets.

1.

Click the Globals tab in the Parameters workspace.

2.

Expand the useProxy settings.

3.

Cycle through the useProxy settings from Base to P1, P2, and P3.

By default, P1 is set to 0.5, 1 for its scale/aspect ratio; P2 is 0.25, 1; and P3 is 0.1, 1. The current proxy setting will appear in the associated text field.

Proxy Scale

Notice how the P1, P2, and P3 buttons automatically change the proxyScale parameters. Shake automatically computes proxy images based on a couple of Globals parameters. The primary parameter is the proxyScale variable. Not only will the proxy scale automatically downsize all of your input images, but it will also (behind the scenes) multiply all pixel-specific parameters such as pan or blur values by the same amount. The result is that you will end up with an image that is visually the same, other than the quality difference, at both low and high resolution.

When you activate a proxy, a proxy button illuminates at the top right of the title bar. You can use this button to quickly turn off proxies or return to any of the useProxy presets.

When generating proxy images on the fly, the following two things occur:

  • All input images (such as FileIns) are zoomed down by the proxyScale amount. So if your proxy scale is 1/3, all images are zoomed by one-third. When you change the proxyScale in the interface, you will notice that image in the Viewer stays the same size onscreen. This is because Shake zooms the Viewer to compensate. The only perceptible difference is an apparent quality drop.

  • These lower-resolution images are stored to a cache on your local disk, usually the temp folder, as they are created. Thus, they are available whenever they are needed. Currently, these images are generated only when required, so they're not created until you test a specific node. They also are generated only for the specific frame you are testingwhen you move to a different frame, the proxies for that frame will be generated and cached. If you go back to the original frame, the proxies will already have been computed and will be immediately available.

1.

Temporarily set the proxyScale back to the Base setting by clicking the Proxy button once on the top menu bar.

Now you can test your images at full resolution. This temporarily turns off the proxies.

2.

Click the Proxy button once again to turn the proxies back on.

Keep in mind that using proxyScale is much different from simply appending a Zoom of the same value at the end of the script. The Zoom will calculate everything at full resolution and then perform the zoom-down at the end. Using proxies will prezoom all the input images (which may take some time) but will then perform all further operations at this reduced resolution, which is usually much faster.

Tip

Always remember to reset useProxy to the Base setting before you render your final elements.

Proxy Ratio

Another proxy-related variable needs discussingthe proxyRatio parameter. It is needed only if you are working with images that are squeezed, such as anamorphic film images. This parameter, proxyRatio, allows proxies to be of a different aspect ratio from that of the original source images. It specifies the width-to-height ratio (relative to the original image) that you want for your proxies. Thus, if you have an anamorphic film frame that is squeezed by two times along the x -axis, you may want to set the proxyRatio to 0.5 to produce a proxy image that is unsqueezed or flattened.

Note

By setting the proxyRatio, you actually change the resolution of your image; it is not a visualization change. If you don't want to change the resolution of your image, you can change the aspect ratio of the Viewer instead of the image with the Globals viewerAspectRatio parameter. This control is located in the Globals format group.

Customize P1, P2, and P3 Settings

You can customize the P1, P2, and P3 useProxy parameters for your script or session by opening the desired proxyDefaultFile in the Globals tab and modifying the proxyScale and proxyRatio parameters. For example, I prefer to work at 1/3 scale with film-resolution files.

1.

Click the Globals tab and change the proxySet parameter from No_Precomputed_Proxies to Relative.

The Relative setting will save any generated proxies in a folder relative to your full-size file. This will make life easier when you get to the next section, "Generating Proxies."

2.

Expand the proxy2DefaultFile group.

3.

Set the proxy2DefaultScale to 1/3 and the proxy2DefaultBytes to 16 bits.

Because Shake treats Kodak Cineon 10-bit log files as 16-bit linear, it is best to keep the proxy in 16 bits as well.

4.

Change the proxy2DefaultFile name from proxy.25 to proxy.33.

5.

Remove one of the periods before the first slash (/) in the proxy2DefaultFile name.

Removing one of the periods ensures that proxies generated in the next exercise will be stored in a folder called proxy.33 in the Lesson08 folder.

The next step is to generate proxies based on your customized settings.

Generating Proxies

Up to this point, Shake has been automatically creating low-resolution equivalents of your high-resolution source images on the fly. But you might want to use another method when you are working on a project for a long time and will be doing many flipbook tests. In this case, why not pre-generate your proxies when you start the project with an initial rendering process? The proxy files will then be pulled from these precalculated images rather than being generated on the fly.

You can either pre-generate the files inside the interface, or load them up after they have been created by an external process. This is the workflow for generating proxies inside the Shake interface:

  • Open the Globals useProxy subtree.
  • Open the desired proxyDefaultFile subtree and set your scale, ratio, format, and bit depth parameters for the proxy (as you did in the previous steps).

  • Set your paths for where the proxies should go with the proxyDefaultFile setting. For instance, if you are using the proxySet:Relative setting, the proxy1DefaultFile default file path is /proxy.50/<base>.<format>, which means they will go in a folder at the same level as the source images and will be given the same name with the same frame range and in the same format.

    <base> = image name + frame range

    <format> = format extension

  • Read in your images with FileIn.
  • Select the FileIns for which you want to generate proxies.

  • Right-click one of the FileIn nodes and choose Render > Render Proxies. From this window, you can launch a render of your proxy files. Make sure to activate the button of the proxies you want to generate.

OK, let's generate some proxies. The proxy settings you entered in the previous steps are fine.

1.

Highlight the glass node and right-click it.

2.

Select Render > Render Proxies.

The Render Proxy Parameters window opens. Notice that all three Render proxyDefault parameters are turned off.

3.

Click the Render proxy2Default button to activate it.

proxy2Default is the only set of proxies that you want to generate at this time.

4.

Enter 1-19 in the timeRange parameter.

5.

Click Render.

Proxies are rendered into a folder called proxy.33 inside the Lesson08 folder.

6.

Activate the P2 useProxy setting.

A 1/3 resolution, 16-bit pre-generated proxy is shown on the screen. Yippee! But don't celebrate just yet. Proxies for your other elements have to be generated.

7.

FileIn the bullet.1-19.iff and reflection.1-19.iff clips from the Lesson08 folder.

8.

Select both the bullet and reflection nodes.

9.

Repeat steps 25, and don't forget to set the timeRange parameter to 1-19.

10.

When the proxy render is finished, close both Monitor windows.

Категории