首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在命中测试ARKit SceneKit中找到飞机的中心

在命中测试ARKit SceneKit中找到飞机的中心,可以通过以下步骤实现:

  1. 创建一个命中测试(Hit Test)来检测场景中的物体。命中测试是一种用于确定屏幕上的点是否与场景中的物体相交的技术。
  2. 首先,需要创建一个命中测试的位置,可以使用ARFrame中的camera属性获取当前相机的位置和方向。
  3. 使用ARSCNView的hitTest方法进行命中测试。该方法接受一个CGPoint参数,表示屏幕上的点,然后返回一个命中测试结果的数组。
  4. 遍历命中测试结果数组,找到与飞机相关的命中测试结果。可以通过检查命中测试结果的node属性,判断是否为飞机节点。
  5. 找到飞机节点后,可以获取其位置信息。可以使用飞机节点的worldPosition属性获取其在世界坐标系中的位置。
  6. 如果需要找到飞机的中心点,可以使用飞机节点的boundingBox属性获取其包围盒信息。然后计算包围盒的中心点坐标。

综上所述,通过以上步骤可以在命中测试ARKit SceneKit中找到飞机的中心。

ARKit是苹果公司推出的增强现实开发框架,用于在iOS设备上创建增强现实应用程序。SceneKit是苹果公司提供的用于3D图形渲染和动画的框架。命中测试是ARKit和SceneKit中常用的技术,用于检测屏幕上的点是否与场景中的物体相交。

