Tag: 增强现实

使用ARKit飞鲨

您可能听说过Sharknado,这是一部主题非常合理的电影-到处都是飞鲨。 在本文中,我们将尝试使用Xcode中的SceneKit编辑器来实现与ARKit类似的功能。 正如您将看到的,我们不需要大量代码即可完成从窗口传来的鲨鱼的效果,进行几次咬咬然后返回。 结果将类似于下面的视频。 实作 首先,创建一个名为ARAnimals的新的增强现实项目。 接下来,转到提供免费3D模型的网站TurboSquid.com,并选择这真棒的鲨鱼。 鲨鱼有几种格式,但是与Apple的SceneKit(我们用于在ARKit中渲染3D模型的版本)最兼容的是.dae格式或collada。 因此,将其解压缩,您将看到一个扩展名为.dae的文件,以及多个纹理图像。 将它们添加到Xcode项目中,选择.dae文件,将其重命名为sharks,然后在编辑器部分中按“转换为SceneKit场景文件格式”。 这会将collada文件转换为SceneKit文件。 导入后,您将看到以下结构。 在这里,我们不需要很多东西,例如图像平面和两个摄像头。 删除它们,创建一个父节点,然后将Armature和Parent_Sharkbody放在该父节点中,这将被称为shark。 产生的结构应类似于以下结构。 接下来,我们需要设置鲨鱼身体及其牙齿的纹理。 为此,选择Parent_Sharkbody节点,转到“材质”检查器,并将其“漫射”更改为图像Sharktexture002.png,该图像位于下载的3D模型的zip文件中。 这将使鲨鱼的身体有质感。 Parent_Sharkbody的子节点(称为Sharkjaw)包含鲨鱼的嘴巴。 同样,在“材质”检查器中,将“漫反射”更改为图像Sharkmouthtexture002.png。 这会给鲨鱼带来可怕的牙齿。 现在让我们设置鲨鱼的位置。 对于x和y,将0和z置于-5到-10之间。 这会使鲨鱼出现在您的面前。 由于鲨鱼已经在定向中,所以欧拉角钓鱼器的所有轴都应为0。 由于模型很大,因此将x,y和z的鲨鱼比例设置为0.5左右。 在运行应用程序之前,我们应该在ViewController中稍微修改Xcode生成的代码,以便加载场景。 这是在viewDidLoad方法中完成的,该方法将加载sharks.scn场景,而不是默认场景中的ship.scn。 现在,运行该应用程序,您应该会看到一条鲨鱼漂浮在您面前。 接下来,让鲨鱼来找我们攻击我们。 为此,我们将添加移动MoveBy动作,其中偏移量对于z轴为正。 由于鲨鱼已经处于负面位置,因此为了在我们面前看到它,正值会使其接近我们。 另外,当鲨鱼袭击我们时,我们会做出适当反应并让鲨鱼逃走。 为了做到这一点,我们将旋转鲨鱼并添加另一个MoveBy动作(现在为负值),这将产生鲨鱼要离开的效果。 可以像在“库”部分中添加任何其他元素,节点或粒子一样添加操作。 对于第一个移动动作,我们可以指定它在1秒钟后开始,持续5秒钟,并且其偏移仅在z轴上更改10米。 现在,我们需要使用RotateByEuler动作来旋转鲨鱼。 为了使鲨鱼转身,我们需要将其在y轴上旋转-180度。 可以在场景的第7秒完成此操作,此操作将持续一秒钟。 最后,我们需要采取相反的行动,将鲨鱼带回我们的面前,但现在又将其向后转。 运行该应用程序,您将看到鲨鱼降临。 到达后,等待一秒钟,旋转并离开。 为了使它更加有趣,请复制几次鲨鱼节点,然后更改x,y和z的值以及移动动作的持续时间和偏移量。 这将使场景更加恐怖,有许多鲨鱼向您袭来。 此外,当鲨鱼来到您的身上时,您可以添加一些粒子效果,例如可能意味着流血的红点(当然是鲨鱼的血液)。 如您所见,我们已经用最少的代码做到了这一点。 SceneKit编辑器非常强大,您无需编写代码即可完成许多有用的操作。 这个小项目的源代码可以在这里找到。

