【问题标题】:ARMeshAnchor – SceneKit SCNView Renderer EXC_BAD_ACCESSARMeshAnchor – SceneKit SCNView 渲染器 EXC_BAD_ACCESS
【发布时间】:2021-05-10 05:54:39
【问题描述】:

我使用 SCNGeometrySource 将 ARMeshAnchor 数据转换为网格,它工作正常,但有时 3/10 我会从 SceneKit 渲染器获得 bad_access。

[![在此处输入图片描述][1]][1]

【问题讨论】:

    标签: swift augmented-reality scenekit arkit realitykit


    【解决方案1】:

    这是因为ARMeshAnchors 不断更新他们的数据,因为 ARKit 改进了对现实世界的理解。所有ARMeshAnchors 都是动态锚。然而,他们的网格随后的变化并不打算实时反映。

    如果您想复制您的 ARMeshAnchors 集合,请使用以下代码:

    var anchorsArray = [ARMeshAnchor]()
        
    let frame = arView.session.currentFrame
        
    let meshAnchors = frame?.anchors.compactMap { $0 as? ARMeshAnchor }
        
    anchorsArray += meshAnchors!
    

    每个ARMeshAnchor 都与存储在MTLBuffer 中的原始几何数据相关联:

    anchorsArray[0].geometry.faces.buffer
    anchorsArray[0].geometry.vertices.buffer
    anchorsArray[0].geometry.normals.buffer
    anchorsArray[0].geometry.classification?.buffer
    

    【讨论】:

    • 如何对 ARMeshAnchor 数据进行深拷贝/克隆?
    猜你喜欢
    • 2019-06-25
    • 2019-04-07
    • 2017-03-10
    • 2016-06-06
    • 2014-12-31
    • 2016-05-25
    • 2016-02-09
    • 2017-11-18
    • 2021-04-13
    相关资源
    最近更新 更多