ios - ARKIT 根据物理对象改变节点位置
问题描述
我正在尝试相对于面部移动节点,因此如果用户面部向右移动,菱形应该向右移动完全相同的 x。我使用ARFaceTrackingConfiguration完美地完成了它。但是,如果 iPhone 和面部之间的距离很大,则渲染器委托方法不再触发。
所以我猜 ARFaceTrackingConfiguration 不适合长距离使用,因为它使用的深度传感器显然不支持。
所以我的问题是,ARKit 是否支持添加相对于物理对象的节点,并且当这个对象移动时,它会用这个对象的位置更新我,以便我可以更新节点?
解决方案
你似乎已经回答了你自己的问题。
是的,使用 ARKit(以及您选择的场景图/渲染器 API,例如 SceneKit),您可以放置虚拟内容,使其与跟踪的面部一起移动。在ARSCNView
中,您需要做的就是将该内容分配为您从中获取的节点的子节点renderer(_:didAdd:for:)
——只要 ARKit 报告面部已移动,SceneKit 就会自动处理节点的移动。
如果 ARKit 无法跟踪面部,因为它超出了原深感摄像头的可用范围……那么它就没有跟踪面部。(欢迎来到重言式俱乐部。)这意味着它不知道脸部在哪里,无法告诉您脸部是如何移动的,因此无法自动移动虚拟内容以跟随脸部。
推荐阅读
- facebook-graph-api - Facebook api 无法识别广告集状态是已批准还是未批准
- python - 图像文件在 django 中找不到或不存在
- css - 如何解决 Safari 浏览器中的线性渐变 css 问题?
- node.js - nodejs 从 mongodb 获得双倍记录
- hibernate - 使用 Spring Data JPA 在 SpringBoot 2.0.5.RELEASE 应用程序中删除对象
- android - 导航抽屉,主要活动内容未显示
- android - 应用程序显示一些不相关的文本而不是 Textview
- c# - 在c#中手动添加行时如何过滤datagridview
- algorithm - 根据 2D 投影坐标查找等边三角形的 3D 点
- random - 如何在不引入偏差的情况下生成一个范围内的随机 Rust 整数?