Forums > Jitter

how to calculate RGB transparence in shader programs?

October 4, 2006 | 1:21 pm

hello,
i have a texture,
and i’d like to apply a colored tint to it;
i’d like the percentage of this tint to be a controllable parameter.

now, it makes sense that if i multiply the RGB values of a pixel in my texture by my tint-color’s fractional RGB values (i.e. devide values between 0 and 255 by 255), then i get the color i want; but i wanna get less of that color than %100;

if i were doing this in jitter, i would place another plane in front of my video plane for instance, and give it an alpha transparence; i’m wondering how i can get the same effect by calculating the RGB values of each pixel "by hand", as i have to do in the fragment shader of my program.

i tried to find a formula online but i don’t think i’ve found the best color resources on the web yet…

thank you,
a


October 4, 2006 | 1:58 pm

For this, the most straightforward way would be to use the mix() function:
mix(source,tint-color,amount);
Remember that in this case amount can (and should) be a vec4.

Hope that helps.

Andrew


October 4, 2006 | 2:20 pm

of course!
sorry, obvious question…
and then i found all the compositing examples and now i have more ways to do what i wanted than i ever would want.

on the other hand, i’m noticing something that i don’t quite undertsand. when i use your suggested mix(source, tint, amount) expression, i find that if i define ‘amount’ as a uniform vec4 and send it in from out, i get two very different results if send things like "amoung .5" and "amount .5 .5 .5 .5"; it actually seems to me like "amount .5" gives the correct result, i.e. 1/2 way between the source and the tint… what does each of these actualy do?

yours,
a


Viewing 3 posts - 1 through 3 (of 3 total)