Jef*_*ume 2 augmented-reality swift arkit realitykit
我构建了一个使用图像跟踪和交换平面图像的应用程序。我还使用了人物遮挡(现在),这样人们就可以在这些图像前面拍摄照片。我真的希望这个应用程序有一个自拍模式,这样人们就可以在图像交换区域前拍摄自己的照片。
我正在阅读 ARKit 3.5 上的功能,但据我所知,唯一支持前置摄像头的是ARFaceTrackingConfiguration,它不支持图像跟踪。ARImageTrackingConfiguration并且ARWorldTrackingConfiguration只使用后置摄像头。
有没有办法使用前置摄像头制作带有人物遮挡(和图像跟踪)的自拍模式?
答案是NO,除了前置摄像头之外,你不能使用任何AR配置ARFaceTrackingConfiguration。不过,您可以同时ARFaceTrackingConfiguration在前置摄像头和ARWorldTrackingConfiguration后置摄像头上使用。这允许用户使用他们的脸作为特定控制器与后置摄像头中的 AR 内容进行交互。
查看此文档页面,了解与哪个摄像头(后置或前置)对应的配置。
下面是包含 ARKit 5.0 八种跟踪配置的表格:
| AR配置 | 什么相机? |
|---|---|
| ARWorld跟踪配置 | 后部 |
| ARbody跟踪配置 | 后部 |
| AR方向跟踪配置 | 后部 |
| AR图像跟踪配置 | 后部 |
| ARFfaceTracking配置 | 正面 |
| AR对象扫描配置 | 后部 |
| AR位置跟踪配置 | 后部 |
| ARGeoTracking配置 | 后部 |
要根据驱动程序面部跟踪使用驱动世界跟踪,请使用以下代码:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
guard ARFaceTrackingConfiguration.isSupported,
ARFaceTrackingConfiguration.supportsWorldTracking
else {
fatalError("We can't do face tracking")
}
let config = ARFaceTrackingConfiguration()
config.isWorldTrackingEnabled = true
sceneView.session.run(config)
}
Run Code Online (Sandbox Code Playgroud)
或者您可以使用面部跟踪作为辅助配置:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let config = ARWorldTrackingConfiguration()
if ARFaceTrackingConfiguration.isSupported {
config.userFaceTrackingEnabled = true
}
sceneView.session.run(config)
}
Run Code Online (Sandbox Code Playgroud)
请注意,这两个属性在 iOS 13 及更高版本上均可用。
var userFaceTrackingEnabled: Bool { get set }
var isWorldTrackingEnabled: Bool { get set }
Run Code Online (Sandbox Code Playgroud)
聚苯乙烯
目前.userFaceTrackingEnabled = true还不行。我在 Xcode 13.2.1 和安装了 iPadOS 15.3 的 iPad Pro 第四代中对其进行了测试。
| 归档时间: |
|
| 查看次数: |
1938 次 |
| 最近记录: |