Tag: AR

ARKit,SceneKit和如何控制世界

在本系列的第1部分中,我们经历了一个工作流程,在该工作流程中,我们处理了3D模型,使用Xcode创建了AR项目,开始了AR会话并将模型放入了增强场景。 在本文中,我们将开始使用各种SceneKit方法将模型付诸实践,并开始与我们世界中的对象进行交互。 可以在https://github.com/AbovegroundDan/ARTutorial_Part2上找到此文章的项目。 SceneKit提供了一组可应用于节点的操作。 这些动作可用于设置运动,旋转,缩放和其他节点属性的动画。 可以将它们分组以同时运行,按顺序依次运行,然后重复或颠倒。 完整列表可以在https://developer.apple.com/documentation/scenekit/scnaction中找到 我们将继续修改当前项目,并开始向我们的对象添加一些操作。 让我们从向球体添加旋转开始。 在HoverScene中的addSphere方法之后,添加以下方法: 让我们在球体上添加一些麻烦。 让我们也将其上下浮动。 我们将添加一个悬停动作,一个悬停动作,对这两个动作进行排序,然后将它们与我们现有的旋转动作组合在一起。 这是addAnimation方法的外观: 让我们为场景添加一些交互性。 让我们设定一个目标来开始场景,方法是让用户将球体放置在世界上,然后点按以激活它们。 由于我们的代码变得更加复杂,是时候开始抽象化处理场景对象的方式了。 在我们的项目中创建一个名为“对象”的新组。 在此文件夹中,我们将创建一个新的Swift文件,名为SceneObject.swift。 我们将创建一个派生自SCNNode的基类SceneObject。 我们一直在使用SceneKit做很多事情,但是仅了解ARKit可以做的一些事情。 作为快速了解更多ARKit功能的先导,让我们通过使球体“注视”相机为场景增添一点乐趣。 我们已经钩住了渲染器的updateAtTime方法,并且那里也有对相机的引用。 因此,让我们开始向Sphere类添加一个方法,以使其朝着特定方向发展。 球的“眼睛”已经面向负Z,这是对象的向前方向。 我们要做的是创建一个方法,该方法采用一个向量来标记我们的“眼睛”将要面对的空间中的一点。 请继续关注以获取更多ARKit乐趣! AbovegroundDan / ARTutorial_Part2 通过在GitHub上创建一个帐户来为ARTutorial_Part2开发做出贡献。 github.com

Foursquare API + ARKit

