在SceneKit下显示相机的不同方法

时间:2018-10-14 13:53:45

标签: ios swift scenekit arkit shadow

我正在开发一个可以使用几种不同引擎的AR应用程序。其中之一基于SceneKit(而不是ARKit)。

我曾经使SceneView的背景透明,只是在其下方显示AVCaptureVideoPreviewLayer。但这后来造成了一个问题-事实是,如果您将透明backgroundColor用于SceneView,然后向其中添加floor node({ ),则阴影不会显示在其上。现在的目标是在此引擎中添加阴影。

我认为使阴影正常工作的最佳方法是将相机预览设置为diffuse.contents = UIColor.clear。为此,我尝试使用SCNScene.background.contents。此方法有效,但是有一个问题-您无法使用所需的视频格式-AVCaptureDevice.default(for: video)在分配后会自动更改格式。我什至向苹果寻求帮助,可以使用您可以发送给他们的两个帮助请求中的一个,但是他们回答说,目前还没有公共api允许我以我想要的格式使用它。在SceneKit上,此格式更改为iPhone 6s,我需要将其设置为30 FPS。所以这个选项不好。

还有其他方法可以将摄像机预览分配给场景背景属性吗?从我的阅读中,我也可以为此属性使用60 FPS,所以我尝试分配CALayer,但这只会产生黑色,而没有视频。我已将图层框架更新为正确的大小,但这还是无法正常工作。也许我做错了什么,有没有办法使用此AVCaptureVideoPreviewLayer或其他东西?

您能提出一些可能的解决方案吗?我知道我可以使用AVCaptureVideoPreviewLayer,我可以使用其他引擎,但是对于这一特定引擎,我需要继续使用ARKit

0 个答案:

没有答案