Конвертировать шейдер в CIKernel - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь преобразовать этот конкретный шейдер в код 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.

...