【发布时间】:2019-02-27 20:12:02
【问题描述】:
在 AR 应用程序上工作,一旦跟踪图像并放置 3d 模型,我需要将对象放置在 ARImageAnchor 上,然后它不应与图像锚点一起移动,它应该只跟随 iPhone 上的相机角度并与锚点的距离。
尝试了很多代码。
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
let node = SCNNode()
if let imageAnchor = anchor as? ARImageAnchor {
self.mainNode.simdTransform = anchor.transform
self.sceneView.scene.rootNode.addChildNode(self.mainNode)
}
再试一次:
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
let node = SCNNode()
if let imageAnchor = anchor as? ARImageAnchor {
guard let pointOfView = self.sceneView.pointOfView else { return }
let transform = pointOfView.transform
self.mainNode.transform = transform
self.sceneView.scene.rootNode.addChildNode(self.mainNode)
}
func renderer(_ renderer: SCNSceneRenderer, willRenderScene scene: SCNScene, atTime time: TimeInterval) {
guard let pointOfView = self.sceneView.pointOfView else { return }
let transform = pointOfView.transform
let translationMatrix = SCNMatrix4Translate(transform, 1.0 , -0.5, -3.0)
}
无法理解如何获取 pointOfView 变换和 Anchor.transform 之间的距离和角度。 任何帮助将不胜感激。 提前致谢。
【问题讨论】:
-
您找到解决方案了吗?我也遇到了这个
标签: swift augmented-reality arkit ios12