gpt4 book ai didi

ios - ARKit/ARHitTestResult中worldTransform和localTransform的区别

转载 作者:行者123 更新时间:2023-11-29 13:55:37 26 4
gpt4 key购买 nike

我尝试在执行 HitTest 后将对象放置在 AR 中的特定位置,但有时使用 worldTransform 时它未对齐/旋转不正确。我正在尝试将 localTransform 属性应用于 worldTransform,因为这似乎可以确保无论拾取哪个特征点,我都可以将对象平移到所需位置。

我已经尝试将 localTransform simd_4 矩阵添加/减去 worldTransform 矩阵,但它似乎并没有真正做任何有意义的事情。

这就是我实际应用转换的方式:

world.columns.3[0] += local.columns.3[0]
world.columns.3[1] += local.columns.3[1]
world.columns.3[2] += local.columns.3[2]
world.columns.3.w = local.columns.3.w

我有一个自定义的可视化工具,用于确定命中率应该落在何处,我希望它正好是我点击的位置,但在应用偏移量后,它似乎朝着随机方向移动。

最佳答案

世界变换和局部变换的区别在于:- 世界变换是模型相对于场景位置的位置- 局部变换是模型相对于其父节点位置的位置

在你的情况下,我怀疑你没有直接将节点添加为根节点的子节点,因为 rootNode 是场景中的 (0,0,0) 节点,它的任何子节点的变换矩阵都应该相同。

按照您的逻辑,我将假设您转换的触摸不如将无限平面设置为 SCNFloor 准确,然后检测无限平面上的触摸。当您尝试将触摸转换到 ARSCN 中时,这将为您提供更准确的位置。

我建议您看看 Maxx Frazer 的 ARKit-SmartHitTest,因为他就是这样实现此功能的,而且他的代码是开源的。 https://github.com/maxxfrazer/ARKit-SmartHitTest/blob/master/SmartHitTest/SmartHitTest.swift

关于ios - ARKit/ARHitTestResult中worldTransform和localTransform的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56365938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com