我正在尝试使用SpriteKit实现我自己的自定义CIFilter
。我想要实现的是使用我的自定义CIFilter
作为SKEffectNode
上的过滤器。
我写了一个非常简单的测试过滤器(只返回pixelValue),它在QuartzComposer
中工作正常。
我跟着the dev guide编写了一个CIFilter
子类,注册了过滤器,并提供了filterWithName
和outputImage
实现,以及初始化和初始化。
但是当我尝试使用CIFilter
上的SKEffectNode
时,我没有得到输出图像(只是空白图像 - 填充clearColor
中的空白)。
我认为我的SKEffectNode
设置没有任何问题,因为如果我切换到另一个(内置)CIFilter
,一切都按预期工作。
我也认为.cikernel没有任何问题,因为它在Quartz Composer中运行正常(它实际上只是一行从样本中返回pixelValue ...)
我在我的CIFilter
子类的初始化和初始化中设置了断点,两者都被调用,内核用正确的代码字符串初始化,以及一切都好了。
然而,我的输出仍然令人愤怒地空白......
是否有人在CIFilters
上使用自定义SKEffectNodes
成功了?
谢谢!
编辑:忘了提到我在使用它之前调用[MyFilterSubclass class]
来初始化它,我还在-(CIImage *)outputImage
中设置了一个断点,它确实被调用每个帧,所以它看起来像过滤器设置正确,它每帧计算一个结果,但这个结果不知不觉被SKEffectNode
...帮助:(!