? Explain Render Options Alpha and Pre Multiplied Alpha ?

DiomedeDiomede Posts: 15,436
edited June 22 in Carrara Discussion

Basic question.

In the Render menu, Output, File Format submenu

There are options to Render Alpha Channel, and for Use Premultiplied Alpha. 

What does premultiplied alpha mean? 

What are the use cases for each option?

 

EDIT: I know an alpha is to a null background, I don't understand pre-multiplied.

Post edited by Diomede on

Comments

  • Richard HaseltineRichard Haseltine Posts: 110,630

    With pre-mulitplied the semi-transparent pixels get the background colour mixed in - that can give a smoother blend if whatever you ar elayering it over roughly matches the background colour but a glaring halo if not.

  • DiomedeDiomede Posts: 15,436

    Thank you

  • WendyLuvsCatzWendyLuvsCatz Posts: 41,070

    something you don't want to do if rendering png series for billboards 

    it's OK if you are adding the same background in post

    if using a big 16K HDRi for example, You can render with a low resolution lighting version 

    then render just the high resolution one as the background 

  • StezzaStezza Posts: 9,099

    going full Carrara here:

    Every pixel in a rendered image has:

    • R, G, B (color)

    • A (alpha, transparency)

    1. Straight Alpha (un‑premultiplied)

    RGB is stored as if the pixel were opaque, even if it’s actually transparent.

    Example: A pixel that is 50% transparent red:

    • R = 1.0

    • G = 0

    • B = 0

    • A = 0.5

    When compositing, the formula is:

    Cout=Csrc⋅A+Cdst⋅(1−A)

    This works perfectly if the compositor handles straight alpha correctly.

    2. Premultiplied Alpha

    RGB is already multiplied by alpha before saving:

    R′=R⋅A

    So the same pixel becomes:

    • R = 0.5

    • G = 0

    • B = 0

    • A = 0.5

    Now the compositor uses:

    Cout=Csrc+Cdst⋅(1−A)

    This avoids a major problem…

    With straight alpha, the RGB channels still contain the original background color.

    If Carrara rendered your object over black, the transparent edges contain black RGB values.

    When composited over a different background (e.g., sky blue), the black edge leaks through → dark halo.

    With premultiplied alpha, the RGB values are already faded toward transparency.

    There is no leftover background color to leak.

    This is why premultiplied alpha is the standard in:

    • film pipelines

    • OpenEXR

    • linear compositing

    • VFX studios

    Premultiplied alpha is bad for PNG billboards because the RGB gets darkened and you lose edge detail .

    But it’s good when:

    • you’re compositing over the same HDRI you lit with

    • you want film‑style smooth edges

    • you’re rendering EXR sequences

    • you want mathematically correct blending

    In summary:

    Premultiplied alpha prevents color contamination at semi‑transparent edges by ensuring the RGB channels represent actual visible light instead of “imaginary opaque color,” which eliminates halos during compositing.

    yes, I'm bored laugh

  • WendyLuvsCatzWendyLuvsCatz Posts: 41,070

    oh, I had it the wrong way around blush

  • DiomedeDiomede Posts: 15,436

    Wow, thank you Dave for the detailed response. Great information. yes

Sign In or Register to comment.