/usr/share/psychtoolbox-3/PsychOpenGL/PsychGLSLShaders/SimpleFeatureMeanPositionTrackerShader.frag.txt is in psychtoolbox-3-common 3.0.11.20131230.dfsg1-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | /* Simple tracking shader to track the mean positions of features.
*
*/
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect Image;
uniform sampler2DRect OldPositions;
void main(void)
{
const float HalfWidth = 10.0;
vec2 newpos = vec2(0.0);
vec2 samplepos;
float count = 0.0;
float dx, dy;
float validpixel;
/* Perform lookup of last known position of center of feature: */
vec2 oldpos = texture2DRect(OldPositions, gl_TexCoord[0].st).rg;
for (dy = -HalfWidth; dy <= HalfWidth; dy++) {
for (dx = -HalfWidth; dx <= HalfWidth; dx++) {
samplepos = oldpos + vec2(dx, dy);
validpixel = texture2DRect(Image, samplepos).a;
newpos+= validpixel * samplepos;
count+= validpixel;
}
}
if (count > 0.0) {
gl_FragColor.rg = newpos / count;
gl_FragColor.b = count;
gl_FragColor.a = 1.0;
}
else {
gl_FragColor.rg = oldpos;
gl_FragColor.ba = vec2(0.0);
}
}
|