9月初,我们看到了iOS 11的推出,从而为数百万个启用了AR(增强现实)的设备提供了支持。 在发布之后,我们考虑了一些创新的方法,Foursquare的位置智能可以为您提供体验,以吸引用户。 在进行演示之前,我们将更深入地讨论AR和ARKit。 “增强现实是通过将另一幅图像覆盖在周围环境的实时视图上而产生的增强图像或合成图像。 “ ARKit如何工作? ARKit使用一种称为视觉惯性里程表(VIO)的技术,并具有一些2D平面检测功能。 VIO意味着该软件可以实时跟踪您在太空中的位置。 这是通过您的姿势完成的,该姿势可以通过摄像头系统以及加速度计和陀螺仪(CoreMotion)进行跟踪。 就像汽车中的里程表会跟踪汽车的行驶距离一样,VIO系统也会跟踪iPhone在6D空间中的行驶距离。 6D表示xyz运动的3D(平移),加上俯仰/偏航/横摇的3D(旋转)。 ARKit的核心功能之一是平面检测。 这是必需的,因此您可以在地面上放置内容的地方,否则看起来好像在太空中漂浮得很厉害。 这是根据光学系统检测到的特征计算得出的。 现在,我们对AR和ARKit有了更多的了解,让我们深入研究一下快速演示: 为了让您入门,我们构建了一个由ARKit驱动的应用程序,以演示位置智能的功能。 在下面详述的示例中,您将能够使用Foursquare Places API在全球范围内移动手机以查看位置及其与您的距离。 我们也鼓励您查看我们的Pilgrim SDK,您可以在其中实时了解,与用户交流和互动。 快速开始 要快速上手,您可以在手机上获取该应用,或在下面克隆以下存储库。 在建造过程中,请在开始后添加您的钥匙/秘密。 git clone git@github.com:garethpaul/foursquare-ar-camera-ios.git 克隆存储库并添加密钥后,即可在任何iOS设备上进行扩展。 我们建议使用现实生活中的电话-由于在本地测试AR的复杂性。 在我们开始之前.. 我们还要感谢Mapbox和Andrew Hart的团队在此领域的启发和提供进一步工作方面所做的早期工作。 建造ARKit + Foursquare 在较高级别的示例中,我们执行三个主要功能。 确定位置 找到一些地方 将地点添加到AR 第1步-确定位置 我们利用核心位置通过感官信息确定基本位置。 该框架使用所有可用的机载硬件,包括Wi-Fi,GPS,蓝牙,磁力计,气压计和蜂窝硬件来收集数据。 LocationManager类符合CLLocationManagerDelegate并处理从CoreLocation检索位置和方向。 在我们的示例中,我们的主ViewController符合SceneLocationViewDelegate。 委托是一种简单而强大的模式,其中,我们的ViewController与另一个对象一起起作用。 委托对象保留了另一个对象的引用。 委托的主要价值在于,它使我们能够轻松自定义一个中央对象中多个对象的AR行为。 第2步-查找热门地点 加载视图后,我们将使用Foursquare的Places API从SceneLocation的LocationManager确定位置。 为简单起见,我们已将其添加到主ViewController中,但建议为静态服务(模型和控制器)创建一个单独的类。 在函数getFoursquareLocations中,我们利用端点“ venues / […]

在SceneKit中更新SCNMaterial纹理

在iOS12和ARKit 2的最新发行版中,Fueled决定开发一款名为Toppler的多设备AR游戏,以探索其某些功能。 在构建这种AR体验时,我们需要向用户提供有关将要选择和抓取哪个块的反馈。 我们最终决定对材料纹理进行运行时更新是必须的。 但是,这样做时,我们遇到了在构建SceneKit游戏时其他人也可能遇到的问题。 交换纹理 我们有两个要用作纹理的不同图像,具体取决于块状态: 我将跳过UV贴图,该贴图负责在块上展开纹理,但是如果您想在此处获得更多详细信息,我之前已经写过有关如何将3D模型从Blender导出到SceneKit的信息。 我决定通过根据材料状态提供条件源来处理此问题。 以下是该TopplerBlockMaterial类的简化版本,该类是SCNMaterial子类,负责处理块的可视状态: 事实证明,底层流程花费了将近22%的允许时间来渲染框架和创建图像材料。 CoreGraphics需要在将UIImage应用于材质之前在新的缓冲区中重绘UIImage ,这被证明是非常耗时的。 我们绝对必须寻找其他地方来更新纹理,而又不影响游戏和AR体验,而这需要恒定的帧频。 偏移纹理 花了几个小时在文档中寻找解决方案之后,我终于在SCNMaterialProperty上发现了一个有趣的实例属性   : contentsTransform 。 事实证明,这正是我们所需要的。 这将允许我们创建一个包含两个不同状态的图像文件,然后我们可以偏移contentsTransform以仅显示纹理的所需部分。 这是新的纹理图像,红色矩形说明了可以用作contentsTransform的变换: 因此,我们需要使用两种不同的转换组合,一种用于普通,另一种用于突出显示状态。 这是使用此方法的更新后的TopplerBlockMaterial类: 我们遇到的这种阻止程序是一长串列表的一部分,当从UIKit发出来时,通常不会有人碰到它 。 交换UIImageView的UIImage是一个非常简单的过程,不应引入性能问题。 但是在使用3D环境和SceneKit时 ,我们会遇到一些使用UIKit时通常不会遇到的意外的性能考虑。 希望本文也能对其他人有所帮助。

