【问题标题】:3D object is hovering while moving camera3D 对象在移动相机时悬停
【发布时间】:2020-06-18 02:39:08
【问题描述】:

3D 对象完美地放置在 ARSCNView 中,但问题是当对象放置在 AR 中并且将相机向右、向左、顶部和底部移动得太快时,3D 对象开始在 planeNode 的任何地方悬停和跳舞

我如何解决这个问题,尝试了很多方法找到解决方案仍然没有得到任何结果

func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
    // Cast ARAnchor as ARPlaneAnchor
    guard let planeAnchor = anchor as? ARPlaneAnchor else { return }

    let planeGeometry = ARSCNPlaneGeometry(device: MTLCreateSystemDefaultDevice()!)!
    planeGeometry.update(from: planeAnchor.geometry)

    // Add material to geometry
    let material = SCNMaterial()
    material.diffuse.contents = UIColor.blue.withAlphaComponent(0.8)
    planeGeometry.materials = [material]

    // Create a SCNNode from geometry
    let planeNode = SCNNode(geometry: planeGeometry)
    self.privateNode = planeNode
    self.anchors.append(planeNode)
    DispatchQueue.main.async {
        self.lbl_middle_heading.text = Constants.kSharedAppDelegate?.languageBundle.localizedString(forKey: "Please tap anywhere on screen.", value: "", table: nil)
        self.showFeaturePoints(isShowDeugOptions: false)
    }
    // Add the newly created plane node as a child of the node created for the ARAnchor
    node.addChildNode(planeNode)
}

func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
    // Cast ARAnchor as ARPlaneAnchor, get the child node of the anchor, and cast that node's geometry as an ARSCNPlaneGeometry
    guard
        let planeAnchor = anchor as? ARPlaneAnchor,
        let planeNode = node.childNodes.first,
        let planeGeometry = planeNode.geometry as? ARSCNPlaneGeometry
        else { return }

    planeGeometry.update(from: planeAnchor.geometry)
}

【问题讨论】:

  • Sandeep,请发布视频截屏。
  • 抱歉,您的视频卡顿了。我看不到问题。((
  • @demarcate 生成 3D 对象 UI 时冻结
  • @demarcate 抱歉我制作了新视频,请查看并告诉我drive.google.com/file/d/1r91alrCD04WuyAZL6LF4VpNpHAe9RBUT/…
  • @demarcate 很多尝试仍然 3D 对象在任何地方与 planeNode 一起悬停和跳舞请提供示例代码

标签: xcode8 augmented-reality arkit swift5 arscnview


【解决方案1】:

模型在 AR 应用中“跳舞”或沿着某个轴漂移,主要原因有以下三个:

  • 如果您导入了动画模型
  • 如果模型没有被 ARAnchor 绑定
  • 如果您的场景跟踪不佳

彻底跟踪周围环境,并确保它有相应的光照并具有非常详细的纹理,以便获得足够数量的特征点进行跟踪。

【讨论】:

  • @Andy 如何检查 ARAnchor 或 3D 对象中的问题,能否提供示例代码
  • 嗨@SandeepParmar。首先,在一个非常简单的场景中测试你的模型。还是“跳舞”吗?
  • @SandeepParmar,请发布您的代码的完整版本。
猜你喜欢
  • 2014-08-31
  • 1970-01-01
  • 2017-07-08
  • 1970-01-01
  • 2021-08-30
  • 1970-01-01
  • 2019-03-12
  • 1970-01-01
  • 2013-06-21
相关资源
最近更新 更多