ARKit + SceneKit几何图形教程(第2部分)

如果您还没有,我强烈建议您阅读《 ARKit + SceneKit几何图形教程》(第1部分),其中有一些核心图形概念,您需要对其进行理解才能继续。 到目前为止,我已经向您展示了如何使用带有顶点,法线贴图和纹理贴图的原始类型重新创建SCNPlane和SCNBox的示例。 我接下来要讨论的是如何通过缩放,旋转或平移场景节点无法实现的方式使这些几何体生动起来。 这是本教程随附的GitHub存储库: maxxfrazer / SCNCustomGeometries-Part2 伴随我的中篇文章的第2部分。 通过创建以下内容,为maxxfrazer / SCNCustomGeometries-Part2开发做出贡献: github.com 我们要做的第一件事是获取多维数据集的单个顶点,并制作一个动画,使其看起来像是从多维数据集的中心拉开,然后随着其移回原位而产生摆动效果。 下面的GIF演示了动画: 单击此处在GitHub上查看此项目 这里的基本思想是,给定点[x,y,z]处的顶点,我想将其拉至[1.5x, 1.5y, 1.5y] ,然后将其释放回[x,y,z] 。 此处是随机选择顶点的,但是您可以添加hitTest来通过点击选择点。 当做这样的事情时,我发现使用图形计算器很有用,Desmos确实很棒,我已经使用了很多年了。 我建立了一个新类BoxStretcher ,它是SCNNode子类。 我还在SCNGeometry添加了另一个类函数,以返回具有8个顶点的标准多维数据集的顶点和索引。 我添加到BoxStretch的另一个有用函数是updateGeometry() ,它在给定更新后的顶点和索引的情况下创建SCNGeometry,并在顶点更新时重新分配节点的几何形状。 我发现为几何更新设置动画的最佳方法是使用SCNAction.customAction(duration:action :)。 无论您在代码块中放置什么,都称为每一帧,这是大多数动画所需要的。 这是animateCorner()的内容,它将在每次调用时更新顶点并刷新几何: 上面看起来有点复杂,所以让我们分解一下。 elapsedTime将是一个数字[0–3],因此在开始的0.5秒内,我们将通过if而不是else。 使用Desmos,我们可以看到它的图形如下所示(将时间交换为x): 因此,当elapsedTime达到0.5时,顶点应为[x,y,z] *(1 + 0.5),这将是我们想要的最远距离。 现在,当我们在0.5之后引入该部分时,如果将其分解,则为正弦波乘以指数衰减。 没有衰减,它将永远继续摆动,但是有了衰减,我们得到了顶点的良好运动,速度变慢并回到零。 当我们有零时,我们有:[x,y,z] *(1 + 0.0); 回到我们的起点。 这是指向我的Desmos图的链接,沿y轴有一个点,该点应遵循与顶点完全相同的模式。 拉伸释放 拉伸释放 拉伸释放www.desmos.com 对不起,如果我在那里失去你。 关键是我们希望该点沿[x,y,z]方向移动,但是自从我们开始以来基于时间多少? 我们需要一个函数,该函数需要花费时间并输出我们应该沿着曲线移动多少。 […]

最佳增强现实应用

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 —几何,材质,节点,手势哦,我的天哪!

