【发布时间】:2017-11-21 08:06:27
【问题描述】:
我正在尝试对 ARSCNView 中的相机实时蒸汽图像应用模糊效果。我检查了 WWDC 视频。他们只提到了使用 Metal 进行自定义渲染,但我在网上没有找到任何完整的示例。知道该怎么做吗?
更新 1 我试图将过滤器应用于背景。它显示不正确的方向。我该如何解决这个问题?
let bg=self.session.currentFrame?.capturedImage
if(bg != nil){
let context = CIContext()
let filter:CIFilter=CIFilter(name:"CIColorInvert")!
let image:CIImage=CIImage(cvPixelBuffer: bg!)
filter.setValue(image, forKey: kCIInputImageKey)
let result=filter.outputImage!
self.sceneView.scene.background.contents = context.createCGImage(result, from: result.extent)
}
【问题讨论】:
-
可能你可以在SceneKit中使用ScnTechnique的后期处理;我自己没有尝试过。 developer.apple.com/documentation/scenekit/scntechnique
-
看起来直播图像被设置为场景背景,我不确定如何为其添加过滤器。您还可以通过 sceneView.session.currentFrame?.capturedImage 访问像素缓冲区,以便您可以对其应用过滤器并更新背景
-
@Guig 谢谢!是工作!我现在可以在后台应用一些 CIFilters 了!但是方向不对……
-
如果你不介意摆弄 YCbCr 像素缓冲区,this solution works