Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MultiInputFilter not working for 3 inputs #33

Open
soham24 opened this issue Oct 13, 2017 · 0 comments
Open

MultiInputFilter not working for 3 inputs #33

soham24 opened this issue Oct 13, 2017 · 0 comments

Comments

@soham24
Copy link

soham24 commented Oct 13, 2017

I am trying to run filters in parallel like we do in iOS GPUIMAGE library, but I am having issues while adding 3 inputs to one filter which extends MultiInputFilter.
I am trying to combine

1>BasicCameraInputFilter
2>CannyEdgeDetectionFilter
3>SobelEdgeDetectionFilter

where BasicCameraInputFilter is direct camera input .

	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);

Here is my fragment shader

"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";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant