【问题标题】:Detecting finger on AR object? [closed]检测 AR 物体上的手指? [关闭]
【发布时间】:2020-06-20 10:17:04
【问题描述】:

我正在尝试创建一个移动 AR 应用,以在平面上创建一个虚拟钢琴键盘,并能够用我的手指弹奏琴键。

1) 什么工具是实现这一目标的最简单方法? (例如 Vuforia、ARKit)

2) 是否可以将我的手指放在钢琴键盘的前面而不是后面?

非常感谢您提前提供的帮助。

【问题讨论】:

    标签: swift unity3d augmented-reality arkit vuforia


    【解决方案1】:

    选择什么框架来处理遮挡

    ARKit 和 Vuforia 框架都支持Occlusion 功能,但目前支持this feature isn't ideal。对我来说,在 AR 应用中实现遮挡的最简单方法是在 Xcode 中使用 ARKit。如果您更喜欢 Unity 中的 Vuforia 及其 UI 设置,我们也欢迎您。

    如何在 ARKit 和 Vuforia 中使用遮挡

    要将您的hand/finger 合成到真实世界的对象上,您必须使用 ARKit 中的 People Occlusion 功能或 Vuforia 中的 Occlusion Management

    使用frameSemantics 实例属性在ARKit 中激活深度通道合成非常容易——但请记住它在iOS 13+ with A12 chip and higher 中有效:

    let session = ARSession()
    
    if let config = session.configuration as? ARWorldTrackingConfiguration {
        config.frameSemantics.insert(.personSegmentationWithDepth)
        session.run(config)
    }
    

    如果您想了解如何在Unity/Vuforia download a CylinderTargets 中打开Occlusion Management,演示圆柱对象的使用以及遮挡效果。

    如何实现触摸

    要进行触摸(当真正的手指触摸 AR 钢琴键时),您必须实现碰撞。您必须激活Image Detection AI 功能来检测手指指甲的位置,然后在那里放置一个锚点,并将一个不可见的小球系在该锚点上。您需要以 60 fps 的速度不断更新该锚点的位置。然后为钢琴键创建一个碰撞形状,并为该球体创建第二个碰撞形状。然后让它们碰撞。如果您使用 ARKit 进行开发,请使用 SceneKit 框架来实现碰撞事件。如果您使用 Vuforia 进行开发,请使用官方文档了解如何操作。

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 2018-11-18
      • 2012-04-04
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 2013-12-15
      • 2011-08-06
      相关资源
      最近更新 更多