【问题标题】:Orientation/rotation of a plane node using ARCamera information in ARKit使用 ARKit 中的 ARCamera 信息对平面节点进行定向/旋转
【发布时间】:2018-06-26 07:33:06
【问题描述】:

我很新,正在尝试使用 Apple 的 ARKit,并且对 ARCamera 的旋转信息有疑问。我正在拍摄照片并在拍摄每张图像时保存相机的当前位置、方向和旋转。这个想法是用这些图像创建 2d 平面节点,并让它们出现在另一个视图中,其位置/方向/旋转(相对于原点)与它们被捕获时相同(就好像图像在他们被抓获)。位置信息似乎工作正常,但方向/旋转完全消失,因为我很难理解何时使用 self.sceneView.session.currentFrame?.camera.eulerAngles 与 self.sceneView.pointOfView? .orientation vs self.sceneView.pointOfView?.rotation.

这就是我设置二维图像平面的方式:

let imagePlane = SCNPlane(width: self.sceneView.bounds.width/6000, height: self.sceneView.bounds.height/6000)
imagePlane.firstMaterial?.diffuse.contents = self.image//<-- UIImage here
imagePlane.firstMaterial?.lightingModel = .constant
self.planeNode = SCNNode(geometry: imagePlane)

然后我将self.planeNode.eulerAngles.x 设置为我从使用self.sceneView.session.currentFrame?.camera.eulerAngles.xfor x 捕获图像的视图中获得的值(并对y 和z 执行相同的操作)。

然后我将节点的旋转设置为self.planeNode.rotation.x = self.rotX(其中self.rotX是我从self.sceneView.pointOfView?.rotation.x得到的信息)。

我也试过设置如下:

let xAngle = SCNMatrix4MakeRotation(Float(self.rotX), 1, 0, 0); 
let yAngle = SCNMatrix4MakeRotation(Float(self.rotY), 0, 1, 0);
let zAngle = SCNMatrix4MakeRotation(Float(self.rotZ), 0, 0, 1);
let rotationMatrix = SCNMatrix4Mult(SCNMatrix4Mult(xAngle, yAngle), zAngle);
self.planeNode.pivot = SCNMatrix4Mult(rotationMatrix, self.planeNode.transform);

文档指出 eulerAngles 是相机在滚动、俯仰和偏航值方面的“方向”,但是 self.sceneView.pointOfView?.orientation 是用来做什么的?

所以当我指定平面节点的位置、方向和旋转时,我从 eulerAngles 获得的信息是否足以捕捉图像的正确方向?

我的处理方法是完全错误的,还是我遗漏了一些明显的东西?任何帮助将不胜感激!

【问题讨论】:

    标签: ios swift arkit arcamera


    【解决方案1】:

    如果您想要做的实际上是创建一个在捕获时面向相机的广告牌,那么您基本上可以采用相机的变换矩阵(它已经具有正确的方向)并只需应用逆向平移到它将其移动到对象位置。他们使用该矩阵来定位您的广告牌。这样您就不必处理任何角度或担心合成旋转的正确顺序。翻译很容易,因为您需要做的就是从相机的位置中减去对象的位置。其中一个 ARkit WWDC 会议实际上有一个类似的示例(它在相机的位置创建广告牌)。您需要做的唯一更改是将广告牌从摄像头的位置移开。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-31
      • 2022-01-12
      • 2018-01-30
      • 2017-12-20
      • 2019-12-21
      • 1970-01-01
      • 2018-10-06
      • 2018-12-24
      相关资源
      最近更新 更多