【问题标题】:ARKIT Changing node position according to physical objectARKIT 根据物理对象改变节点位置
【发布时间】:2018-04-28 03:15:18
【问题描述】:

我正在尝试相对于面部移动节点,因此如果用户面部向右移动,菱形应该向右移动完全相同的 x。我已经使用 ARFaceTrackingConfiguration 完美地完成了它。但是,如果 iPhone 和面部之间的距离很大,则渲染器委托方法不再触发。

所以我猜 ARFaceTrackingConfiguration 不适合长距离使用,因为它使用的深度传感器显然不支持。

所以我的问题是,ARKit 是否支持添加相对于物理对象的节点,并且当这个对象移动时,它会用这个对象的位置更新我,以便我可以更新节点?

【问题讨论】:

    标签: ios swift arkit


    【解决方案1】:

    您似乎已经回答了自己的问题。

    是的,使用 ARKit(以及您选择的场景图/渲染器 API,例如 SceneKit),您可以放置​​虚拟内容,使其与跟踪的面部一起移动。在ARSCNView 中,您需要做的就是将该内容分配为您从renderer(_:didAdd:for:) 获得的节点的子节点——只要ARKit 报告面部已移动,SceneKit 就会自动处理节点的移动。

    如果 ARKit 无法跟踪面部,因为它超出了原深感摄像头的可用范围……那么它就没有跟踪面部。 (欢迎来到tautology club。)这意味着它不知道脸部在哪里,无法告诉您脸部是如何移动的,因此无法自动移动虚拟内容以跟随脸部。

    【讨论】:

    • 感谢您的回答。我知道如果真深度相机无法检测到面部,那么渲染器(_渲染器:didUpdate 不会触发。但是,我的问题是,我可以锁定面部然后跟踪它。我的意思是如果我告诉最终用户你需要先靠近,我可以放一个锚点,然后相对于这个锚点添加一个对象,这样我就不会依赖于人脸检测了?
    • 您是说要相对于人脸的最后已知位置放置内容吗? (并且暗示,在面部重新出现之前,该内容的位置是否保持不变?)
    猜你喜欢
    • 2018-01-11
    • 2017-12-03
    • 2018-12-10
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 2018-02-07
    相关资源
    最近更新 更多