Ported plug-ins to OpenFX

Finally found a lit­tle time to port most of my After Effects plug-​​ins to the OpenFX for­mat. So far I have Gen­er­a­tor, Celu­light, Occlu­sion­ist, Edgar, Flood­gate and a cou­ple more fil­ters run­ning in both 32-​​bit and 64-​​bit in Win­dows and Linux.

The port was fairly straight­for­ward: Back when I was rewrit­ing Nor­mal­ity for ver­sion 3.0 I’d designed a portable wrap­per around the After Effects–spe­cific parts of the code, so it would be easy to sep­a­rate the graph­ics algo­rithms from the GUI side. My plug-​​ins also share many libraries with my 3D shaders, which were already designed to be cross-​​platform and 64-​​bit capa­ble.
So this strict sep­a­ra­tion paid off for me as it made port­ing the soft­ware to the OpenFX for­mat quite painless.

What's this OpenFX business?

The OpenFX (OFX) for­mat is, as the name sug­gests, an open stan­dard for visual effects plug-​​ins.
For me as a devel­oper there are a num­ber of tech­ni­cal ben­e­fits as the API is open, rea­son­ably mod­ern and far more acces­si­ble than the pro­pri­etary, aging and con­vo­luted After Effects API my plug-​​ins were orig­i­nally writ­ten for.

The really great thing for devel­op­ers and users alike is that OFX is sup­ported by a grow­ing num­ber of com­posit­ing appli­ca­tions includ­ing Nuke, Fusion, Shake and Toxic/​Maya Com­pos­i­tor. (Notice a promi­nent com­pos­i­tor miss­ing from that list…?)
Any­way, that means the next time a soft­ware devel­oper decides to arbi­trar­ily end sup­port for your plat­form of choice, you can at least take your col­lec­tion of plug-​​ins with you.

Normality for OpenFX?

Cur­rently not, unfor­tu­nately… as much as I like the OFX API, it does have some lim­i­ta­tions which make a faith­ful port of Nor­mal­ity impossible.

I do have a solu­tion in mind but it’ll take some time to design and imple­ment. With­out reveal­ing too much at this point, I’ve been con­sid­er­ing free­ing Nor­mal­ity from the shack­les of a host appli­ca­tion alto­gether for quite some time now…

Generator

Gen­er­a­tor is a sim­ple and free plug-​​in for Adobe After Effects which can be used to cre­ate nor­mal maps from alpha mattes, such as text and shape lay­ers.
It is based on some of the same algo­rithms as my more ver­sa­tile Celu­light plug-​​ins, but is com­par­a­tively sim­ple and offers none of the advanced cus­tomiza­tions its more feature-​​rich brother offers.

Gen­er­a­tor is designed to run in coop­er­a­tion with the free Nor­mal­ity re-​​lighting solu­tion to cre­ate shad­ing and light­ing effects for text and arbi­trary shapes with­out the need for pre-​​rendered 3D nor­mal passes.

GeneratorGeneratorGeneratorGenerator

Usage

When using Nor­mal­ity to add light­ing and shad­ing effects to motion graph­ics, some­times you’d wish there was a quick and easy way to cre­ate a nor­mal map from text or shapes instead of rely­ing on a com­plex 3D ren­derer… that’s where Gen­er­a­tor comes in!
Just drop this plug-​​in on your text, shape or any other layer with a clean alpha chan­nel and you will instantly see a nor­mal map based on the layer’s shape. Gen­er­a­tor is kept inten­tion­ally sim­ple with very few options and hence lit­tle room for error — in fact, there is only a sin­gle para­me­ter to adjust.

The auto­mat­i­cally gen­er­ated nor­mal map can be used by Nor­mal­ity to add shad­ing and light­ing effects even with­out a pre-​​rendered 3D nor­mal pass.
Note: Due to a bug in Nor­mal­ity, you must pre-​​compose your gen­er­ated nor­mal map before apply­ing Normality.

Download Generator Beta 0.2

Down­load
Gen­er­a­tor for After Effects is a free down­load for Microsoft Win­dows.

Donations

Devel­op­ing free soft­ware costs time and money. If you appre­ci­ate my work and use it in pro­duc­tion, please donate.
I will be more inclined to release cool stuff in the future if I see that my work is appreciated.