最佳增强现实应用

AR技术正在成为主流。 增强现实越来越多地用于平板电脑,智能手机等移动设备中,以改变现实世界与数字图像,图形相交和交互的方式。 增强现实被开发为移动应用程序,并被用于结合现实世界和数字组件。 因此,随着iOS 11引入了全新的增强现实应用程序框架,该框架创造性地称为AR工具包。 让我们深入研究顶级增强现实应用程序。 宜家广场: IKEA Place是第一个家具AR应用程序。 它可以帮助您将IKEA产品虚拟地“放置”在您的空间中。 应用链接:https://itunes.apple.com/us/app/ikea-place/id1279244498?mt=8 堆栈AR: Stack AR是一款AR游戏应用。 堆积尽可能高的积木! 应用链接:https://itunes.apple.com/us/app/stack-ar/id1269638287?mt=8 世界画笔: World Brush是有创造力的人的创意应用程序之一,您可以在现实世界中选择任何画笔进行绘画,每幅画都是匿名的,并保存在创建它的大概GPS位置。 应用链接:https://itunes.apple.com/us/app/world-brush/id1277410449?mt=8 天空指南AR: Sky Guide AR应用程序从未像现在这样令人愉悦且易于使用。 只需将其举在天空上自然发现天体,卫星。 无论年龄和经验水平,它都是一个美好的时光! 应用程式连结:https://itunes.apple.com/us/app/sky-guide-ar/id576588894?mt=8&ign-mpt=uo%3D4 全息: Holo是最好的免费AR应用程序之一,它可以让您创建进入现实世界的动物和超级英雄的全息图。 应用链接:https://itunes.apple.com/us/app/holo/id1194175772?mt=8 2018年人体解剖学图集: 人体解剖学是面向学生,专业人士和教授的3D应用程序。 该应用程序包括完整的女性和男性3D解剖模型,这些图像与3D横截面以及骨骼和肌肉的交互动画配对 应用链接:https://itunes.apple.com/us/app/human-anatomy-atlas-2018/id1117998129?mt=8 WallaMe —增强现实: WallaMe是与您的朋友共享增强现实消息,使用相机捕获图像并创建增强现实绘图的最佳增强现实应用程序选择。 应用程式连结:https://itunes.apple.com/us/app/wallame-hide-messages-in-real/id963058537?mt=8

ARKit —简单的动手体验

