自定义CIFilter:CIKernel的sample()行为奇怪

时间:2016-01-26 21:24:50

标签: ios cifilter glsles

我试图弄清楚为什么CIKernel中的sample(sampler img, vec2 coord)方法我写的不断给我意想不到的结果,所以我做了简单的测试:

这很有效。

kernel vec4 simpleFilter(sampler p)
{
  vec2 dc = destCoord();
  return sample(p, samplerTransform(p, dc));
}

这不是。它为前255个像素生成[0, 0, 0, 255],然后生成[0, 0, 0, 0]

kernel vec4 simpleFilter(sampler p)
{
  vec2 dc = destCoord();
  vec2 tc = samplerTransform(p, dc);
  return sample(p, tc);
}

为什么将采样器结果转换为vec2的行为会导致整个过程中断?

1 个答案:

答案 0 :(得分:0)

事实证明,这是使用模拟器而非真实硬件的工件。获得的经验:不要使用模拟器进行自定义CIFilter开发。