Atlas 0.3

I’ve added proper color-​​space con­ver­sion to Atlas, so you shouldn’t be get­ting any more over-​​saturated results.

The one remain­ing bug I’ve come across is the bro­ken Rein­hard ’05 map­ping — please let me know if you find any­thing else bro­ken or behav­ing unexpected!

Down­load the newest ver­sion of Atlas.

Atlas 0.2

Well, that was quick! Thanks to user feed­back I was able to fix two nasty lit­tle bugs in the orig­i­nal release of Atlas right away.

Grab the lat­est ver­sion!

Atlas 0.1 is out

As pre­vi­ously announced, here’s the first release of my new tone map­ping plug-​​in for After Effects, Atlas.
The release is buggy and prob­a­bly not fit for pro­duc­tion, but it’s open-​​source so I hope to get some help to bring it up to speed! Atlas is released under the free GPL license.

This release is Win­dows only for now… how­ever, the full source code is included, which means that any­one with more time on their hands than me can feel free to com­pile a Mac ver­sion. I didn’t try it myself, but there’s no rea­son why it shouldn’t run on Mac OS X.

To com­pile the code you will need to down­load and link with the After Effects SDK. For legal rea­sons I unfor­tu­nately can­not dis­trib­ute these files with Atlas. The required pfstmo libraries are included with the down­load, however.

The code is not yet well doc­u­mented, but the plug-​​in itself is just about as sim­ple as it gets, so you should find your way around eas­ily if you’re famil­iar with the SDK.

Hints on usage

If you’re not famil­iar with the con­cept of tone map­ping, Wikipedia has a good intro­duc­tion that should give you an idea of the use and func­tion­al­ity of this ver­sa­tile tech­nique.
Please note that for obvi­ous rea­sons the effect is most use­ful in 32-​​bit color mode with 32-​​bit source images. It will work in lower modes but the result­ing effect might not be what you expect.

Please go ahead and down­load Atlas and then let me know in the com­ments if you come across any bugs or have other suggestions!

Atlas

Atlas is a port of the pfstmo tone map­ping oper­a­tors to the Adobe After Effects plug-​​in for­mat. This plug-​​in is free open source soft­ware licensed under the GPL.

AtlasAtlasAtlasAtlasAtlas

Tone Mapping

So what’s tone map­ping you ask? Accord­ing to Wikipedia:

Tone map­ping is a tech­nique used in image pro­cess­ing and com­puter graph­ics to map a set of colours to another; often to approx­i­mate the appear­ance of high dynamic range images in media with a more lim­ited dynamic range.

The tech­nique is par­tic­u­larly use­ful if you have high dynamic range images, such as ren­dered CG-​​imagery in float­ing point color-​​depth (OpenEXR) or HDR pho­tographs, and you want to bring their broad spec­trum into a range more suit­able for dis­play on a com­puter mon­i­tor or tele­vi­sion screen.

There exist numer­ous tone map­ping oper­a­tors that approach this prob­lem from dif­fer­ent angles and achieve vary­ing results.

Sup­ported tone map­ping operators
Drago
Ashikhmin
Rein­hard ’02
Rein­hard ’05
Man­tiuk
Durand
Pat­tanaik
Fat­tal

Lately, the effect has also become some­thing of a fad in photographer’s cir­cles, as a quick Flickr Search will show.
Still tone map­ping is a very ver­sa­tile tech­nique that can be used for pho­to­re­al­is­tic as well as artis­tic effects.

Download Atlas 0.3 (Beta)

Down­load
Sorry, Win­dows only for now. The included source code may be used to com­pile a release for Mac OS X by some­one with more time on their hands than me.
If you want to play with the code you will also need to install the After Effects SDK, which I can­not include for legal reasons.

Usage Notes

Atlas is designed to work exclu­sively in 32-​​bit float­ing point color-​​space. Apply­ing Atlas in 8-​​bit or 16-​​bit projects will yield unpre­dictable and/​or pos­si­bly unbe­liev­ably gross and ugly results. Don’t say I didn’t warn you…

Donations

Devel­op­ing free soft­ware costs time and money. If you appre­ci­ate my work and use it in pro­duc­tion, please donate.
I will be more inclined to release cool stuff in the future if I see that my work is appreciated.