Copy link to clipboard
Copied
How to export to (Open EXR with alpha chanel without being premultiplied)
just render to Open EXR with alpha packed up within frame and not being premultiplied?
Any thoughs?
Sorry, this DID work! I created a script file called EXR.jsx and added the code:
var section = "Misc Section";
var pref = "Allow writing straight alpha into EXR";
var type = PREFType.PREF_Type_MACHINE_INDEPENDENT;
if(app.preferences.havePref(section, pref, type))
{
if(app.preferences.getPrefAsBool(section, pref, type))
{
alert("EXR straight alpha pref already set to TRUE.");
}
else
{
alert("EXR straight alpha pref was set to FALSE. Setting to TRUE.");
app.preferences.savePrefAsBool
...
Copy link to clipboard
Copied
Right, but EXR was created for use in 3D rendering, where alpha means transparency and renders are premultiplied. Premultiplied is in the spec.
I'm glad you're able to write a straight alpha and use it this way, but it was not the intention of EXR. It could also be a little risky because you're not guaranteed to get good RGB pixels in areas where the alpha is 0, but if it's working for you I'm glad.
If you think EXRs should support straight alpha, you can make your case to the steering committee.
Copy link to clipboard
Copied
The part about this being beyond the colorist's ability is not true anymore. Their support team breaks everything out. We are getting specs from D.I. houses now that show exactly how to do this in Nuke. They're giving how-to documentation on multi-layer EXRs with 4 mattes per layer. After Effects is woefully far behind the industry in this area. We just got the ability to write timecode reliably in AE 2020. Really puts AE artitst at a disadvantage here.
Copy link to clipboard
Copied
After Effects can now export any channels you like in an EXR using Composition > Save Frame As > ProEXR. Granted, it's kind of a hack and doesn't go through the regular AE render queue, and you have to figure out how to set your layers up properly. But it works.
Copy link to clipboard
Copied
Interesting. I've always considered straight alphas to be far superior to premult due to less colour polution in semi-transparent pixels and there's no risk of it being matted with the wrong colour. Premult is pretty terrible when the BG is not a solid colour as well but I suppose this happens less often when coming from a CG render. It surprises me that staright is not written into the spec as an optiona at least rather than the default.
Copy link to clipboard
Copied
The OpenEXR spec says the image should be premultiplied, and that is assumed to mean premutiplied over black. When you premultiply over black and have 16- or 32-bit floating point pixels, you can generally convert back to straight without any noticeable loss, as After Effects does because it works with straight internally. Film compositing programs like Nuke are premultipled internally, so EXRs work smoothly there.
The advantage of straight alpha is you can recover RGB values in your transparent areas just by filling in the alpha. Or you can use the alpha for some completely different purpose like the guys above were trying to do.
The advantage of premultiplied alpha is if you have RGB values in an area with 0.0 alpha, this composites as a glow or a light ray—a purely additive element that doesn't block the background. If your 3D renderer can create glows, this is how they'll probably turn out, and you can't composite them properly in a program like After Effects without resorting to some tricks.
OpenEXR has some cool samples of non-zero RGB over zero Alpha. Try importing them into After Effects and then try setting alpha interpretation to Ignore.