[Bf-committers] Color space and alpha issues

Troy Sobotka troy.sobotka at gmail.com
Mon Dec 19 00:51:41 CET 2011

Brecht wrote:
"So perhaps there's still toggles needed to control if these operations
should happen on premul/key alpha (for image load/save, and for color
correction nodes)."

+1. I still believe this is fundamentally mandatory.

Matt wrote:
> That infamous Adobe thread has interesting background info in there, but I
> think it's a little bit of a red herring for this issue in Blender - it's
> more focused on specific behaviour that Photoshop has when loading EXRs,

Disagree. The point I think that should be taken from it is that in a
fully straight alpha system, it is impossible to deliver the
functional range of associated alpha without workarounds. If we are
discussing the merits of using an internal representation of alpha, it
might be prudent to learn from the downsides of an unassociated alpha
system. This is echoed by Larry Gritz (Open Image IO architect):

"I am not completely without sympathy to apps that started out life
with unassociated values.  Color+mask is analogous to loading your
airbrush with a certain color paint, and spraying it with a mask
covering some areas.  So for a painting app designed a long time ago
(few bits per pixel, no floating point, and no experience with image
synthesis), it was a representation that made some sense, and allows
independent manipulation of the mask without losing precision in the
color channels.  But it doesn't make much sense these days, IMHO.
Image synthesis used the cleaner abstraction, painting did not."
[Citation pending as index isn't updated]

> The advice I got from the comp lead on my previous project was that his
> recommended convention for working in Nuke with premultiplied inputs was
> always to manually un-premult before any colour/filtering operations and
> premult back again at the end of that chain before over-ing with other
> imagery.
> With this in mind, at least for the compositor, I'm sympathetic to the idea
> of making the correct behaviour the simplest, and default, especially in
> Blender when there is probably a smaller proportion of imaging experts who
> understand this well in the userbase.

As long as this doesn't hand cuff an artist.

If it does, it makes more sense to go with added complexity and force
the artist to learn the ins and outs of alpha for certain operations.

TL;DR: Toggles +1

With respect,

More information about the Bf-committers mailing list