摄像机输出到SceneKit对象

时间:2016-09-01 04:20:07

标签: ios scenekit

我正在尝试在应用程序中使用SceneKit,并希望将从iPhone / iPad相机(正面或背面)捕获的图像用作SCNScene中对象的纹理。

从我在文档中可以看到的所有内容以及StackOverflow上的其他问题,我应该能够使用适当的AVCaptureVideoPreviewLayer创建AVCaptureSession并让它“正常工作”。不幸的是,它没有。

我正在使用这样一行代码:

cubeGeometry.firstMaterial?.diffuse.contents = layer

将图层作为材质似乎有效,因为如果我设置图层的backgroundColor,我会看到背景颜色,但相机捕捉似乎不起作用。图层设置正确,因为如果我将图层用作SCNView的子图层而不是SCNScene中的对象,则图层会在UIKit中正确显示。

可以找到示例项目here

您可以使用USE_FRONT_CAMERA中的GameViewController.swift常量在使用前置和后置摄像头之间切换。您可以使用USE_LAYER_AS_MATERIAL常量在AVCaptureVideoPreviewLayer作为材质的纹理或SCNView中的子图层之间切换。

我已经使用一些OpenGL调用找到了一个非常hacky的解决方法,但我更喜欢让这些代码作为一个更通用且不太脆弱的解决方案。任何人都知道如何在设备上正常工作?我已经尝试过iOS 8.0和iOS 9.0设备。

0 个答案:

没有答案