Use
the CTL tool to write a color transformation language (CTL) expression to
control the resulting color of a pixel.
The CTL tool uses the
same UI as the PXL tool—see
PXL Tool UI.
The CTL tool supports
every feature of CTL except print statements. For a more complete
list, refer to the CTL manual: http://ampasctl.sourceforge.net/CtlManual.pdf.
The main function of the script will be called for each pixel of the
output image.
Before applying a script,
several conventions must be respected:
- The entry point of the script is the
“main” function. This function must be present in every script.
- The main function return value is ignored.
- The main function must have four parameters
for each input image. They correspond to the RGBA channels of the
pixel of the input image. They must be of type float, and be qualified
as “input varying”. The name of these parameters must be the component
letter in lower case (i.e. “r”, “g”, “b”, and “a”), concatenated
with the name of the input image. Because the primary input of the
CTL tool is called “In”, the corresponding arguments to the main()
function for that input image will be:
- input varying float rIn
- input varying float gIn
- input varying float bIn
- input varying float aIn
- Additional images (if any) follow the
same convention: for an additional input image Bg, the corresponding
arguments to main would be:
- input varying float rBg
- input varying float gBg
- input varying float bBg
- input varying float aBg
- 4 parameters of the main() function must
be present to define the output pixel color. They correspond to
the RGBA channels of the output pixel. They must be of type float,
and must be qualified as “output varying”. The name of these parameters
must be the component letter in lower case concatenated with the
literal string “Out”:
- output varying float rOut
- output varying float gOut
- output varying float bOut
- output varying float aOut
- 1 parameter of the main function must
be present for each input parameter. They must be the same name
and type as the parameter of the UI. Ex:
The following is a sample
script and procedure that blends two images.
To blend two images:
- Connect a CTL tool node into an output
node in the Schematic view.
- Connect image 1 to the In input of the
CTL tool.
- Create a second input for the CTL tool
by right-clicking on the node and selecting Add input from the menu.
- Name the new input Img1 when prompted.
- Connect a second image to Img1 input.
- Select the CTL tool node and click the
Edit button to open the Toxik internal editor.
- Type the following script into the editor
or copy then paste it in using Ctrl +
C (for Windows and Linux) or Cmd + C (for
Mac OS) and Ctrl + V (for Windows
and Linux) or Cmd + V(for Mac OS):
The two images are blended.
NoteToxik fully supports
the CTL import statement and the CTL_MODULE_PATH environment variable
used to search for CTL programs in a set of directories on disk.
As such, it can be convenient to structure CTL code in Toxik such
that the main() function above is used simply as the entry point
that calls other CTL functions defined in separate files that are
imported with the import statement. You may set the CTL_MODULE_PATH
in the Tool panel of the Project Preferences panel.