小编KNV*_*KNV的帖子

检查相机视图中是否不再显示ARReferenceImage

我想检查相机视图中是否不再显示ARReferenceImage.目前我可以检查图像的节点是否在摄像机的视图中,但是当ARReferenceImage被另一个图像覆盖或者图像被移除时,该节点仍然可以在摄像机的视图中看到.

func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
    guard let node = self.currentImageNode else { return }

    if let pointOfView = sceneView.pointOfView {
        let isVisible = sceneView.isNode(node, insideFrustumOf: pointOfView)
        print("Is node visible: \(isVisible)")
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我需要检查图像是否不再可见,而不是图像的节点可见性.但我不知道这是否可行.第一个屏幕截图显示了找到下方图像时添加的三个框.当覆盖找到的图像时(见截图2)我想删除这些框.

找到带框的图像

带框的受控图像

xcode scenekit swift arkit aranchor

18
推荐指数
4
解决办法
4372
查看次数

理解和创建 Xcode 故事板 XML

我喜欢完全理解从 Xcode 故事板生成的 XML 文件。这样我就可以自己创建文件了。不幸的是,我找不到 Apple 提供的有关如何操作的良好参考。在那之后,有没有办法从 XML 文件自动创建故事板?

回答您的问题: 我目前正在开发一个项目,我必须从 Xcode 外部创建一个 XML 文件,并通过应用程序中的 API 加载此 XML 文件以创建新视图

提前致谢!

xml xcode uistoryboard

5
推荐指数
0
解决办法
247
查看次数

ARKit:将3D对象放置在图像上方

我正在尝试在参考图像上正确添加3D对象.要在现实世界中的图像上添加3D对象,我正在使用imageAnchor.transform属性,如下所示.

    func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {

    guard let imageAnchor = anchor as? ARImageAnchor else { return }

    let referenceImage = imageAnchor.referenceImage

    updateQueue.async {  
        // Add a virtual cup at the position of the found image
        self.virtualObject.addVirtualObjectWith(sceneName: "cup.dae",
                                                childNodeName: nil,
                                                position: SCNVector3(x: imageAnchor.transform.columns.3.x,
                                                                     y: imageAnchor.transform.columns.3.y,
                                                                     z: imageAnchor.transform.columns.3.z),
                                                recursively: true,
                                                imageAnchor: imageAnchor)

    }

}
Run Code Online (Sandbox Code Playgroud)

刚刚添加到场景中的杯子

问题是当我移动设备方向时,杯子将不能很好地保持在图像的中间位置.即使我删除图像,我也希望将杯子放在同一位置.我没有遇到问题,因为当您使用平面检测和命中测试添加对象时,还有一个用于飞机的ARAnchor.

设备移动时的杯子

更新05/14/2018

 func addVirtualObjectWith(sceneName: String, childNodeName: String, objectName: String, position: SCNVector3, recursively: Bool, node: SCNNode?){
    print("VirtualObject: Added virtual object with scene name: …
Run Code Online (Sandbox Code Playgroud)

augmented-reality ios swift arkit

5
推荐指数
1
解决办法
1618
查看次数

标签 统计

arkit ×2

swift ×2

xcode ×2

aranchor ×1

augmented-reality ×1

ios ×1

scenekit ×1

uistoryboard ×1

xml ×1