2016-01-26 4 views
0

Я пытаюсь выяснить, почему метод sample(sampler img, vec2 coord) в CIKernel Я пишу продолжает давать мне неожиданные результаты, так что я сделал простой тест:Пользовательские CIFilter: образец CIKernel (в) ведет себя странно

Это работает.

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

Это не так. Он производит [0, 0, 0, 255] для первых 255 пикселей, а затем [0, 0, 0, 0] после этого.

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

Почему акт присвоения результата пробоотборника преобразования результата в vec2 причина весь процесс сломаться?

ответ

0

Оказывается, это был артефакт использования симулятора, а не реального оборудования. Извлеченный урок: не используйте симулятор для разработки пользовательских CIFilter.