将着色器转换为CIKernel

时间:2018-07-05 10:17:55

标签: ios objective-c swift shader cifilter

我正在尝试将此特定的着色器转换为CIKernel代码。

https://www.shadertoy.com/view/4scBRH

我走得太远了,

kernel vec4 thresholdFilter(__sample image, float time)
 {
 vec2 uv = destCoord();
 float amount = sin(time) * 0.1;

 amount *= 0.3;
 float split = 1. - fract(time / 2.0);
 float scanOffset = 0.01;

  vec2 uv1 = vec2(uv.x + amount, uv.y);
  vec2 uv2 = vec2(uv.x, uv.y + amount);
  if (uv.y > split) {
  uv.x += scanOffset;
  uv1.x += scanOffset;
  uv2.x += scanOffset;
}

float r =  sample(image, uv1).r;
float g = sample(image, uv).g;
float b = sample(image, uv2).b;
float a = 1.0;

vec3 outPutPixel = sample(image, samplerTransform(image, uv)).rgb;
return vec4(outPutPixel, 1.0);
 }

此代码的输出甚至不接近shaderToy输出。

0 个答案:

没有答案