ios - Apple ARKit 坐标空间与 VRM 模型不匹配
问题描述
我正在使用 VRM 模型使用 Swift Arkit 进行面部跟踪,但我导入的模型向后看(反向 Z 轴)并且旋转反向工作。据我了解,VRM 使用右手 Y-UP(OpenGL 标准)坐标空间,但 ARKit 使用左手 Y-UP。如何同步这两个系统并正确运行跟踪。谢谢!
//Imported model is added to ARSCNView
open class AvatarView: ARSCNView {
...
private func setUp(node: VRMNode) {
let scene = SCNScene()
scene.rootNode.addChildNode(node)
self.scene = scene
}
...
}
//Render the head node of the model for face tracking.
extension ViewController: ARSCNViewDelegate {
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
guard anchor is ARFaceAnchor else { return nil }
return self.avatarView.avatar.humanoid.node(for: .head)
}
}
解决方案
推荐阅读
- arrays - 合并数组内的对象
- c# - 如何在 C# 中从 Pipeline.Invoke 转换 PSCustomObject
- python-3.x - 如何从 Azure 函数应用发送电子邮件?
- php - Woocommerce 根据所选变量隐藏/显示变量
- terraform-provider-aws - Terraform 脚本在创建新的之前破坏先前创建的 ec2
- python - 每当我尝试通过 Django 中的表单编辑任何条目时,我都会收到“AttributeError”
- asp.net-mvc - 我是 Asp.Net 的新手,我刚刚完成了我的第一个应用程序。如何部署到 IIS 服务器
- excel - 确定日期是否在某个范围内
- github - 如何将语言从 CSS 更改为 GitHub 上存储库的 Booststrap 框架?
- flutter - 我在我的颤振应用程序中使用了 firebase,这个错误出现在我身上