本章是我的《 iOS开发者的ARKit》一书的一部分。 立即获取该书,并开始构建出色的增强现实应用程序。 在上一章中,您了解了创建默认ARKit应用程序所涉及的组件。 您还亲眼目睹了一只漂浮在您面前的太空船。 希望您已将其失踪的太空船告知了NASA! 在本章中,您将学习如何创建具有不同几何形状的虚拟对象,使用材质进行装饰,最后将它们作为SceneKit节点对象添加到现实世界中。 您还将学习如何使用手势和命中测试与虚拟对象进行交互。 让我们学习一些毕达哥拉斯定理。 几何: 几何表示与形状相对应的对象的线框。 SceneKit框架开箱即用地支持许多几何,此处显示了其中的一些。 SCNPlane :指定宽度和高度的矩形单边几何 SCNSphere :球形(或球形或球形)几何 SCNBox :六面多面体几何,其面均为矩形,可以选择带有圆角和圆角 SCNPyramid :直角金字塔几何 SCNTube :管的几何形状。 右圆柱体,其中心轴上有一个圆孔 每个类别代表一个特定的几何形状,可以一起使用以创建更复杂的形状。 材料: 默认情况下,几何图形只是线框。 您可以将几何体视为人类的骨骼。 材质就是您用肉装饰骨架的方式。 素材可以是颜色,图像甚至视频。 在阅读本节内容时,请确保您没有靠近食人族,否则他们可能会有错误的主意。 节点: 节点代表可以添加到场景中的对象。 只要未明确隐藏,添加到场景中的任何内容都可以被用户看到。 您可以将节点视为屏幕上的单个元素。 如果您要构建赛车游戏,那么一个节点可以代表一辆汽车。 如果要构建太空飞船游戏,则该节点可以是太空飞船,而一个单独的节点可以代表导弹。 节点也可以是复合节点,这意味着它们可以包含其他节点。 您可以想到一个代表大型卡车的节点,以及一个代表拖车,轮胎,货物等的子节点。 为真实世界添​​加形状: 首先,我们向增强现实世界添加一些形状。 在Xcode 9中创建一个新的Augmented Reality项目,并将清单1中的代码添加到viewDidLoad函数。 覆盖func viewDidLoad(){ super.viewDidLoad() //设置视图的委托 sceneView.delegate =自我 //创建一个新场景 让场景= SCNScene() let box = […]

使用Unity 3D和Vuforia的增强现实应用程序

每个人都想像并拥有自己的独到见解。有价值的想法是创造力。将您的想象力投入工作会在现实世界中产生非凡的输出。我相信增强现实 (AR)是IT技术中最好的创造力之一。 Unity 3D是一个游戏开发引擎,将使我们能够构建增强现实(AR)应用程序。它是构建AR应用程序的神奇且绝对出色的游戏引擎,我们将使用高通公司拥有的Vuforia的SDK。伙计们做了一些非常出色的工作,可以帮助他们快速,轻松地创建AR游戏。如果您以前从未使用过这些工具,以下是一些有用的链接。 学习Unity 刚开始? 准备提升您的职业生涯或提高团队技能? Unity具有广泛的资源,可用于… unity3d.com 入门 ©2011-2018 PTC Inc.保留所有权利。 这些材料中没有任何内容可以出售任何组件或… lib.vuforia.com 我已经使用统一的3D和Vuforia完成了简单的iOS应用。 看一看 ! 做完!!!! 现在我们准备开始我们的项目。将这两个资产合并到您的统一项目中。只需双击软件包并导入。那里的一些很棒的人只需几个简单的步骤就可以使开发人员很容易地完成此过程。谢谢! 现在,我们需要将3D模型放置在目标上.Unity本身拥有资产商店,您可以在其中搜索特定模型并下载。我使用了“ Fantasy Monster ‘,这是免费的3D图像资产,您可以使用任何想要放置的东西如果需要其他3D模型,例如“ Pokemon ”,则可以使用“ Root of evil Studios- http://roestudios.co.uk/ ”网站进行下载, 并将其添加到Project Asset文件夹中。 unity项目如下所示: 让我们统一配置相机。在Assets搜索栏中搜索ARCamera并将其放置在场景中。转到检查器选项卡中的App许可证密钥,然后粘贴从Vuforia Project复制的许可证密钥。搜索ImageTarget并将其放置在场景。转到“图像目标行为”,然后选择您先前在Vuforia项目上创建的数据库和ImageTarget。 您可以根据自己的需要来玩诸如“位置”,“旋转”和“缩放”之类的变换。现在我们可以在目标上看到我们的图像了。 选择您选择的任何图像并将其添加到场景中,通过拖动将其放置在任何位置。主要是3D模型(口袋妖怪)具有ImageTarget的子对象 (嵌套在内部),否则可能无法正常工作。另一个提示:如果您发现Image Target是白板而不是图像,请搜索ImageTarget Texture并将Texture Shape更改为2D。 而已 !! 在设备上实际运行之前,您可以在unity编辑器中运行并检查其运行是否完全符合您的预期。它会自动生成一个Xcode项目。由于iOS应用在设备上运行时需要临时配置文件,因此我建议先构建并在xcode中运行。 通过相同的过程,该项目也可以为Android设备构建。 保持联系以获取更多应用程序。 我的下一个应用程序是使用Makehuman和Unity 3D来使用类人动物。Unity3D中有很多功能。 创建自己的游乐场并开始游戏。

开始在Xamarin中构建增强现实应用程序

为Dootrix工作的最大好处之一就是可以花时间在新技术上工作。 几个月前,我接到了一项激动人心的任务,即构建功能演示程序,以在iOS上使用增强现实技术向新老客户展示。 只是在寻找代码? 本文的源代码在这里🍷 什么是增强现实? 增强现实 ( AR )是物理现实世界环境的直接或间接实时视图,其元素被计算机生成的感知信息“增强” 增强现实应用程序的一个著名示例是Pokemon Go。 此移动应用程序将增强现实技术吸引了成千上万的年轻人。 此应用程序的前提是您可以前往不同的地方,并从字面上捕获移动设备上的Pokemon。 宠物小精灵看起来好像正站在地面上的前方。 然后,您将向上滑动以向其扔Pokeballs。 您如何在iOS中构建增强现实应用程序? 为iOS构建增强现实应用程序的技术被称为ARKit。 ARKit扩展了设备相机的功能,并允许您检测平面并将3D对象添加到虚拟世界中。 在线上的大多数示例向您展示了如何使用Objective-C或Swift进行此操作,但是此演示程序的要求之一是使用Xamarin和.NET进行此操作。 你是如何开始的? 您将需要一些入门知识: 运行macOS的计算机,例如MacBook Mac版Visual Studio 苹果设备(很遗憾,您无法使用模拟器进行测试😅) 您可能遇到的问题 无法部署到您的设备 在Visual Studio for Mac中首次构建项目时,它可能无法部署到设备。 要解决此问题,您需要: 在XCode中创建一个空白应用程序 让它自动为您生成发布配置文件 将其部署到您的设备 之后,您应该可以从VS for Mac deploy部署应用程序了 启动AR会话时,您的应用程序崩溃 这会吸引很多人。 我认识一些开发人员,他们花了一段时间研究为什么他们的应用程序崩溃时,如果他们想查看一切是否正常,却没有有意义的消息。 该解决方案将为您节省大量的时间和挫败感。 一旦知道,它就会被刻在您的大脑中😉 问题是您需要允许权限访问设备上的相机。 因此,您需要修改Info.plist文件并启用“隐私–摄像机使用说明”权限。 使用应用程序请求访问设备相机时将显示的值进行设置。 设置完之后,您的应用程序将不再崩溃。 不客气😎🎉 创建项目 如前所述,您将需要Visual Studio for Mac。 打开它,我们将选择iOS> […]

使用ARKit获取房间计划(大小很重要的情况)

故事作者:nomtek的iOS开发人员Przemek Olszacki 两年前,我写了一篇有关“用iPhone扫描房间”的文章,您可以在这里阅读。 我尝试使用三个内置传感器(加速度计,陀螺仪和磁力计)来测量墙壁的长度并绘制房间的平面图。 我处理了从这些传感器接收到的原始数据,并根据将加速度转换为距离的自写代码计算了墙之间的距离。 结果令人鼓舞,表明可以实现,但需要更高级的计算(或更精确的传感器)才能获得所需的精度。 回去工作! 自从我看到ARKit的发布以来,我一直在等待机会尝试一下。 这是两年前返回原型的好机会。 从公告和WWDC谈话中,ARKit看起来很有希望:它的准确性,实时渲染性能和易于实现。 现在该进行测试了。 返回测量室的另一个原因是运动传感器本身已更新。 从iPhone 5S开始,使用单独的协处理器收集和处理传感器数据。 自2013年以来,每年都会更新该芯片,并在iPhone 8、8 Plus和X上推出最新的M11。从理论上讲,这三款设备的结果应该是最准确的。 科学的力量! 在衡量最重要的帮助时,我们从ARKit获得的就是设备在太空中的放置。 使用相机图像和运动传感器,它可以确定手机的位置,方向以及与某些物体和表面的距离。 无需复杂且容易出错的代码即可根据传感器提供的原始数据来计算设备的运动。 苹果为我们完成了所有这一切。 唯一困难的部分是我们如何使用它。 我尝试了几种方法来找到最准确的一种。 让我引导您完成我的过程。 你在看什么? 在我的第一次尝试中,我只是尝试重新构建两年前的应用程序-通过在手机接触墙壁时获得其位置来测量墙壁之间的距离。 不同之处在于,我不是使用自写代码来计算距离,而是使用ARKit中的数据。 简而言之,它没有用。 ARKit使用相机图像来帮助确定手机在太空中的位置,并且当手机接触墙壁时,相机会被遮挡。 如果没有相机,数据将无法可靠使用。 需要进一步实验 下一个方法基于另一个ARKit组件-通过相交最近的特征点进行命中测试。 ARKit能够通过检测相机图像中的显着特征来找到物体的表面和轮廓。 从理论上讲,将击中测试与启用的检测特征点一起使用可以允许测量从手机到相机所指向的对象的距离。 用户将站在房间的中央,并将手机的摄像头对准墙壁。 来自ARKit的数据将用于确定3D空间中的墙位置。 设备的方向将用于获取墙的方向。 不幸的是,它不适用于墙壁,因为大多数墙壁没有明显的特征并且是单色的单色表面。 下一个。 要解决以前方法中的问题,必须更改测量点。 至少要考虑两个选项。 首先是打印可以被应用识别并用作功能点的特定图案。 例如,必须将打印内容粘贴在墙上,以便应用程序能够识别出来,而不是尝试在图像中查找平整的墙。 它可能会起作用,但对用户而言将非常不便,因此未实现该想法。 第二种选择是使用ARKit提供的其他类型的点击测试。 它基于对水平面的检测。 初始化AR世界追踪时,我们可以启用水平面检测。 启用此选项后,ARKit会不断寻找可用作跟踪锚点的水平面。 好了,所以我们可以检测到水平面,但是与找到显然是垂直表面的墙又有什么关系呢? 好吧,由于我们不需要墙的高度,因此可以通过在与墙连接的地方对地板进行碰撞测试来测量其位置。 与采用特征点的方法一样,墙壁的方向由手机的方向确定。 这次,距离精度令人满意,在良好的照明条件下,我们可以获得单个墙壁位置的可用测量值。 测量多个墙壁以绘制房间平面图时会出现问题。 检测到的墙壁方向取决于用户将手机与墙壁平行放置。 […]

ARKit印象

去年秋天,苹果公司通过在iOS 11更新中发布了名为ARKit的框架,回应了围绕增强现实已有一段时间的宣传。 开发人员一直在等待它,因为它很容易实现平易近人的集成摄像头和运动功能以将2D和3D内容添加到设备摄像头实时视图的方式,任何可以开发iOS应用程序的人现在都可以基本上开始开发AR应用程序了。 。 这增加了在AppStore中发现的AR应用程序的数量,这是很容易理解的。 最近,我获得了一个在工作中学习ARKit的机会,并且由于我以前没有3D编程的经验,我很高兴分享一些学习经验的话,以鼓励更多的新手通过演示如何参加3D编程。很简单。 关于生命的(最大)事情是,它往往会每天带给您很多意想不到的东西。 从今年年初开始,我开始在Siili Solutions(一家国际和现代的全方位服务技术公司)工作,该公司以其对员工技能发展的兴趣和支持而闻名。 但是实际上,这对我来说是一个很大的惊喜。 在我对Oulu的办公室和人们变得有点熟悉之后的头几天,我立刻就提供了使用ARKit学习3D编程的可能性。 我很激动。 这些年来,我注意到在学习新事物时,尽可能早地将理论与实践结合起来,可以给我最好的成绩。 有了ARKit,我决定使用相同的方法。 在半小时内,我们与一些同事提出了研究应用程序的想法,我们的站点经理希望我将工具(从新员工开始选择所需的工具)带到2018年。新员工选择工具后,便有可能看到新工作站的外观。 是时候让我包好袖子了。 我通过观看WWDC ’17关于ARKit的演示开始了这项任务,以了解它。 我以前从没看过任何WWDC演示,结果发现它们很有趣。 但是要当心,它们会变得非常昂贵(让我们看看我的新老板在问机票并从芬兰飞往加利福尼亚参加下一次活动时会说些什么)。 无论如何,这些演示文稿也非常有用,这些演示文稿中使用的可下载示例成为我学习中最重要的事情。 由于我们的虚拟工作站应该放置在真实世界中,因此第一件事就是弄清楚如何使应用程序了解真实世界的外观。 我以为,在现实打击我之前,这将是一件神奇的事情。 ARKit没有任何超能力,但是它仍然可以做一些非常酷的事情。 视频中显示,我需要启用平面检测以获取有关物理世界的信息。 顾名思义,目前只能检测平面,换句话说就是可以放置虚拟物品的表面。 在第一个版本中,这些平面只能是水平的,但是在新的Beta版本中它们已经包括了垂直平面。 因此,当打开平面检测功能时,ARKit所做的就是分析来自捕获的每个相机帧的特征点。 然后将这些特征点组合到锚点上,这些锚点用于跟踪设备在现实世界中的位置,方向和运动。 既然该应用程序(和我)已开始了解环境,现在该开始使用虚拟内容了。 我们办公室里有几位3D美术师,所以我寻求帮助来创建3D模型,而且我很快就有了用于桌子,电话和键盘的模型,可以开始使用XCode的场景编辑器进行游戏。 在我放弃对模型不必做任何事情的想法之后,事情变得非常简单。 从一开始从3DS Max导出模型时就有一些问题。 由于某种原因,直到从.obj切换到.dae之前,我们无法使粗糙纹理正常工作,但是我不确定是由于文件格式还是其他原因,因为3D行话来自一只耳朵然后从另一个出去 在编辑器中需要做的是,如果文件路径错误,则添加一个闪电环境,以手动设置纹理。 我还注意到,可以与编辑器中的物理机构一起工作,并最终浪费了大量时间来尝试使其工作,但不幸的是,这对我来说是死胡同。 出于某种原因,如果我将它们添加到编辑器或代码中,则它们与物理实体无关。 有时,当在编辑器中设置它时,根本没有包含该主体,有时,该形状不是应该的形状。 放置项目时具有此功能会很不错,因此,如果您知道如何使它工作(或者您发现我们的模型有问题),请告诉我! 现在我们已经可以使用模型并将其导入XCode,是时候将它们添加到现实世界了。 为此,我需要弄清的第一件事是如何获取要在现实世界中放置物品的地方的3D坐标。 通过遍历示例代码,我发现了有关命中测试的信息。 将虚拟平面添加到场景中之后,将在其上启用点击测试,以便我们可以使用设备屏幕上的2D坐标来获取添加平面上的对应3D坐标。 事实证明,命中测试对于从场景中查找已添加的虚拟内容也非常有用,这在进行交互时是必需的。 最后,是时候弄清楚手势是如何工作的,如何在没有物理的情况下将对象放置在桌子上,当然还有如何制作动画了。 事实证明,将物体放在桌子上非常简单,我们只需要在桌子足够靠近时提起物品,然后继续根据我们的手指位置进行命中测试。 但是当涉及到多个对象时,我需要对旋转和移动手势进行一些思考。 有了动画,没有什么特别的,并且在扩展SCNNode类之后,我使它们的工作方式与UIView.animation几乎相同。 除了Pokemon Go和Snapchat的面部过滤器外,还没有其他公认的AR突破,因此,看看新的创新将是一件非常有趣的事情。 该技术具有很大的潜力,所以让我们希望,未来将为我们带来应用,这些应用将以有意义的方式改变我们的日常生活。 该项目的源代码可以在以下位置找到 : 杰西·西波拉(Jesse […]

ARKit + SceneKit几何图形教程(第1部分)

越来越多的iOS开发人员正在使用ARKit创建有趣的应用程序,但是这些开发人员中的许多人总体上并未接触过3D图形。 我在这篇文章中谈论的3D图形的特定部分是几何。 这是学习OpenGL的人的起点,但使用SceneKit似乎更有吸引力,既可以使用内置几何类型,也可以从在另一个3D建模程序中创建的SCNScene文件导入节点。 自己生成这些几何图形有好处的地方,主要是因为您在沿途学习的东西! GitHub上的这个项目包含下面显示的所有示例 在本教程和第2部分结束时,您应该能够像下面这样在SceneKit中创建一个动画网格物体: 我们之前看过这个吗? 重点是什么? 关键是,一旦有了这些基础,您只需稍加戳戳即可创建稍微不同的几何形状,而无需引入外部模型。 上述立方体的尺寸为0.2×0.2×0.2。 如果创建一个我称为的新几何类型,例如SkewBox,它会引入一个额外的参数skew: CGPoint我可以这样更改顶点(也在GitHub上): 让 src = SCNGeometrySource(vertices:[ //底部4个顶点 SCNVector3(-w,-h,-l), SCNVector3(w,-h,-l), SCNVector3(w,-h,l), SCNVector3(-w,-h,l), //前4个顶点 SCNVector3(-w + skew.x,h,-l + skew.y), SCNVector3(w + skew.x,h,-l + skew.y), SCNVector3(w + skew.x,h,l + skew.y), SCNVector3(-w + skew.x,h,l + skew.y), ]) 输出: 从这里您可以创建任何六面体! 然后达到任何其他形状。 下一步是对几何图形进行动画处理以使其伸展和倾斜,这种方式无法简单地通过缩放节点,仅通过更改几何图形来完成,例如此处的示例: 单击此处查看第2部分。如果有任何不清楚的地方或对以后的帖子有任何建议,请随时在Twitter或LinkedIn上关注我/向我发送消息。 查看我的GitHub上的其他项目。

展示:增强现实保险卡

虚拟现实 在虚拟现实中,用户完全沉浸在完全人工的数字环境中。 随着2016年4月/ 3月HTC Vive和Oculus Rift的发布,最终消费者(主要是游戏玩家🕹)终于获得了可用且付费的产品。 价格范围:仅用于耳机和控制器的价格在500到800美元之间。 您需要具有硬核游戏装备(> $ 2000),并且需要为每个单独的应用/游戏付费。 大多数游戏是在Steam上购买的。 增强现实 在增强现实中,虚拟对象叠加在现实环境中。 它已经很流行并且在电视上广为人知,尤其是在网球,棒球或橄榄球中。 大多数情况下,叠加层会显示历史,统计或信息数据。 宜家已经提供了一个很棒的移动应用程序,您可以在其中为您的房间完全提供虚拟宜家产品。 最后但并非最不重要的:Snapchat。 我认为每个人都看到过凯莉·詹纳(Kylie Jenner)脸上流行的小狗过滤器。 价格范围:0美元! 是的,零。 几乎每个人都已经有了支持增强现实技术的智能手机。 只需从商店下载该应用程序,然后就可以开始了! 混合现实 混合现实不只是叠加。 它将虚拟对象锚定到现实世界中的对象,并且大多数情况下,您也可以直接与它进行交互。 另外,虚拟对象还与周围环境互动。 例如:您可以在厨房的桌子上玩虚拟国际象棋,并用手互动/移动所有棋子。 所以现在放手! 在两天内,我们创建了3个不同的,非常粗糙的实验应用程序。 主要目标是学习新知识,并有很多乐趣。 增强现实保险卡的构想诞生了。 它使用Image Target识别保险卡(是的,它不能在其他卡上使用💳),并在其上投影2D / 3D数据。 为简单起见,我们将其简化为: 全名 顾客号码 社会保险号码(在瑞士,我们称为AHV号码) 已结算和剩余免赔额 已结算和剩余共付额 手机(较新的iOS或Android手机) 通常,增强现实设备使用计算机,显示器,陀螺仪传感器以及可以输入信息的设备(例如相机)。 这些东西都可以在智能手机上使用,使手机成为AR应用程序(例如PokémonGo)的良好渠道。 通过GPS或摄像机或其他传感设备收集的信息将进行评估,并叠加在现实视图中。 在此示例中,我们使用了新一代Apple iPhone,它支持增强现实应用程序和AR-Kit。 Vuforia Vuforia是AR市场的重要参与者。 您可以将其软件开发工具包(SDK)用于移动设备,以创建增强现实应用程序。 他们在其库中提供了许多功能,因此我们决定使用Image Targets。 迅速 Swift是Apple用于iOS和OS […]