Как написать фрагментный шейдер в GLSL для сортировки массива из 9 чисел с плавающей запятой
Я пишу фрагментный шейдер, чтобы получить медиану 9 изображений вместе.
Я никогда раньше не работал с GLSL, но это казалось подходящим инструментом для работы, так как OpenCL неДоступно на iOS, а медиана на процессоре неэффективна. Вот'Что я имею до сих пор:
uniform sampler2D frames[9];
uniform vec2 wh;
void main(void)
{
vec4 sortedFrameValues[9];
float sortedGrayScaleValues[9];
for (int i = 0; i < 9; i++)
{
sortedFrameValues[i] = texture2D(frames[i], -gl_FragCoord.xy / wh);
sortedGrayScaleValues[i] = dot(sortedFrameValues[i].xyz, vec3(0.299, 0.587, 0.114));
}
// TODO: Sort sortedGrayScaleValues
float gray = sortedGrayScaleValues[4];
gl_FragColor = vec4(gray, gray, gray, 0);
}