如何使用GPUImage创建具有四个输入纹理的滤镜

时间:2014-11-14 04:45:51

标签: ios opengl-es gpuimage

我有一个片段着色器代码,需要四个输入纹理,如下所示:

 precision lowp float;

 varying highp vec2 textureCoordinate;

 uniform sampler2D inputImageTexture;
 uniform sampler2D inputImageTexture2;
 uniform sampler2D inputImageTexture3;
 uniform sampler2D inputImageTexture4;

 void main()
  {

  vec4 texel = texture2D(inputImageTexture, textureCoordinate);
   vec3 bbTexel = texture2D(inputImageTexture2, textureCoordinate).rgb;

   texel.r = texture2D(inputImageTexture3, vec2(bbTexel.r, texel.r)).r;
   texel.g = texture2D(inputImageTexture3, vec2(bbTexel.g, texel.g)).g;
   texel.b = texture2D(inputImageTexture3, vec2(bbTexel.b, texel.b)).b;

   vec4 mapped;
   mapped.r = texture2D(inputImageTexture4, vec2(texel.r, .16666)).r;
   mapped.g = texture2D(inputImageTexture4, vec2(texel.g, .5)).g;
   mapped.b = texture2D(inputImageTexture4, vec2(texel.b, .83333)).b;
   mapped.a = 1.0;

   gl_FragColor = mapped;
 }

并且由于GPUImage最多只提供GPUImageThreeInputFilter,如何编写带有四个输入纹理的过滤器?我已经阅读了IFImageFilter,它可用于超过3个输入纹理(最多6个输入纹理),但无法使用最新的GPUImage进行编译。

0 个答案:

没有答案