我正在编写一个片段着色器,以便将 9 个图像放在一起。
我以前从未使用过 GLSL,但它似乎是适合这项工作的工具,因为 OpenCL 在 iOS 上不可用,并且 CPU 上的中位数效率低下。这是我到目前为止所拥有的:
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);
}