For custom 3D work or GPU-native processing of images and videos, a working knowledge of coding shaders is essential. Custom shaders are widely supported in tools like Max/MSP/Jitter, Processing (with some work), Java coding, Pd/GEM, Quartz Composer, and even many other video and 3D apps. In Jitter, for instance, you can basically add some custom shader code to an existing patch without any other coding.
Getting started, though, isn’t an easy task. There’s the “orange book”, the complete OpenGL shader reference linked below. It’s worth owning, but trying to decipher it as a beginner is a little like trying to figure out how to build a car from an automaker trade journal when you don’t know how to change your oil. You really don’t have to be a hard-core programmer to do this, but you do need somewhere to begin.
Typhoon Labs have mercifully posted a very easy-to-approach guide to writing custom shaders as a series of comprehensive but not overwhelming PDFs:
You’ll have to click through to find it: Free Stuff > OpenGL Shading Language Course. The course assumes you’re using Typhoon Labs’ excellent OpenGL Shader Designer for Windows and Linux (see previous coverage, below). If you’re on a Mac, though, you can fairly easily translate the concepts to Apple’s similar tool, the OpenGL Shader Builder (see description on Wikipedia). OpenGL Shader Builder has the added bonus of being able to export to Xcode, with an included sample project. But you can also just take your successful shader from any of these tools and use it in any software that lets you wrap shaders, like Jitter or GEM.
And once you’ve completed this, you really should hit the orange book. Just don’t drop it on your foot; that’ll smart:
Looks yellowish there, but it’s really orange.