大家好,我又是安东尼奥 👋上一次我们进行互动时,我写了一篇关于增强现实(AR)的简单技术介绍,以及它令人惊讶的惊人程度🌟,因此,如果您还没有读过,请仔细阅读。 我保证它不会像它的标题那样令人无聊,使您相信。 😅 全面披露,这篇博客不是要教您ARKit的基础知识,那里已经有很多很好的教程(这是一个非常酷的教程!),我不想只写其中一个。 我想带您经历一个实际的初步动手体验过程,并使用一种很有前途的,崭露头角的技术,这种技术可以带来实际有用的AR体验,而不仅仅是一些松散耦合的技术展示。功能和头。 (这句话满口是形容词,但这是重点!)因此,事不宜迟,让我们开始吧。 ARKit 正如我在上一篇文章中提到的那样,我决定试乘ARKit,然后让我告诉您,这是什么旅程! 对于那些以前从未听说过ARKit的人来说,它是苹果公司开发iOS增强现实应用程序的官方工具包。 它利用了他们最新的A11芯片和深度感知相机,具有以下功能: 会话之间的持久性AR体验 ,可以在以后恢复; AR会话也可以由多个用户同时共享 ,每个用户都有自己的iOS设备。 现实环境中的平面和表面检测 ; 真实世界中图像和物体的特征检测 ; 真实环境中的图像和物体检测与跟踪 ; 物理引擎,用于AR对象相互之间及其环境交互。 而且,我们只是在摸索,每批功能的数量,它们的可靠性以及它们相互补充的方式都超出了我们的预期。 😁 因此,为了体验此技术奇迹并获得启发,我下载了iOS 12和Xcode 10 (ARKit 2的最低要求),下载了所有Apple演示,几个开源项目,并深深地欣赏了它们的优点。 我立刻被迷住了。 使用SwiftShot播放或观看以下视频。 这不是no头,太神奇了! 首先,我们要做的就是将CoreLocation导入到我们的项目中,接下来我们需要设置一个LocationManager,它将不断向我们提供用户的GPS位置。 就我们的应用而言,由于AR已经耗尽了电池的电量,因此我决定采用可以走动的精度,但可以尝试其他精度。 全面披露:地球的曲率不会以任何可见的方式影响我们的应用程序,因为我们将处理最大2 Km的“小”距离,但要考虑潜在的问题并选择使用ARCL作为缓解措施,我们已经在提出更严格的要求。 😉 AR POI场景 与我们的第一个AR场景一样,使用ARCL框架添加我们最近购买的POI也不需要很多。 我们将从他们的书中摘取一页,并创建一个扩展了LocationNode (又扩展了SCNNode )的自定义节点:我们自己的LocationTextAnnotationNode 。 LocationTextAnnotationNode由一个文本子节点组成,用于显示POI的名称及其与当前位置的相对距离。 还有一个图像节点,我们可以在视觉上在AR场景中定位POI。 如您所见,大多数代码本身都是关于如何以美学方式呈现每个节点的,几乎没有考虑到如何将其全部放入AR场景中……🤔感谢ARCL的努力! 创建后,每个LocationTextAnnotationNode都将添加到AR场景。 很简单,对吧? POI路由 既然已经将POI正确放置在我们的AR场景中,我们希望能够与它们交互,从而使我们能够选择目的地并询问前往该目的地的路线。 设置点击手势识别器并不太麻烦,我们只需要对AR场景中被点击的位置进行命中测试,检索所有受影响的场景节点,然后选择第一个符合条件的匹配项即可。 选择了POI之后,我们要询问从当前位置到其GPS坐标的方向,我们将其作为连续的路线段捆绑进行寻址,最后将这些方向转换为可添加到AR场景的场景节点。 就是这样,我们拥有AR应用程序所需的一切: ✅知道用户当前的GPS位置; […]

使用ARKit在iOS上的增强现实圣诞树

