/GPU_Skeleton

GPU_Skeleton is a GPU-based Adobe After Effects plugin template, providing a convenient starting point for creating universal compute shaders compatible with Metal, Cuda, and OpenCL. It features image display in the effect window, shader debugging, and terminal printouts for further insights.

Primary LanguageCApache License 2.0Apache-2.0

GPU_Skeleton - GPU Based Plugin Template for After Effects

This repository serves as a template for GPU-based plugins for Adobe After Effects. It employs Adobe's macro set and boost postprocessing from Boost to create universal compute shaders compatible with Metal, Cuda, and OpenCL.

Getting Started

To turn this template into your own project:

  1. Clone this repository into the Adobe After Effects SDK folder: SDK/Examples/Effects/.

  2. Open the setup.sh file and replace the project name:

    # Original and new project names
    OLD_PROJECT_NAME="GPU_Skeleton"
    # Please replace with your project name
    NEW_PROJECT_NAME="NewProjectName"
  3. Run the setup file: ./setup.sh. This will replace all instances of the old project name in file names, variables, etc. with the new name. It also removes information about this repository and creates a new one.

Features

The following features are implemented in this template:

  • Display an image (PNG) in the effect window and print debug information inside it using a custom parameter. Also, use the stb_image library to load the image into the global variables buffer.
  • Debug a Metal shader by retrieving compilation errors and displaying them in the effect window in the corresponding custom parameter.
  • Debug using Debug.h and macros to print information in the terminal, as well as to calculate time. This functionality is taken and modified from ISF4AE.

References

The following resources were used:

Acknowledgements

Many thanks to Nate Lovell for his video about GPU, which inspired the creation of several great plugins and this template to kickstart your projects conveniently.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.