我想获取场景视图中特定特征点处检测到的世界对象的颜色。例如,我在 处检测到一个特征点(x:10, y:10, z:10)。
如何获得该位置object/的颜色?surface
我想在渲染时应用相机滤镜,我的代码是...
func session(_ session: ARSession, didUpdate frame: ARFrame) {
let image = CIImage(cvPixelBuffer: frame.capturedImage)
var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0
color.getRed(&r, green: &g, blue: &b, alpha: &a)
filter.setDefaults()
filter.setValue(image, forKey: kCIInputImageKey)
filter.setValue(CIVector(x: r, y: 0, z: 0, w: 0), forKey: "inputRVector")
filter.setValue(CIVector(x: 0, y: g, z: 0, w: 0), forKey: "inputGVector")
filter.setValue(CIVector(x: 0, y: 0, z: b, w: 0), forKey: "inputBVector")
filter.setValue(CIVector(x: 0, y: 0, z: 0, w: a), …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个ARKit项目,在该项目中,我想使实际的摄影机源变暗,以使3D场景中的对象更加突出。
我到目前为止发现的2个解决方案:
A)手动将CIFilter应用于相机帧,并将其设置为SceneKit场景的背景图像,如本SO帖子所述 ,这里的问题是fps明显下降。
B)像这样设置背景色:
sceneView.scene.background.contents = UIColor(white: 0.0, alpha: 0.2)
Run Code Online (Sandbox Code Playgroud)
可悲的是,alpha <1的颜色仍然是不透明的,因此无论我设置了什么alpha,我都看不到相机的任何内容。
有人能想到其他方法来使摄影机的信号变暗吗?