I think it's pretty interesting how similar this is to homogeneous coordinates! Adding the alpha channel let us make these transformations commutative (like it made rotation/translation/scaling commutative), it lets us "fix" things like the fringing problems (like it "fixed" translation and made it linear), etc.
enzyme
Mathematically, is this basically the same as non-premultiplied alpha, except that we divide the colors by alpha_C at the end?
Heisenberg
@enzyme you can see the difference when you are merging tiles. Premultiplied alpha makes sure that colors with low alpha won't mess around as they are non-premultiplied
Just to clarify, alpha(C) is still alpha(B) + (1-alpha(B))alpha(A), and the final color would be (taking the red value as an example)
red(C) = [alpha(B)red(B) + (1-alpha(B))alpha(A)red(A)] / [alpha(B) + (1-alpha(B))alpha(A)]?
@marshmallow Right.
I think it's pretty interesting how similar this is to homogeneous coordinates! Adding the alpha channel let us make these transformations commutative (like it made rotation/translation/scaling commutative), it lets us "fix" things like the fringing problems (like it "fixed" translation and made it linear), etc.
Mathematically, is this basically the same as non-premultiplied alpha, except that we divide the colors by alpha_C at the end?
@enzyme you can see the difference when you are merging tiles. Premultiplied alpha makes sure that colors with low alpha won't mess around as they are non-premultiplied