首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Swift设置ARKit方向

通过Swift设置ARKit方向
EN

Stack Overflow用户
提问于 2017-07-16 06:24:52
回答 4查看 2.1K关注 0票数 4

我正在用OpenGL开发一个OpenGL应用程序,所以直接使用ARKit,而不是使用SceneKit。

默认情况下,ARKit设置为横向方向,但我无法跟踪任何文档或示例,以旋转到纵向。SceneKit示例工作在纵向,但Metal示例仅在景观中工作。

是否可以更改ARKit跟踪方向?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-08-24 01:22:44

我能够在应用逻辑中解决这个问题,方法是将相机矩阵乘以一个四元数,这个四元数是基于设备方向旋转的。

票数 1
EN

Stack Overflow用户

发布于 2022-10-05 04:17:56

代码语言:javascript
复制
     let cameraQuaternion = simd_quatf(arCameraTransform)
    minimapcamera.quaternion2 = cameraQuaternion * simd_quatf(angle: Float.pi/2, axis: SIMD3<Float>(0, 0, 1))

我的解决方案仅基于对肖像的公认答案

票数 0
EN

Stack Overflow用户

发布于 2018-08-24 07:53:26

抱歉,目标是-c。

找到并重写这个

代码语言:javascript
复制
uniforms->viewMatrix = [frame.camera viewMatrixForOrientation:UIInterfaceOrientationLandscapeRight];
uniforms->projectionMatrix = [frame.camera projectionMatrixForOrientation:UIInterfaceOrientationLandscapeRight viewportSize:_viewportSize zNear:0.001 zFar:1000];

代码语言:javascript
复制
uniforms->viewMatrix = [frame.camera viewMatrixForOrientation:[[UIApplication sharedApplication] statusBarOrientation]];
uniforms->projectionMatrix = [frame.camera projectionMatrixForOrientation:[[UIApplication sharedApplication] statusBarOrientation] viewportSize:_viewportSize zNear:0.001 zFar:1000];

代码语言:javascript
复制
CGAffineTransform displayToCameraTransform = CGAffineTransformInvert([frame displayTransformForOrientation:UIInterfaceOrientationLandscapeRight viewportSize:_viewportSize]);

代码语言:javascript
复制
CGAffineTransform displayToCameraTransform = CGAffineTransformInvert([frame displayTransformForOrientation:[[UIApplication sharedApplication] statusBarOrientation] viewportSize:_viewportSize]);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45125709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档