Shouldn't premultiplied pixels be black?


#1

Hello. I seem not to understand something about premultiplication. Here it says http://www.spherevfx.com/written-training/miscellaneous-written-training/understanding-premultiplied-images/ that where alpha has black pixels, it will result in black pixels if an image is saved as a premultiplicated. Sounds simple, but I can’t get any format, which supports premultiiplication it seems. For example, targa supports this feature, but if I render on a colored background, and it’s transparent, it never gets black and stays the same.
If I post-multiply it in post (in Fusion), it gets black.
Shouldn’t it be black against a background? I know I should render on black not to get fringes, but why it stays blue and not multiplied, and therefore black?


#2

Its likely the motion blur.
Your info page link wasn’t considering that (static image).

Item 3 on this page talks about that conflict.

An update: exr might allow for more flexibility (if you aren’t using it already another reason to try?!) .
http://www.openexr.com/photoshop_plugin.html


#3

Thank you for the reply! I still find it confusing, as the background should be black, if premultiplied.
I tried to render with openEXR, but it gives the same result: if the transparent background has a color value different than black, it’s not black in the saved image. There’s also no option in OpenEXR for premultiplication.


#4

Pre-mult unpre-mult is controlled in the render options.
I rarely used un-premultiplied I can’t even remember the circumstance that required it.

But the RGB channels are getting values other than 0 or 1 thanks to the motion blur.
Many comp programs have color key/correction tools that might help eliminate.
Fusion its likely the channel booleans

It is a confusing topic. In the end keep testing until you get the result you want in Fusion.
I haven’t used it is years but maybe check those forums and tutorials.


#5

Why not render out a Motion Vector pass and handle the motion blur in Fusion? I would think that would solve the issue wouldn’t it?


#6

Don’t know if this helps with Fusion, but in After Effects one has to specify the matte color by hand.

Example: https://gaso.1g.fi/kuvat/alpha.png


#7

Thank you for replies! The issue is not motion blur. It seems 3ds max does not do premultiplication at all. It just uses background color in RGB. Because when using other color than black, it’s not getting black color as it should.
To make myself completely clear, I’m pinpointing the color of the background, not the semi-transparent pixels of the motion blur or antialiasing.
People usually use black color for the background or white I guess.
I found that in 3ds max “Note that only background images with alpha channels or black backgrounds are supported when compositing in other programs such as Photoshop®.” Perhaps that’s the anwser: either it does not do any premultiplication with alpha, or I understand this statement from help files incorrectly.
This is a rendered image, opened in Fusion or photoshop. it looks identical in both cases, and the background is blue as I set it in 3ds max, not black as it should. The same when saved as OpenEXR.


#8

Hi, Mr. 3d

Maybe I’m misunderstanding your issue, but premultiply in Max means that any pixels that are less than 100% opaque, get blended with the background color (whatever color you’ve specified in the Environment dialog). I render out TGA almost exclusively from Max, and when I need an alpha channel, I render 32 bit NON pre-multiplied. Although the RGB image will look messed up (edges will be aliased, and motion blurs will not show the background color through them), the alpha channel will be correct, and once you use that alpha channel to cut the image out of the background, it will look perfect, with no halo-ing.