J'utilise this library for GPUImage processing. J'essaie d'exécuter des filtres en parallèle comme nous le faisons dans la bibliothèque iOS GPUImage, mais j'ai des problèmes en ajoutant 3 entrées à un filtre qui s'étend MultiInputFilter
. J'essaie de combinerMultiInputFilter ne fonctionne pas pour 3 entrées dans AndroidFastImageProcessing
BasicCameraInputFilter
CannyEdgeDetectionFilter
SobelEdgeDetectionFilter
où BasicCameraInputFilter
est entrée direct de la caméra.
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);
Voici mon fragment shader pour mon 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";
Quels sont les problèmes que vous rencontrez? – Brian
Vous avez affiché un exemple bien défini. Mais quel est le problème? Pouvez-vous nous montrer un message d'erreur ou une capture d'écran d'un résultat inattendu? – Rabbid76
il n'y a pas d'erreurs, cela ne fonctionne tout simplement pas, et nous ne pouvons pas déboguer shaders droite .. – Thesoham24