
The Properties section displays options specific to the Quartz composition used by the plug-in:
- The Composition can only render fields at full frame dimensions option should be on if the Quartz Composition expects fields to be doubled to full frame size before being processed. Note that somes host (Motion, After Effects) may already opt for feeding frame-sized fields to all plug-ins. This option merely enforces this requirement under all circumstances. Turn this option off if the plug-in only affects individual pixels (e.g. a color correction filter) and/or does not render any geometric shapes. You may also turn this option off if your plug-in is capable of its own pixel aspect correction. Rendering speed may be doubled when this option is off, since the Quartz Composition will have to process half as many pixels. You may also turn this option off if you have designed your composition to interpret the pixel aspect ratio of the input/output images, and if it is capable of producing an image that is scaled accordingly.
- The Composition can only render fields/frames at square pixel aspect ratio option should be on if the Quartz composition renders any shape that must be preserved regardless of the pixel aspect ratio of the footage. This option ensures that images fed by the host to the plug-in are always upscaled to have a 1:1 pixel aspect ratio. This option guarantees that if the plug-in renders a circle to the screen, it will not become oval by the time the footage is adjusted according to its display aspect ratio. This option should be on for most plug-ins, including blurs and sharpening filters whose results are assumed to have a undistorted shape when displayed. Rendering speed is negatively affected when this option is on, as it potentially adds a scaling operation to each image processed. (Review the next option if you want this option to be user-controllable.)
- The Add a parameter to control square pixels correction option lets you add another parameter to the plug-in which gives users full control over the Composition can only render fields at square pixel aspect ratio option. Users may want to disable square pixels correction if they have already performed a similar adjustment to their footage, or if they are willing to trade geometric uniformity for shorter rendering times. The parameter added by this option is called "Correct for Aspect Ratio", and it appears at the end of the parameter list.
- The Renders each pixel independently of neighbors options enables an optimization that allows the host to use a single memory buffer to hold both fields, during effect processing. You should enable this option only if the Core Image units used by the composition do not access neighboring pixels. This is often true only for color adjustment filters.
- The Preserves the alpha channel of all input pixels option enables an optimization that allows the host to discard the alpha information during effect processing. Enable this option only if your composition renders an output image that has the exact same alpha values as its input.
- The Uses time to control animation option should be on if the Quartz composition uses the "Patch Time" tool to drive any computation. When this option is on, on older versions of FxPlug hosts (FCP 5.1.x and Motion 2.1.2), FxFactory adds a popup parameter to the beginning of the parameter list, which allows the user to specify the FPS settings of the current project. This option is irrelevant if you are only targeting Final Cut Studio 2 applications, or Final Cut Express 4.0.
- The Renders the same image if no inputs/parameters have changed option lets you control whether the host will ask your plug-in to continuously render even when the source clip and/or parameters have not changed from one frame to the next. This may happen when a filter is applied to a still image rather than a video clip. By enabling this option, the host will only ask the plug-in to render once, and will reuse the output image for the duration of the clip.
When this option is on for generators, it enables "static "generators whose image only changes in response to a parameter change. If a generator does not animate automatically, turning this option on will let it preview/render much faster - in particular, it will turn the generator into a "green line" (Realtime-capable) plug-in inside Final Cut Pro. - The Composition caches assets for better performance option tells FxFactory that the composition may cache certain assets (e.g. images, movies) and that FxFactory should therefore take action to best preserve the contents of this cache. Please note that a composition may still be unloaded when the system resources are low, and that a plug-in should always render correctly whether or not the cache contents are preserved. It is also important to know that certain hosts may render multiple frames concurrently using multiple background processes, and that independent copies of the same composition may be each rendering a given portion of the clip/layer on behalf of the host.
- The RGB + alpha, 8 bit integer option represents the most basic rendering requirement of any plug-in, and it is always on.
- The RGB + alpha, 16 bit half-float option enables high-precision rendering in RGB inside Motion and Final Cut Pro. Half-float provides the best combination of quality, performance and compatibility across different graphics hardware.
- The RGB + alpha, 32 bit float option enables the highest-precision rendering quality inside Motion and Final Cut Pro. Please note that certain features of the Quartz composition may not work on all graphics hardware at this depth setting. For better compatibility and comparable results, please use half-float instead.
- The YUV + alpha, 8 bit integer option enables native YUV processing inside Final Cut Pro.
- The YUV + alpha, 16 bit half-float option enables high-precision rendering of YUV material inside Final Cut Pro.
- The YUV + alpha, 32 bit float option
Please note that the 16 and 32 bit floating point options affect the depth of the OpenGL primitives used by FxFactory to communicate inputs and outputs to the Quartz composition. The actual precision used for image manipulation and storage may be higher. Both Core Image and the OpenGL Shading Language advertise a 32 bit floating point pipeline for their computations. Most graphics cards’ drivers prefer higher precision textures when only 16 bits are requested.
The High-precision output option lets you select how out-of-range values generated by your plug-in are treated in Final Cut Pro. By default, all output values are clamped to Video “Super-White”. The other options for clamping include Video “White” and “Unclamped”. You can allow the user to change the current clamping method by enabling the “Add a parameter to control high-precision clamping” option. Not all plug-ins are designed to generate out-of-range values, and for most users the “Clamp to Super-White” option should be left as the default.
The Anti-aliasing option controls whether an hardware-assisted anti-aliasing method should be enabled when rendering the plug-in’s composition. Due to the limited support for hardware-assisted anti-alasing in high-precision, this option is only available when the maximum bit depth supported by the plug-in is 8 bit integer. If you would like the user to be able to control this setting from within the host, enable the “Add a parameter to change ant-aliasing method” option.
The Working color space option lets you pick a color space that will be used for effect computation. When the “Linear” option is selected, gamma-corrected color values coming from the host will be converted to a linear color space. This is the most appropriate method for generating the correct output in the vast majority of cases. When the “Uncorrected” option is selected, the color values coming from the host will be fed to your composition directly, without any conversion. If you would like the user to be able to control this setting from within the host, enable the “Add a parameter to change working color space” option. It may be helpful to choose “Uncorrected” (or to let the user do so) if the plug-in generates, or operates on, smooth gradients. Please note that the Working color space option only matters when the plug-in is processing RGB images. If the plug-in is capable of YUV processing, and it is being fed Y’CbCr values from the host, those values will always be uncorrected.
High-precision Rendering in Motion
High-precision (16 bit half-float and 32 bit float) rendering is available in Motion when the Project's Bit depth setting is either 16 bit (float) or 32 bit (float):

