hmm, sometimes writing emails brings new ideas.
I replaced the two floats with one vec2 pass_other
and that works.
marius.

-----
uniform sampler2D texture;
varying vec2 texcoord0;
uniform vec4 hithresh;  // hi and lo threshold
uniform vec4 lothresh;
uniform vec2 pass_other;

void main()
{
        vec4 A = texture2D(texture, texcoord0);
        A.a = pass_other[0];
        if ((A.r >= hithresh.r) || (A.r <= lothresh.r))
        {
                A.a = pass_other[1];
        }
        gl_FragColor = A;

}
------------


marius schebella wrote:
> hi,
> is it possible to ask shader related questions on the pd list? I am 
> trying to write pix_alpha as a shader, but for now I have problems with 
> the glsl code. (maybe you can also point me to a shader forum or mailing 
> list that you know is good?)
> I have a fragment shader, which is not working, and I don't know why.
> the problem is that "A.a = other" does not set the value correct (it 
> always sets 0).
> If I write A.a = 0.5 for example, then it is working.
> The variables are passed correctly, all other variables work too, so I 
> think it is really a problem of how glsl works, and an error in the 
> code. what it should do is when the red pixel value is within a certain 
> range, the alpha value should be set to the pass value, and if it is 
> outside, it should be set to the other value. (similar to pix_alpha, but 
> only with red at the moment)
> thanks,
> marius.
> 
> ---------
> // red pix alpha
> 
> uniform sampler2D texture;
> varying vec2 texcoord0;
> 
> uniform vec4 hithresh;    // hi and lo threshold
> uniform vec4 lothresh;
> uniform float pass;
> uniform float other;
> 
> void main()
> {
>     vec4 A = texture2D(texture, texcoord0);
>     A.a = pass;
>     if ((A.r >= hithresh.r) || (A.r <= lothresh.r))
>     {
>         A.a = other;
>     }
>     gl_FragColor = A;
> }
> 


_______________________________________________
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management -> 
http://lists.puredata.info/listinfo/pd-list

Reply via email to