Tag: Arkit 2

ARKit 2简介—图像跟踪

上一个WWDC,iOS 12与ARKit 2一起发布。最初的ARKit于去年与iOS 11一起发布-它允许开发人员使用本机iOS框架将AR添加到其应用程序中,并使用户可以使用它。 借助ARKit 2,新的功能被添加到框架中,从而将体验带到了另一个层次。 诸如图像跟踪,世界地图,对象扫描, 视觉集成以及金属和反射表面之类的东西是其最新版本最令人期待的功能。 由于这只是第一部分,因此我将从图像跟踪开始,并随着我们的前进继续探讨其余所有主题。 这是集合的列表,随着我们的进行,它将更新: 影像追踪 世界地图 物体扫描 视觉整合(即将推出) 金属和反射性表面(即将推出) 就个人而言,图像跟踪是ARKit 2的最佳功能。 它允许开发人员将图像上传到他们的应用程序中,例如从相框中上传照片,然后可以在使用该应用程序时实时识别这些图片并在其上执行某些操作-例如在其顶部放置3D模型。 在WWDC的示例中,演示者使用了他的猫的相框。 他将图像作为ARReferenceImage上传到应用程序。 然后,您可以在应用程序中这样定义它: //定义一个变量来保存所有参考图像, 让 referenceImages = ARReferenceImage .referenceImages(inGroupNamed:“ AR Resources”,bundle:Bundle.main) 这将收集您放置在资产文件夹的AR资源文件夹中的所有参考图像。 接下来,我们必须配置我们的AR会话。 我们通过设置实例化ARImageTrackingConfiguration 。 除此之外,您还必须设置其trackingImages属性以及maximumNumberOfTrackedImages 属性。 第二个属性使应用程序知道该应用程序“允许”同时跟踪多少图像-通常取决于您打算对应用程序使用什么来决定。 这是一个例子: //创建会话配置 let配置= ARImageTrackingConfiguration () 配置 .trackingImages = referenceImages 配置 .maximumNumberOfTrackedImages = 1 //运行视图的会话 sceneView .session.run(configuration) 恭喜你! 您的应用程序现在将自动跟踪您告诉它的图像。 从那里开始,我们使用renderer( […]

开始学习如何制作第一个ARKit应用程序

苹果的ARKit API使每个iOS开发人员都可以使用令人兴奋的增强现实世界,但是您从哪里开始呢? 与我们一起进行增强现实之旅,构建AR太阳系,并学习如何制作您的第一个ARKit应用程序。 这篇文章来自ARKit的多部分系列,我们讨论AR的设计,构建演示应用程序,探索和测试ARKit的许多功能。 我们之前曾写过关于 为AR应用程序设计3D模型的文章 。 介绍 AR是神奇的应用程序(如神奇宝贝Go,Snapchat的动画表情符号和Instagram的3D贴纸)背后的核心技术。 苹果在2017年WWDC上宣布了ARKit,已经产生了一些令人印象深刻的软件,结合了有趣和实用的应用程序,为每个人提供了一些东西。 我们希望有机会尝试使用它,看看我们可以用它构建什么令人难以置信的东西。 在过去的一年中,Novoda一直在研究ARKit的功能,了解我们可以构建的内容以及该技术的局限性,我们用它来构建内容有很多乐趣,并希望分享一些发现。 他们说,将房屋设置为帽子是测试位置的最佳方法 在本演示中,我们将使用在本系列的设计部分中创建的自定义3D模型。 即使您无法创建自己的自定义模型,也可以使用Apple提供的简单AR多维数据集或从SketchUp或Google的Poly下载模型 首先要了解的是AR如何通过设备相机感知世界:它将AR相机输入转换成由平面,光源,虚拟相机和特征点组成的场景。 ARKit识别场景图像中的显着特征,跟踪这些特征在视频帧中的位置差异,并将该信息与运动感应数据进行比较。 结果是设备位置和运动的高精度模型,该模型还可以分析和理解场景的内容。 如果您想进行更深入的分析,我强烈建议您阅读此页面Apple的About Augmented Reality或在ARKit上观看他们的WWDC 2017演讲。 我还建议您观看WWDC 2018的《了解ARKit跟踪和检测》演讲以及ARKit2视频。 带有平面和光源的模型在Xcode上的外观。 这将被添加到AR场景中 通过此世界跟踪和平面检测,ARKit可以创建特征点 ,ARKit中使用了特征点将模型放置在场景中,并将模型锚定在其“周围”环境中。 如Apple所述: 这些点代表在相机图像中检测到的显着特征。 它们在3D世界坐标空间中的位置被推断为ARKit执行的图像分析的一部分,以便准确跟踪设备的位置,方向和运动。 总而言之,这些点从摄像机的角度松散地与实际对象的轮廓相关。 使用ARView和ARSCNView 为了构建AR应用程序,我们遵循了一系列教程AppCode ARKit简介,带有3D对象的AppCoda ARKit,由示例创建的带有ARKit和MarkDaws AR的Pusher构建AR,以及Apple提供的有关AR类的文档。 由于Apple和其他教程已经介绍了大多数基本设置,因此我们不会在此处发布所有代码,而仅介绍我们在此过程中发现的一些逻辑,问题和解决方案。 与此项目相关的所有源代码以及以下所有与此项目相关的文章都可以在我们的GitHub上找到。 创建ARKit项目时首先要做出的决定是使用标准的单视图应用模板还是Apple提供的AR模板。 我们都尝试过这两种方法,但在简单的应用程序/演示中几乎没有什么区别。 AR模板设置为使用情节ARSCNView ,并具有带有飞机模型的预配置ARSCNView 。 如果您喜欢在编写自己的代码之前先试用工作代码,我们建议您使用AR模板,尤其是它带有一些清晰的解释性注释。 另外,如果您希望控制每段代码,那么从头开始显然更好。 在此演示中,我们使用了模板和情节提要,但是即使您从头开始创建项目,您也应该能够继续进行。 每个AR应用程序都需要一些关键点: 您将需要ARSCNView 。 大多数人将其实例命名为sceneView 。 这是所有AR魔术发生的地方。 您可以将其设置为占据整个屏幕或仅作为UI的一部分。 您需要实现ARSCNViewDelegate协议,该协议包括用于将模型呈现到View中的方法。 […]