gpt4 book ai didi

ios - 在 iOS 上,可以将多个 CIFilter 添加到 SpriteKit 节点吗?

转载 作者:行者123 更新时间:2023-12-01 17:41:58 25 4
gpt4 key购买 nike

在 iOS 上,您可以向 SKEffectsNode 添加多个 CIFilter 吗?

CIFilterGenerator似乎是我想要的,但它在 iOS 上不可用。

我知道你可以使用multiple filters on an image通过将一个的输出作为下一个的输入传递,但如果您想影响非图像节点,这没有帮助。

这是否意味着我必须创建一个 SKEffectNode 的人工层次结构,并向每个层次结构添加一个过滤器,而我的实际内容位于最底部?有更好的办法吗?

最佳答案

根据 dfd 的有用建议,我最终选择了这个简单的子类。我将他的答案标记为正确,因为 a) 他建议了这种方法,我想给予他信任,b) 它有更多关于使用 CIFilterConstructor 注册过滤器的一般使用信息。

有用的引用:-Apple Docs-Related Question-Free Core Image eBook

class MyChainFilter: CIFilter {
let chainedFilters: [CIFilter]
@objc dynamic var inputImage: CIImage?

init(filters: [CIFilter]) {
self.chainedFilters = filters
super.init()
}

// run filters in order on the specified source image
override var outputImage: CIImage? {
get {
let imageKey = "inputImage"
var workingImage = self.inputImage
for filter in chainedFilters {
assert(filter.inputKeys.contains(imageKey))
filter.setValue(workingImage, forKey: imageKey)
guard let result = filter.outputImage else {
assertionFailure("filter failed: \(filter.name)")
return nil
}
workingImage = result
}
return workingImage
}
}

required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") }
}

关于ios - 在 iOS 上,可以将多个 CIFilter 添加到 SpriteKit 节点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55553869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com