Я пытаюсь сделать эффект плитки из примера на шейдертое (https://www.shadertoy.com/view/3llcRN). Вот код на GLSL:
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = (2.*fragCoord.xy - iResolution.xy)/iResolution.y;
fragColor = vec4( texture(iChannel0, uv ).rgba );
}
Вот мой код на Metal:
kernel vec4 colorKernel(sampler source, float w, float h)
{
vec2 d = vec2(w, h);
vec2 uv = (2.*destCoord().xy - d.xy)/h;
return vec4( sample(source, uv).rgba );
}
И результат:
Чего не хватает? Мне нужен тот же результат, что и на шейдертой
CIAffineTile
. Даже если вам нужно написать собственное ядро, вы можете связать его с аффинным тайловым фильтром, поскольку одним из принципов проектирования Core Image является создание сложных эффектов из более мелких строительных блоков. - person warrenm   schedule 09.06.2020