The AnyFX Developer Tools allow developers to create effects and transitions for several major NLE platforms (Premiere Pro, After Effects, DaVinci Resolve, Vegas Pro, PowerDirector, Video Pro X and more, on Windows), and effects for Photoshop. Effects and transitions are available through our AnyFX Shared Plugin. The required development environment inludes only text editor capable to save ANSI text like Notepad and AnyFX Developer Tools -- no Visual Studio or XCode, no SDKs (Software Development Kits), you don’t even need an NLE installed to start coding. Note: While coding in Notepad is possible, we recommend using a free programmer‑oriented text editor such as VS Code.
Effects must be written in the Cg shader language and compatible with the CgFX format, which is nearly identical to Microsoft’s HLSL language and Effect Format (.fx).
The Effect Format (.fx) is a shader file format originally introduced by Microsoft and widely supported through NVIDIA’s Cg Toolkit as CgFX. It provides a structured way to define all the components needed to render an effect -- such as shader code, parameters, user interface metadata and rendering sequences -- within a single, self-contained file. The format is designed to make complex visual effects easier to author, maintain, and integrate into an engine by combining both the GPU programs and the logic that drives them.
Key Concepts
Variables and Parameters CgFX format allows you to declare variables that control the behavior of the effect. These can include: Scalar and vector values, textures and samplers, matrices, custom data structures.
Variables can include annotations, which provide metadata used by tools or runtime systems. In many engines, these annotations define how a parameter appears in the user interface—its label, range, default value, grouping, and more.
Functions Shader functions written in Cg/HLSL syntax define the actual GPU operations. These may include: Vertex shaders, fragment/pixel shaders, utility functions. Functions can be reused across multiple rendering passes, making the .fx format efficient for complex effects.
Rendering Sequence Rendering behavior is organized into techniques, each containing one or more passes. A technique describes a complete rendering step, while each pass defines a single shader pair (which vertex and pixel shaders to use) in that step.
AnyFX Developer Tools can compile effects for our engine from .pafx files (Pixelan AnyFX file format) -- a subset of the CgFX format, with the main difference being that our engine ignores render states like Culling and Depth/Stencil as irrelevant to 2D image processing effects.
Although this may look complicated, a fully functional effect requires only a few dozen lines of code, much of which we provide as a template. For not too complex effects, it is enough to change the EffectName and EffectFolder, describe the necessary controls, and code the desired effect in the pixel shader. Below is the full source for a fully functional brightness and contrast effect:
// Global Definitions
int sas : SasGlobal
<
string Type = "filter";
int HostVersion = 0x00010000;
string TilingCaps = "any";
string MediaCaps = "any";
string EffectName = "Simple Brightness and Contrast";
string EffectFolder = "[sys]\\Effects\\Third Party\\Examples\\Color";
>;
// Effect Parameters and User Interface
float g_fOffset : PARAM
<
string Name = "Brightness";
string UIType = "slider";
> = 0.5;
float g_fGain : PARAM
<
string Name = "Contrast";
string UIType = "slider";
> = 0.5;
// Input and Output Textures
texture inputStream : INPUTSTREAM0;
texture output;
// Sampler
sampler2D sSrc = sampler_state
{
Texture = <inputStream>;
AddressU = ClampToEdge;
AddressV = ClampToEdge;
MinFilter = Point;
MagFilter = Point;
MipFilter = Point;
};
// Vertex Shader Output Structure
struct VS_OUTPUT
{
float4 Position : POSITION;
float2 Tex : TEXCOORD0;
};
// Vertex Shader
VS_OUTPUT VS_Basic( float4 vPosition : POSITION,
float2 vTexCoord : TEXCOORD0)
{
VS_OUTPUT Output;
Output.Position = vPosition;
Output.Tex = vTexCoord;
return Output;
}
// Pixel/Fragment Shader
float4 BC_PS( VS_OUTPUT vsin ) : COLOR0
{
float4 clr = tex2D( sSrc, vsin.Tex );
float a = clr.a;
clr = clr * (0.5 + g_fGain) + g_fOffset - 0.5;
clr.a = a;
return saturate(clr);
}
// Technique
technique Technique0
{
pass Pass_0
{
VertexShader = compile glslv VS_Basic();
PixelShader = compile glslf BC_PS();
}
};
Getting Started Guide (Quick Start)
1. Set Up Your Workspace
Download and install AnyFX Shared. During installation, ensure the Effect Developer Tools component is selected in Select components panel. If you already have AnyFX Shared installed -- run Add or Uninstall Packs in your Start > Pixelan AnyFx Shared menu. Select Add or remove components and in the next panel make sure you have the Effect Developer Tools component selected. Note: Restarting Windows is often necessary to refresh the Start Menu database and make newly installed Effect Developer Tools shortcut appear.
Install a code-friendly text editor. We recommend Visual Studio Code for syntax highlighting. Set up the file association for .pafx file extension. In Windows 11, go to Settings > Apps > Default apps and enter .pafx in the search bar, click Choose a default and select your preferred editor.
Run FX Developer Tools. Navigate to Start > Pixelan AnyFx Shared and run the FX Developer Tools. You will see the effect's user interface window on the left and the FX Developer Toolbox on the right. Click the Compile button in the Toolbox to build the effect and view its preview and controls. Right-click the Compile button and select Edit Source to view the effect's underlying code.
2. Start your own effect or transition. Click the More..button and select New Project. Enter your desired effect name and folder. We recommend using your name, company name, website, or email address as the "main" folder (ensuring the email contains no forbidden characters). Please use this same main folder name for all your effects and transitions. Click OK to generate a project and a basic source file for the selected type (filter or transition), which will then open in Developer Tools. That’s it! You can now open the source to start experimenting or copy code segments from our examples.
Examples location: C:\Users\Public\Documents\Pixelan\AnyFX Shared\Tools\Examples
⚠️ Important: Do not modify or use projects directly within the Tools\Examples folder as starting points. Future updates to Developer Tools will overwrite these files and discard your changes.