FxFactory will always match the best depth supported by the plug-in to the Project settings (e.g. a plug-in that is only capable of high-precision rendering at 16 bit half float, will render at that quality setting when either one of the Motion float settings is enabled). For performance and compatibility reasons, it is recommended to use 16 bit half-float in lieu of 32 bit float.
To ensure that Motion is using high-precision rendering during preview as well as rendering, make sure that the "" option is enabled under the "View" popup menu:

High-precision Rendering in Final Cut Pro
High-precision (16 bit half-float and 32 bit float) rendering is triggered in Final Cut Pro by turning on the Render all YUV material in high-precision YUV option under the "Video Processing" tab of the Sequence Settings window:

If a plug-in only supports RGB float pixel formats, Final Cut Pro will convert all YUV material to RGB. If a plug-in cannot be designed to support YUV natively, it is always best to let Final Cut Pro and Final Cut Express do the conversion from YUV to RGB, than attempting to do the same inside the Quartz composition.
Please note that the settings of the "Video Processing" tab only affect the quality while rendering. Final Cut Pro always previews effects at 8 bit.
High-precision Rendering in After Effects
High-precision (16 bit integer and 32 bit float) rendering is available in After Effects when the Project's Depth setting is either 16 bit or 32 bit:

A plug-in will be able to render in 16 bit integer or 32 bit float precision inside After Effects as long as it supports at least 16 bit half-float rendering internally.
YUV Support in Final Cut Pro
When rendering in YUV, the images fed to the Quartz composition will contain Y (Y', luma) values in the first component, U (Cb) values in the second component, and V (Cr) values in the third component. The fourth component contains alpha values as usual. Many image processing filters available to your Quartz Composition may produce the correct results only with RGB images. If the Quartz composition is sensitive to the color information present in each channel, it should read the pixel format of incoming images and mutate its rendering process accordingly.
Due to a bug in Final Cut Pro 5.1.2, it is not possible to build YUV capable generators using FxFactory. Final Cut Pro 5.1.2 always reports the output frame pixel format as RGB, hence making it impossible for the plug-in to differentiate between the two formats. The workaround is to disable all YUV pixel formats for generators until this bug is fixed.
Plug-ins that support YUV pixel formats may still be asked to render in RGB, depending on the Final Cut Pro sequence settings (under the "Video Processing" tab) and on the combination of pixel formats supported by the plug-in.
A good rule of thumb is to always enable RGB and YUV pixel formats in pairs, that is: enable YUV + alpha, 16 bit half-float if the plug-in supports RGB + alpha, 16 bit half-float. By guaranteeing that both pixel formats are supported at the same depths, Final Cut Pro can avoid converting between RGB and YUV.