[PD] glsl code

marius schebella marius.schebella at gmail.com
Thu Nov 8 15:53:59 CET 2007

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)

// 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;

More information about the Pd-list mailing list