すべてのフレームのスナップショットを撮り、フィルターを適用し、フィルター処理された画像で ARSCNView の背景コンテンツを更新しています。すべて正常に動作していますが、画面上のすべての UI 要素で多くの遅延が発生しています。ARSCNView に遅延はありません。
func session(_ session: ARSession, didUpdate frame: ARFrame) {
guard let image = CIImage(image: sceneView.snapshot()) else { return }
// I'm setting a filter to each image here. Which has no effect on the latency.
sceneView.scene.background.contents = context.createCGImage(image, from: image.extent)
}
を使用できることはわかってframe.capturedImage
います。これにより、レイテンシが解消されます。frame.capturedImage
しかし、何らかの理由で無視sceneView.scene.background.contents
され、元のソースにリセットできないARオブジェクトも画面に配置します。そのため、画像フィルターをオフにすることはできません。そのため、スナップショットを撮る必要があります。
UI 要素の待ち時間を短縮するためにできることはありますか? 画面にいくつかのUIScrollViewがあり、非常に遅れがあります。