在圣诞节之前和iOS 11发布之后,Tamedia Digital的一些朋友认为,如果我们可以将iOS的新增强现实功能用于非常特殊的应用程序,那就太酷了。 我们称它为圣诞节那天。 想法是让我们的大堂全天打开iPhone,重点放在一棵圣诞树上,上面放着圣诞球,不断显示拍摄照片和视频的人的自拍照。 为了知道在哪里展示球,我们尝试了一些方法。 首先,我们使用了Yolo,这是一种经过预先训练的模型,能够检测我们的树(以及许多其他对象)并在图像中提供其位置。 这没有按我们预期的那样工作:这非常耗费资源,而且我们的树太近了以至于我们无法检测到它。 我们最终要做的是在树下的地面上放置一个QR代码,并使用Vision API对其进行检测,并猜测树在世界上的哪个位置,以便我们可以将圣诞球放在树上。 我们也可以检测到一个矩形,但是QR码被证明是非常快速和可靠的。 我们也可以使用2D对象检测,但是当时iOS尚没有。 一旦检测到QR码,我们就可以使用Vision API返回的VNRectangleObservation,它为我们提供了有关投影矩形区域的信息。 有了它,我们可以在场景中调用hitTest并猜测QR Code在我们的增强现实世界中的什么位置。 首先让我们开始介绍如何在这样的环境下建立我们的AR世界。 没有特别的顺序。 应用程序启动时会发生什么: 在应用程序启动时,我们确实创建了QR Code请求对象。 调用SCNSceneRendererDelegate的渲染器方法时,将使用此对象检测QR Code。 每秒发生60次:您可能希望每n帧进行一次检测,以保持应用程序流畅。 对于该应用程序,我们使用SceneKit在增强现实世界中显示对象。 成功检测到后,我们将计算QR码在AR世界中的位置,并渲染圣诞球。 let qrCodeRequest = VNDetectBarcodesRequest(completionHandler: {(request, error) 完成处理程序…您应在此处处理错误。 并注意以下力量: 结果为request.results! { 如果让条形码=结果为? VNBarcodeObservation { DispatchQueue.main.async { self.textManager.showMessage(“已检测到QR码”) } self.serialQueue.async { //让我们计算qrcode的位置并显示圣诞球 self.handleObservation(用于:条形码) } } } 不要忘了初始化ARKit并设置您的ARSCNView及其委托(ARSCNViewDelegate)。 您可能想要做的一件事就是更改您希望视图重绘其内容的速率。 让standardConfiguration:ARWorldTrackingConfiguration = { […]

ARKit简介—视觉集成

该系列的这一部分将关于将Vision(Apple的计算机视觉和机器学习框架)与ARKit一起使用。 影像追踪 世界地图 物体扫描 视觉整合 金属和反射性表面(即将推出) 借助ARKit,您可以将Vision与AR实时集成,以产生无缝有效的用户体验。 什么是视觉? 视觉本身就是一个计算机视觉框架,该框架使用ML模型根据预先训练的数据对手机的摄像头进行分类。 例如,您可以添加一堆不同电气组件(如电动机或电阻器)的照片,给它们MLImageClassifier标签,然后训练MLImageClassifier模型来识别那些组件。 我今天希望教给您的是如何将Vision与AR结合在一起,以便您可以使用ARKit实时提供有关Vision发现的发现和结果的反馈。 例如,假设我想制作一个应用程序来标识我的吐司面包的来源( 例如WWDC )。 我将能够制作经过训练的ML模型,以识别不同的吐司,并通过Vision进行设置,然后在匹配后使用AR在Toast顶部放置一个Toast图标: 我们项目中需要做的第一件事是创建MLImageClassifier 。 创建图像分类器: 拍摄不同项目的照片。 这些可以是不同类型的工具,不同类型的水果,甚至不同品牌的流行音乐-无论您想要什么。 将同一类型的项目分组到一个文件夹中,该文件夹的名称为事物本身。 例如,如果您要比较不同类型的水果(例如:香蕉和苹果),则可以将香蕉的所有照片放入名为“ Banana”的文件夹中,并将苹果的所有照片放入名为“ Apple”的文件夹中 打开Xcode Playrounds并输入以下代码: 导入 CreateMLUI 让 builder = MLImageClassifierBuilder() builder.showInLiveView() 4.打开实时视图并运行游乐场。 您应该看到以下内容: 5.将所有文件夹放在一个大文件夹中,然后将该文件夹放到框中,然后它将训练模型。 6.测试您是否有测试集。 如果有更多图像(也已排序),则可以测试模型的准确性。 7.将模型导出为.mlmodel 接下来需要做的是使用ML模型设置Vision框架。 您将需要创建一个分类请求对象。 输入以下代码,在第一行中用模型名称替换“ Model()”,然后是“()”: 私人 惰性 var分类请求:VNCoreMLRequest = { do { let model = try VNCoreMLModel […]

零售业的增强现实(AR)—为什么它是客户参与度中的第二佳

增强现实(AR)从成为天上掉馅饼的想法到目前已被领先的零售品牌(无论是在店内还是在电子商务领域)吸收了很长的路要走。 根据Digi-Capital的一项研究,AR市场预测是,到2022年,整个AR市场(不仅仅是业务应用)可能达到850亿美元至900亿美元。 简单来说,AR是将数字虚拟信息中的覆盖层插入现实世界的功能。 尽管这可能是革命性的,但该技术可以追溯到1962年,当时摄影师摄影家Morton Heilig发布了具有视觉,声音,振动和气味的模拟器“ Sensorama”。 波音公司的研究员汤姆·考德尔(Tom Caudell)于1990年创造了“增强现实”一词。此外,在1992年,路易斯·罗森伯格(Louis Rosenberg)为美国空军开发了首个身临其境的增强现实系统-战斗机的平视显示器-提高人类绩效。 在这里,符号被显示在透明的玻璃流中,从而消除了看仪表的注意力,因此使飞行员能够更好地瞄准武器。 这种平视显示器进一步用于多个领域,例如汽车,旅行,医药和教育,零售和电子商务。 因此,随着AR技术的飞速发展,其潜力是无限的。 增强现实和虚拟现实是彼此的反向反映,因为每种实现对用户而言都有不同的目的。 VR是由计算机生成的模拟,其中一个人的环境被替换了。 以戴着耳机的虚拟现实视频游戏为例,它将带您进入一个不同的数字化世界,该世界旨在充实您的感官。 它是心灵传送的一种形式,是对我们现实的近似,是数字的,但本身不是现实。 另一方面,增强现实将虚拟元素作为与现实世界的重叠提供。 其他区别点是: 增强现实添加了虚拟组件,例如数字图像或视觉效果,振动或感觉(声音和气味),作为与实际物理世界互动的新层。 另一方面,虚拟现实将构建自己的计算机生成的世界并加以驱动。 用户可以通过头戴式或手持式控制器体验虚拟现实。 该设备允许用户在模拟环境中控制和导航他们的动作,这与现实世界相去甚远。 另一方面,增强现实技术很容易在笔记本电脑,智能手机和平板电脑等移动设备中使用。 通过展示两个世界如何相交和相互作用,它将现实世界与数字世界融合在一起。 我们的AR冒险之一是通过协助他们的购买过程为零售商店中的客户提供虚拟移动体验。 在这里,向顾客提供了在商店内移动时的实时信息,例如描述,价格和产品位置。 它们还提供了其他类似产品作为替代产品。 随着大型超市的发展,机动性可能是一项艰巨的任务。 同样,鉴于大量的前来,由个人客户服务主管全程指导客户的可能性不大。 而且,由于展示了无数产品,它们可能会容易分心,最终购买实际上不需要的东西。 在这种情况下,通过移动设备创建虚拟购物体验会更加方便和有意义。 我们构建了一个零售AR应用程序,该应用程序不仅具有交互性,而且还使客户能够找到他们真正想要的东西。 换句话说,它帮助他们做出了明智的选择,还帮助零售商很好地定位了他们的产品。 我们在应用程序中内置了以下功能: 在这里,客户可以按照应用程序上的以下步骤前往特定部门: 在零售商店或当前部门的入口处扫描条形码 接下来,查看各个部门 第三,选择查看部门的路径 接下来,路径将出现在增强现实视图中 客户现在可以按照实时摄像头中显示的路径进行操作 客户将按照建议的路径到达所选部门 注意:在这里,客户也可以按照相同的步骤从一个部门转移到另一个部门。 客户在部门中选择产品后,应用程序将引导他们使用推荐的产品。 步骤如下: 扫描所选产品的条形码 客户将查看推荐的产品 客户可以选择选项以查看推荐产品的路径 接下来,路径将出现在增强现实视图中 然后,客户将遵循实时摄像机上显示的路径 客户将到达过道以及放置产品的确切位置 该应用程序使商店所有者可以为客户搜索部门或相关产品添加路线。 以下是他们需要遵循的步骤: 扫描部门的起始产品或职位以添加路线 接下来,选择目标产品或部门 现在,选择“开始”并开始向目的地走去 […]

使用ARKit在增强现实中显示视频

首先,我要做的是浏览Pinterest来检索此特定打印件。 接下来,我裁剪了将要检测并覆盖实际视频的图像。 最后,我们将在检测到的图像上播放视频。 现在您已经创建了一个项目,让我们在资产文件夹Assets.xcassets创建一个新的AR资源组。 添加裁剪后的图像(我的图像被命名为black )并为其设置尺寸。 尺寸是我们实际的 在我们打印的照片上裁剪图像尺寸。 根据我的测量,我打印的照片约为14x15cm。 键入宽度0.14米后,Xcode会自动生成高度。 接下来,拖放将用于播放检测到的图像的视频文件。 确保在添加视频时,将其添加到我们的项目目标中。 添加代码 删除ViewController.swift所有代码,并将其替换为上面的代码。 我们在这里所做的是设置AR配置以跟踪图像并设置应用程序应跟踪的图像 。 接下来,我们将使用一种委托方法将视频添加到检测到的图像上。 当要向场景中添加节点时,委托方法会通知我们。 该节点将为空,因此我们可以自定义。 但是在我们输入新代码之前,这将是逻辑流程: 首先检测我们的应用何时在锚中添加了新节点 检查我们的锚点是否匹配ARImageAnchor ,如果匹配,则表示检测到我们的图像 创建一个包含我们的视频文件的视频节点,并将其添加到视频场景中。 调整所有必要的位置 创建一个与检测到的图像具有相同方向和大小的新平面 将我们的视频节点添加到飞机上 创建一个包含该平面的新节点 将此新节点添加为子节点 这就是我们最终的结果。 让我们运行该应用程序并查看结果! 真好! 我们的AR应用程序正在按预期运行! 但是,有一个小问题。 原始的《 Daily Prophet新闻具有循环效果,因此让我们将视频循环显示在图像上。 循环播放视频 编辑我们的代码如上。 我们已更改的是: 我们使用AVPlayer播放项目 使用AVPlayer初始化我们的video node 添加观察者,以便当播放器完成其当前项目时,重置视频并再次播放 继续运行该应用程序! 最终输出应该与我们要实现的输出非常相似!

AR之旅-第2部分

因此,在经过非常紧张的前两个晚上之后,老实说,我对我们参与该项目的机会感觉好多了。 头一天晚上都花大量时间研究Swift,以使用语法,数据结构和控制流。 鉴于我在选修期间从事Java和Go的工作,因此转向强类型和面向对象的语言并不是外国的经验,以我的愚见,对于任何有Javascript背景的人来说,这都是相对容易的选择。 第二天晚上和第二天,我们更多地关注我们项目(Jenga游戏的AR版本)-苹果的ARKit。 值得庆幸的是,这里有大量的资源,我目前正在一门Swift通用课程上取得进展,该课程包括ARKit和ML Core以及ARKit专用课程。 今天发生的惊人的事情 构建有效的AR演示应用程序-当前,我们有两个不同的应用程序,它们显示了ARKit的大部分主要功能。 一种是允许您在场景中放置骰子,并根据点击或电话震动来模拟滚动,第二种是测量距离(如上所示)。 尚未完全为Appstore做好准备,但感觉像是要承受很大的负担。 找到了一个与创建的对象进行用户交互的演示-我当前的技术关注点是如何启用移动AR Jenga块所需的手指跟踪。 值得庆幸的是,我遇到了有关Toptal的精彩教程,看起来就像我们所需要的。 它也应该允许我们尝试自己的跟踪,而不必转向Vuforia或ManoMotion。 是在德克萨斯中央食品银行(Central Texas Foodbank)自愿参加的-是的,它与该项目完全无关,但这是一个很好的机会,可以停止思考下周我们需要做的一切,并回馈社区。 对我来说,专注于这个项目同等重要,对我来说一点一点地断开电源并以回馈的方式表示感谢也对我来说同样重要。 下一步是什么 完成关于Udemy的第二个ARKit课程-巩固基本概念并更熟悉API,以至于它不再像看教程那样多,而是更多地利用我们学到的技能 获得用户与创建的对象进行交互的有效演示 玩弄物理学-这是我其他队友的重点,但我仍然想对此有所体会 感谢阅读本文的任何人! 如果您处于与开始进入iOS和Swift或ARKit相似的职位,我将乐于接受任何反馈或意见,并愿意(尝试)回答您可能遇到的任何问题!