Softimage SDK Programmer's Guide > Customizing with the SDK > Custom Fx Operators >

# What is a Custom Fx Operator?

Fx operators let users perform compositing and effects tasks ranging from modifying and fine-tuning clips to verifying and tweaking the results of a multi-pass render. Complex special effects sequences can be created by connecting Fx operators in the Fx tree.

The Softimage Compositor currently includes over 130 film quality effects whose parameters are completely animatable using expressions or function curves. Using the UFO API, you can create your own Fx operators for use inside the Fx tree.

Fx operators perform a specific image-processing effect. They contain a selection from a set of pre-defined user functions. Once loaded into the Fx tree, they are automatically used like any factory Fx operator shipped with the Softimage Compositor. The user interface is built automatically for you based on the parameters exposed in the operator's implementation.

Anybody with experience with C or C++ and has an understanding of the effect they want to achieve can write a custom Fx operator.

Note that the UFO API is for defining Fx operators only. You cannot write anything back to the Softimage scene. However you should be able link with libraries and call any function in a Fx operator, including global functions in the Softimage object model or C++ API. Note, however, these limitations:

- You cannot call any function that requires anything that an update context provides to a Softimage operator, since Fx operators do not have one.

- You cannot make calls to the object model inside a callback such as ufoRenderLine or ufoRenderPixel since these functions run in parallel on multiple CPUs and Softimage is not thread-safe.