推荐的腾讯云相关产品是腾讯云AR服务,该服务提供了丰富的AR开发工具和资源,可用于构建AR应用程序。具体产品介绍和链接地址可以参考腾讯云官方网站的AR服务页面(https://cloud.tencent.com/product/ar)。

请注意,本回答仅提供了解决问题的一种方法,并推荐了相关产品,具体实现方式可能因开发环境和需求而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS版 使用ARKit和Swift创建交互式Domino游戏

实现以下委托方法,以便在更新飞机范围或中心值时收到通知: func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode...有关平面检测更深入文章可以在这里找到。 创建多米诺骨牌并使用命中测试将它们放在地板上 我们飞机检测完成后,我们现在准备进行一些命中测试!...我们使用简单SCNBox创建我们多米诺骨牌。为其添加绿色,创建一个放置在其中节点,并使用我们通过命中测试检测到坐标来定位它。...要做到这一点,我们必须保存先前放置多米诺骨牌位置,然后计算它到我们命中测试的当前位置距离。...我们添加到场景中地板是不透明,因此应用到它上面的任何阴影都是不可见。如何在保持隐形同时为地板添加阴影?自iOS 11以来,SceneKit已经添加了一个新策略来实现这一目标。

2.3K30

ARKit示例 - 第2部分:平面检测+可视化

在另一篇文章中,我们将测试不同环境,以了解跟踪执行情况。...SCNNode实例是ARKit创建SceneKit节点,它有一些属性设置,方向和位置,然后我们得到一个锚实例,这告诉我们使用有关已找到特定锚更多信息,例如大小和中心飞机 锚实例实际上是一个ARPlaneAnchor...类型,从中我们可以得到飞机范围和中心信息。...渲染飞机 通过上述信息,我们现在可以在虚拟世界中绘制SceneKit 3D平面。为此,我们创建一个继承自SCNNode Plane类。...提取结果 下面是我走过房子一部分,从上面的视频中检测到飞机一些屏幕截图: 这是我厨房里一个小岛,ARKit很好地找到了范围并正确定位了飞机以匹配凸起表面 image.png 这是一个看着地板镜头

2.9K20

ARKit示例 - 第3部分:添加几何和物理乐趣

https://github.com/markdaws/arkit-by-example/tree/part3 命中测试 正如您在第一个教程中看到,我们可以在任何X,Y,Z位置插入虚拟3D内容,它将在现实世界中渲染和跟踪...在这个应用程序中,当用户单击屏幕时,我们执行命中测试,这涉及获取2D屏幕坐标并通过2D屏幕点(在投影平面上具有3D位置)从相机原点发射Ray并进入现场。...如果光线与任何平面相交,我们得到命中结果,然后我们获取光线和平面相交3D坐标,并将我们内容放置在该3D位置。...正如您在上面的代码中所看到,我们为每个立方体提供了一个physicsBody,它指示了SceneKit物理引擎,这个几何应该由物理引擎控制。...停止飞机检测 一旦我们绘制了世界并拥有多个平面,我们就不希望ARKit继续为我们提供新平面并可能更新现有的平面,因为这可能会影响我们已经添加到世界几何体。

98010

ARKit上手 添加3D物体

开发语言选择Swift,Swift天然亲和ARKit,很多网上Demo都是用Swift写,这样也方便移植和借鉴。 然后连接你测试设备并运行,app就可以运行了。...该模版APP会在实施摄像头镜头中展示一架飞机3D模型。如下图所示: ? 3D飞机 实际项目中,你也可以不使用该模版来创建项目,直接引入相关库也可以进行开发。...功能,下面简单介绍ARKit工作原理: ARKit工作原理 在ARKit中,创建虚拟3D模型其实可以分为两个步骤: 相机捕捉现实世界图像–由ARKit实现 在图像中显示虚拟3D模型/2D模型–由SceneKit...3D场景中则是由SceneKit框架来完成,每个虚拟物体都是一个节点SCNNode,每个节点构成一个场景SCNScene。...下图是ARKitSceneKit框架关系图: ?

2.1K10

ARKit by Example - 第1部分:AR立方体

要在ARKit中呈现3D内容,我们将使用SceneKit:https://developer.apple.com/scenekit/这是一个在iOS设备上渲染3D图形框架。...移动并观察飞机在现实世界中保持位置,即使您移动相机也是如此: ?...这堂课有几件事: 从视图中设备相机渲染实时视频流,作为3D场景背景 ARKit3D坐标系与SceneKit3D坐标系匹配,因此在此视图中渲染对象将自动匹配增强ARKit世界视图 自动移动虚拟...SceneKit 3D相机以匹配ARKit跟踪3D位置,因此不需要额外代码来连接ARKit移动事件以映射到SceneKit 3D渲染。...要向场景添加内容,首先要创建一些几何体,几何体可以是复杂形状,或简单形状,球体,立方体,平面等。然后将几何体包裹在场景节点中并将其添加到场景中。然后SceneKit将遍历场景图并渲染内容。

1.2K30

ARKit介绍

此外,您无法在模拟器中使用它,因此您必须使用最新测试版更新您iPhone / iPad(iOS 11 SDK仅适用于Xcode 9)。...您甚至可以使用Metal,SceneKit和Unity和虚幻引擎等第三方工具渲染3D对象。ARKit以卓越性能完成所有这一切,并且有很好文档记录。 需要一些想法才能使用ARKit?...免责声明:我使用SceneKit玩过一次,所以我对它有一些基本了解。...如果您没有这些知识或任何3D渲染,Metal,OpenGL或Unity,那么我建议您在使用ARKit之前查看其中一个,因为它将帮助您理解我将呈现代码(例如,矢量和矩阵等3D概念以及可以对它们执行一般操作...此方法在摄像机图像中搜索视图坐标中指定点有效曲面,并返回一个列表,其中命中测试结果排序距离最近(距离摄像机距离)。

2.3K20

ARKit 简介

第二层:平面和边界感知 碰撞测试和光线估算,让虚拟内容和现实环境无缝衔接。 ? 第三层,渲染,支持各种渲染制作工具,目标就是简单易用,和其它插件融合度好。 ?...处理器A9及以上(6S机型及以上) 实现步骤 一个简单AR场景实现所需要技术和实现步骤如下: 1.多媒体捕捉现实图像:摄像头 2.三维建模:3D立体模型 3.传感器追踪:主要追踪现实世界动态物体六轴变化...ARKit提供了两种主要AR技术Content Technology 分别是: Scenekit: 基于3D场景 SpriteKit:基于2D场景 3,然后系统就为我们新建了一个简单项目和场景...,使用3DMax软件可以创建,这里系统有一个默认3D飞机) SCNScene *scene = [SCNScene sceneNamed:@"art.scnassets/ship.scn"];...// Set the scene to the view //设置ARKit场景为SceneKit的当前场景(SCNScene是Scenekit场景,类似于UIView)

2.5K60

ARKit和CoreLocation:第一部分

image.png ARWorldTrackingConfiguration:用于跟踪设备方向,位置和检测相机记录特征点(相机记录表面)配置。...worldAlignment:****ARSession上worldAlignment属性定义ARSession如何在3D坐标映射系统上解释ARFrame运动数据,该系统用于跟踪世界并构建增强现实体验...SceneKit 关于ARKit最酷事情之一是它与Apple现有的图形渲染引擎很好地集成:SpriteKit,Metal和SceneKit。我最常用SceneKit,它用于渲染3D对象。 ?...个人项目 - 8月12日 ARSCN查看文档: 因为ARKit自动将SceneKit空间与现实世界匹配,所以放置虚拟对象以使其看起来保持真实世界位置只需要适当地设置该对象SceneKit位置。...让我们构建我们第一个增强现实体验!为此,我们将在相机前放置1米蓝色球。 定义 SCNSphere:一个球体定义一个表面,其每个点与其中心等距离,该中心位于其局部坐标空间原点。

2.2K20

iOS ARKit教程:用裸露手指在空中画画

iOS中ARKit入门 截至撰写本文时,ARKit是iOS 11一部分,它仍处于测试阶段。...ARKit可以与Sprite SceneKit或Metal一起使用。在Apple ARKit示例中,我们使用是Apple SceneKit,这是Apple提供3D引擎。...Focus Square由示例代码提供,而不是ARKit库,这是我们开始使用此示例代码主要原因之一。您可以在示例代码中包含自述文件中找到有关它更多信息。下图显示了投影在桌子上焦点方块: ?...在ARKit中检测平面 ARKit可以检测新平面,更新现有平面或删除它们。为了以方便方式处理平面,我们将创建一个虚拟SceneKit节点,该节点保存平面位置信息和对焦点方块引用。...随着计算机视觉进步,以及为小工具(深度相机)添加更多AR友好硬件,我们可以访问我们周围越来越多物体3D结构。

2.2K30

苹果增强现实框架:ARKit

其他型号处理器(6S以下)只能追踪设备方向。 ARKit提供了自带两个渲染类:ARSCNView和ARSKView,后者用来渲染2D模型。之前鲜有问津SceneKit算是有了用武之地。...理论上 ARKit 在双目摄像头上表现应该优于单目,这里需要具体测试,如何来平衡用户体验。 .scn文件还是知识一个简单3维模型编辑器,支持文件格式少,对模型、光照编辑方式不太友好。...目前ARKit支持3D渲染引擎,有sceneKit,Unity3D,UE。...最终决定还是用sceneKit,主要出于一下考虑: ARKit目前对Unity3D,UE支持没有sceneKit好。 sceneKit用OC写,可以OCS。...[1504061940187_8772_1504061940277.jpg] 当pitch为90°时,pitch与yew旋转轴重合了,这时飞机丧失了一个旋转维度。

3.3K00

聚焦位置-选择您喜欢位置放置虚拟物体

我们将讨论世界变换和命中测试,这是ARKit两个重要概念。 下载 要学习本教程,您需要Xcode 10或更高版本,以及平面检测最终Xcode项目。...guard let focusSquareLocal = focusSquare else {return} 命中测试 我之前提到过,我们希望使用屏幕中心作为焦点方块基准。...命中测试结果 命中测试返回结果列表,我们只想要这些结果第一个元素。第一个元素是离相机最近平面。例如,如果您将相机对准您桌子,则您希望桌子不是地板。...let hitTest = sceneView.hitTest(screenCenter, types: .existingPlaneUsingExtent) 像以前一样,获得命中测试第一个结果,我们将检查它是否击中了飞机...我们现在有焦点方块向我们展示我们是否找到了合适平面。到目前为止,它是为了帮助我们更好地可视化飞机命中测试结果。我们将在委托方法中注释掉与网格相关代码。

2.4K30

iOS ARKit教程:赤手在空中绘画

iOS中ARKit入门 在撰写本文时候,ARKit是iOS 11一部分,目前仍处于测试阶段。因此,要想开始,你需要在iPhone 6s及以上版本下载iOS 11测试版,以及新Xcode测试版。...ARKit可以与Sprite SceneKit或Metal配合使用。在Apple ARKit例子中,我们使用是iOS SceneKit,由Apple提供3D引擎。...焦点方是由样例代码提供,而不是ARKit库,这是我们开始使用这个示例代码主要原因之一。您可以在示例代码中包含readme文件中找到更多关于它信息。...在下一节中,我们将解释如何检测飞机,以及如何相应地定位焦点广场。在下一节中,我们将解释如何检测平面,以及如何相应地定位焦点。 检测平面 ARKit可以探测到新平面,更新现有的平面,或者移除它们。...我们希望将焦点方块放在屏幕中心,但投射在最近探测到平面上。

1.8K10

ARKit

例如,您可以在摄像机视图中显示用户面部并提供逼真的虚拟遮罩。您还可以省略摄像机视图并使用ARKit面部表情数据为虚拟角色设置动画,iMessageAnimoji应用程序中所示。...class ARConfiguration AR会话配置抽象基类。 显示 class ARSCNView 用于显示增强使用3D SceneKit内容摄像机视图AR体验视图。...世界追踪 创建AR体验,允许用户使用设备后置摄像头探索周围世界中虚拟内容。 建立您第一个AR体验 创建运行AR会话应用程序,并使用平面检测使用SceneKit放置3D内容。...快速拍摄:为增强现实创造游戏 了解Apple如何为WWDC18构建精选演示,并获得使用ARKitSceneKit和Swift制作自己多人游戏技巧。...命中测试和真实世界位置 class ARHitTestResult 通过检查AR会话设备摄像机视图中点找到有关真实世界表面的信息。

2.2K20

平面检测-搜索真实世界表面

现在我们已经完成了正确运行ARKit项目的所有基本设置,我们希望我们设备能够坐在水平表面上。这是飞机检测。在本节中,我们将学习如何激活平面检测。我们将熟悉锚点以及如何使用它们将对象放置在锚点上。...水平平面检测 首先,我们需要打开配置平面检测属性并将其设置为水平,以检测平面(地板或桌子)。...import SceneKit import ARKit 延期 这个文件将作为ViewController类扩展,这里代码将成为该类一部分。...如果跟踪对象是平面,让我们进行场景测试。从技术上讲,如果锚是一个ARPlaneAnchor。...您现在正在学习如何在代码中应用它。 飞机位置 所以,就像我们为手表所做步骤一样,我们需要定位它。将平面节点放在检测到曲面的中心

2.9K30

ARKit 配置-在您AR项目的幕后

在本节中,我们将看看如何在后面配置提供ARKit模板。我们将发现什么是世界跟踪和AR会话。同样,我们将学习如何将一些调试选项应用于场景中指导。...AR场景视图 ARKit模板已经放入对象库中可用ARSCNView视图类中。此视图反映了相机看到内容并将其显示在屏幕上。...UIKIT UIKit是开发iOS应用程序基本框架,它可以集成标签,按钮,条形图和各种视图控制器等组件。 SCENEKIT 如前所述,SceneKit是我们选择处理3D对象渲染技术。...ARKIT 我们需要ARKit来让我们体验增强现实。没有它,我们将无法跟踪我们设备在世界上位置,将我们虚拟对象放在桌子上,甚至放在房间里。...统计信息提供有关场景渲染性能信息,每秒帧数(fps),动画,物理等.Apple建议将fps设置为60.在您设备上,您可以单击+按钮展开统计栏更多细节。

2.5K20

将模型添加到场景中 - 在您环境中显示3D内容

我们也熟悉了热门测试和世界变换。现在,我们拥有显示虚拟对象所需所有工具。在本教程中,我们将学习如何检索模型并使用按钮触发器将其呈现在场景中。一旦显示,我们将隐藏焦点方块。...为了能够正确添加我们按钮,我们必须删除当前 ARSCNView并首先从对象库添加UIView作为底层。接下来,选择相同ARKit SceneKit View并将其放回UIView之上。...import UIKit import SceneKit import ARKit extension ViewController {} 检索模型 在扩展内部,创建一个新函数来检索我们选择模型是一个很好主动...3轴中心,那么您可以在此处执行此操作。...当然,我们已经在场景中添加了我们模型,我们还没有把它放在表面上。所以,让我们这样做。 命中测试 显然,我们将再次使用命中测试,方法与之前相同。

5.5K20

SceneKit 场景编辑器-为您AR体验构建3D舞台

在本节中,我们将了解SceneKit场景编辑器。这是一个很好空间,可以帮助您可视化3D模型,编辑它,播放动画,模拟物理等。...下载 要学习本教程,您需要Xcode 10或更高版本,以及从简介到ARKit最终Xcode项目。您可以下载本节最终Xcode项目,以帮助您与自己进度进行比较。...您可以将文件夹命名为您想要任何名称,但这是它在XcodeARKit模板中标签,它是一个非常好标准。名称本身就是解释性。如果展开文件夹,请注意此处存储了飞船场景。...如果您有Xcode 9,它位于右侧面板底部。您将看到可添加对象列表。黄色物体是灯光,而绿色物体是几何形状。蓝色是相机,还有其他物体,物理和动画。...相对位置 现在,我们希望将屏幕放在表壳正中间。因此,x和y位置与情况相同,即为0。为了计算它z位置,我们知道该情况长度为1.14,其中心位于该值一半,即0.57。

5.5K20

深入浅出 ARCore

ARCore历史以及与苹果ARKit竞争我就不多讲了,在网上可以搜到一堆信息。但网上深入讲解ARCore的确实不多。...用户交互 ARCore使用 hit testing(命中测试) 获取与手机屏幕相对应(x,y)坐标(通过点击屏幕等交互方式),将其投射到 Camera 3D坐标系中,并返回与命中点射线相交所有平面和特征点...如我们要在ARCore环境中放置一个虚拟对象,首先要确定一个锚点,以确保ARCore能随着时间推移不断跟踪对象位置。通常情况下,会根据命中测试返回姿势创建一个锚点。...姿势改变这项技术特别关键,只有得到姿势,ARCore才可以随着时间推移不断更新环境对象(像飞机和特征点)位置。ARCore将平面和点认为是可跟踪特殊类型对象。...通过以上三点,可以说目前学习ARCore门槛相较于苹果ARKit要难不少。

3.7K10

在库克带领之下,苹果为VRAR领域打了一剂强心针

WWDC 2017于今日凌晨1时(北京时间)在美国加州圣何塞麦克恩利会议中心举行。...推出AR平台ARKit 苹果在介绍iOS 11同时,推出了一款全新AR平台ARKit。...ARKit具有快速而稳定运动追踪能力,可以让虚拟物体看上去更像被实实在在放置在实体空间里,而不是漂浮在现实中。 ARKit包括快速和稳定运动追踪,以及具有基本边界平面估算。...在互动过程中,虚拟物品光影变化还会根据位置不同实时变化。此外,苹果还在现场展示了利用ARKit开发《Pokemon Go》,游戏中精灵与周围环境更加融合,栩栩生。...苹果还表示,ARKit全线适配 iOS 整个生态系统,故ARKit有望成为最大AR平台。 ?

81080
领券