我正在使用this library for GPUImage processing。MultiInputFilter不适用于AndroidFastImageProcessing中的3个输入
我试图并行运行的过滤器就像我们在iOS GPUImage库做的,但我有问题,同时加入3个输入延伸MultiInputFilter
一个过滤器。 我想结合
BasicCameraInputFilter
CannyEdgeDetectionFilter
SobelEdgeDetectionFilter
其中BasicCameraInputFilter
是直接的摄像机输入。
BasicCameraInputFilter cameraInput = new BasicCameraInputFilter();
CannyEdgeDetectionFilter cannyEdgeDetectionFilter = new CannyEdgeDetectionFilter(1.0f,0.3f,0.6f);
SobelEdgeDetectionFilter sobelEdgeDetectionFilter = new SobelEdgeDetectionFilter();
CombinationFilter combinationFilter = new CombinationFilter();
cameraInput.addTarget(combinationFilter);
cannyEdgeDetectionFilter.addTarget(combinationFilter);
sobelEdgeDetectionFilter.addTarget(combinationFilter);
combinationFilter.registerFilterLocation(cameraInput,0);
combinationFilter.registerFilterLocation(cannyEdgeDetectionFilter,1);
combinationFilter.registerFilterLocation(sobelEdgeDetectionFilter,2);
combinationFilter.addTarget(this);
registerInitialFilter(cameraInput);
registerFilter(cannyEdgeDetectionFilter);
registerFilter(sobelEdgeDetectionFilter);
registerTerminalFilter(combinationFilter);
这里是我的片段着色器为我CombinationFilter
"precision mediump float;\n"
+"uniform sampler2D " + UNIFORM_TEXTURE0 + ";\n"
+"uniform sampler2D " + UNIFORM_TEXTUREBASE + 1 + ";\n"
+"uniform sampler2D " + UNIFORM_TEXTUREBASE + 2 + ";\n"
+"varying vec2 " + VARYING_TEXCOORD + ";\n"
+"void main(){\n"
+" vec4 color1 = texture2D(" + UNIFORM_TEXTURE0 + ", " + VARYING_TEXCOORD + ");\n"
+" vec4 color2 = texture2D(" + UNIFORM_TEXTUREBASE + 1 + ", " + VARYING_TEXCOORD + ");\n"
+" vec4 color3 = texture2D(" + UNIFORM_TEXTUREBASE + 2 + ", " + VARYING_TEXCOORD + ");\n"
+" vec4 whiteColor = vec4(1.0);\n"
+" whiteColor.r = color1.r * color2.r * color3.r;\n"
+" whiteColor.g = color1.g * color2.g * color3.g;\n"
+" whiteColor.b = color1.b * color2.b * color3.b;\n"
+" gl_FragColor = whiteColor;\n"
+"}\n";
你有什么问题? – Brian
您已经发布了一个明确定义的示例。但问题是什么?你能向我们展示错误信息或意外结果的截图吗? – Rabbid76
有没有错误,它只是不工作,我们不能调试着色器正确.. – Thesoham24