MATLAB Answers

Transparency: additive color blending

26 views (last 30 days)
Pierre on 26 Jun 2013
Matlab seems to use the classical way to handle alpha channels, so that transparency works in a way 'subtractively', like layers of translucent fabric. If you pile up patches set with FaceAlpha = 0.5, say, you'll eventually end up with a dark zone.
I'd like to generate an additive mix, corresponding to the superposition of several light sources. Piling up enough of these patches would eventually lead to a white zone. If you code in OpenGL you can play with different modes of alpha blending, but I haven't found a similar way to do it in Matlab.
Thanks for any clue!


Walter Roberson
Walter Roberson on 26 Jun 2013
For any one layer, would your coefficient still be in opacity (i.e., 0 = transparent, 1 = opaque), or would you be using a transmittivity coefficient? Or, I suppose, an emistivity coefficient of some sort. A brightness even? (A bright red light plus a dull blue light is going to look mostly bright red rather than the result being additive purely on wavelength.)
Pierre on 27 Jun 2013
I basically thought of adding alpha-premultiplied color channels (works only on a black background). Said otherwise: not multiplying the destination color by (1-alpha_src).
There may be smarter ways to do this. Please suggest them! Nevertheless 1) I'd like the color mix to be symmetrical; 2) it must be codable in Matlab!
Richard Voigt
Richard Voigt on 22 Jul 2013
I just went looking for pretty much exactly the same thing. Have a couple answers which are "close" but still not achieving symmetry.

Sign in to comment.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!