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

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

ARKit教程插图:在iOS ARKit应用程序中与虚拟对象交互 在这篇文章中,我们将使用iOS ARKit创建一个有趣的ARKit示例项目。用户将手指放在桌子上,好像他们握笔,点击缩略图并开始绘图。...我们的iOS ARKit示例的完整源代码可以在GitHub上找到。 ? image 我们为什么要关注iOS ARKit? 每个有经验的开发人员都可能意识到AR是一个古老的概念。...我相信我们很快就会走向一个新的AR炒作高峰,通过这个新的重要支点,它最终可以找到它的本土市场,让增强现实应用程序开发成为主流。 但是有足够的历史,让我们用代码弄脏手,看看苹果增强现实!...通过检测这些点相对于彼此从一帧移动到另一帧的程度,可以估计设备在3D空间中的位置。这就是为什么ARKit在面向无特征的白色墙壁时放置时或者当设备移动得非常快而导致图像模糊时无法正常工作的原因。...ARKit为我们提供了displayTransform从图像坐标空间转换到视口坐标空间的矩阵,但不是相反。那么我们怎么做反过来呢?通过使用矩阵的逆。

2.2K30

ARKit介绍

Pokemon Go是第一个也许是最着名的应用程序之一,它向我们展示了应用程序中AR的强大功能。实现与Pokemon Go具有相同交互性的应用程序并不容易,这就是为什么我认为ARKit会有所作为。...,所以我决定使用ARKit创建自己的测量应用程序。 我开始观看介绍ARKit:来自WWDC17的iOS增强现实视频。然后我阅读文档并使用演示应用程序(在增强现实中放置对象)。...我删除了加载ship.scn资源的当前场景,viewDidLoad因为我想从干净的环境开始(在摄像机视图中没有任何内容)。...然后我UITapGestureRecognizer在主视图中添加了一个以识别用于添加节点的轻击手势。...A SCNNode是“场景图的结构元素,表示3D坐标空间中的位置和变换”,其中可以附加几何图形,灯光,相机或其他可显示内容。我决定使用球体作为几何体。

2.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    我们的iOS ARKit示例的完整源代码可在GitHub上找到。 为什么我们现在应该关心iOS ARKit? 每个有经验的开发人员都可能意识到AR是一个旧概念。...通过检测这些点在一个帧之间移动的距离,我们可以估算出这个设备在3D空间中的位置。这就是为什么当设备被放置在一个毫无特色的白色墙壁上或者当设备移动得非常快导致图像模糊的时候,ARKit不能正常工作。...,来寻找与屏幕视图中的2D点相对应的真实的平面。...ARKit为我们提供了displayTransform从图像坐标空间转换为视口坐标空间的矩阵,但不是相反的。那么我们怎么能做逆?通过使用矩阵的倒数。...Apple Vision库允许开发人员跟踪视频流中的对象。开发人员为他们要跟踪的对象在初始图像帧内提供一个矩形的坐标,然后在视频帧中提供矩形,并且该库返回该对象的新位置。

    1.8K10

    ARKit

    ARKit结合了设备运动跟踪,摄像机场景捕捉,高级场景处理和显示便利性,简化了构建AR体验的任务。您可以使用这些技术使用iOS设备的后置摄像头或前置摄像头创建多种AR体验。...例如,您可以在摄像机视图中显示用户的面部并提供逼真的虚拟遮罩。您还可以省略摄像机视图并使用ARKit面部表情数据为虚拟角色设置动画,如iMessage的Animoji应用程序中所示。...建立您的第一个AR体验 创建运行AR会话的应用程序,并使用平面检测使用SceneKit放置3D内容。 了解ARKit中的世界跟踪 发现支持概念,功能和最佳实践,以构建出色的AR体验。...protocol ARTrackable 场景中的真实世界对象,ARKit跟踪位置和方向的变化。 相机和场景细节 class ARFrame 具有位置跟踪信息的视频图像作为AR会话的一部分被捕获。...class ARCamera 有关AR会话中捕获的视频帧的摄像机位置和成像特征的信息。 class ARLightEstimate 与AR会话中捕获的视频帧相关联的估计场景照明信息。

    2.2K20

    使用ARKit开发AR游戏-基础篇:ARKit入门篇

    当您的应用程序显示虚拟内容与实时摄像头图像,用户会感受到增强的现实:产生虚拟内容是真实世界的一部分的错觉。...arkit1.jpg AR设备和SDK AR设备 在相当多的文章中都有涉及,不再赘述,主要是头盔的方式,透明显示将对象叠加到现实世界中。...运行的AR会话连续从设备摄像机捕获视频帧(Frame)。对于每一帧,ARKit会将图像与来自设备的运动感应硬件的数据一起分析,以估计设备的现实位置和方向。...ARKit SDK分析相机视图中的内容,并根据可识别的功能和估计的深度确定点数。碰撞结果按照与设备的距离进行排序。平面优先于feature point.         ...这允许应用程序用真实世界的光来照亮场景中的对象。          AmbientColorTemperature是整个场景光环境光的估计温度(开尔文)。

    4.5K51

    SDK新风口,AR SDK该怎么玩?

    to B、to C都有涉足 虽然视+以B端业务为主,太虚以C端开发者为主,但这并不意味着他们就完全放弃了其他的客户群体。 视+除了为企业定制解决方案之外,还推出了面向大众用户的app——视+小视频。...这是公司旗下的AR短视频平台,让普通用户在拍摄时选择不同的AR特效,并且上传视频至社区内,和大众分享。据视+方面介绍,视+小视频已经拥有400万用户总量,进一步推动了大众对于AR的接受度。...这也成为了其它AR SDK可以抓住的机会。 比如,我们现在已经能够感受到,ARKit在物体识别、3D追踪、现实交互等方面都还比较欠缺,但这些功能是AR接下来发展的重要方向。...再大的公司也不可能在一个全新的领域里面尝试所有的方面,所以ARKit和ARCore更多的起到一个很好的教育市场的作用,不需要其他的企业再去跟别人说AR到底是一个什么东西了。...同时,ARKit和ARCore都只能解决AR里面非常小的一个点,还有很多的东西需要去做。 对于B端业务占比更大的视+来说,自己的专长领域收到的影响并不大。

    2.3K80

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

    这篇第一篇文章将使用ARKit创建一个非常简单的hello world AR应用程序。最后,我们将能够在增强的世界中定位3D立方体,并使用我们的iOS设备移动它。...如果您熟悉基本的3D概念,那将非常简单。 如果你不能等到文章结尾,这里有一个应用程序的视频。正如您在使用ARKit时所看到的,我们可以将虚拟对象放置在现实世界中,并在我们移动相机时将它们固定到位。...即使这是一个非常简单的应用程序,我们将通过这些系列文章继续构建越来越多的功能,包括几何检测,3D物理和更多有趣的东西。...image.png 运行项目,如果设备上的所有内容都按预期工作,您应该会看到一个应用程序,其中显示了实时摄像头源和位于物理空间中的飞机的3D模型。...这堂课有几件事: 从视图中的设备相机渲染实时视频流,作为3D场景的背景 ARKit的3D坐标系与SceneKit的3D坐标系匹配,因此在此视图中渲染的对象将自动匹配增强的ARKit世界视图 自动移动虚拟

    1.2K30

    苹果的增强现实框架:ARKit

    同时ARKit也支持自定义用OpenGL或Metal实现渲染类,但要自己管理与ARSession之间的通信,同时要遵循iOS GPU命令不能在后台调用的规则。...此外SCeneKit的HitTest返回虚拟物品。 ARFrame摄像头视频帧的包装类,包含位置追踪信息、环境参数、视频帧。...(这个在VR中用的比较多,就是用一个贴满背景的立方体包裹住摄像机所在的空间,网上的资料较多。) 3 . ARKit的如何模拟光源的?为什么不产生阴影。...答:ARKit通过图像的环境来设置模型的环境光强度,而环境光是不产生阴影的。 (我猜苹果应该是通过像素值来确定环境光的,如果用高级一点的方法完全可以添加直射光。...答:可以在已识别的物体位置上,添加一个node, 这样就能在之后的处理中一直保持这个物体的追踪。

    3.4K00

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

    ARKit - 检测到平面并映射到楼层 在我们的第一个hello world ARKit应用程序中,我们设置了我们的项目并渲染了一个虚拟3D立方体,可以在现实世界中渲染并在您移动时进行跟踪。...一旦我们检测到一个平面,我们就会将其可视化以显示平面的比例和方向。...添加调试可视化 在我们开始之前,向应用程序添加一些调试信息是有用的,即渲染从ARKit报告的世界原点,然后渲染ARKit检测到的特征点,这将有助于让您知道您所在的区域是跟踪好与否。...提取结果 下面是我走过房子的一部分,从上面的视频中检测到的飞机的一些屏幕截图: 这是我厨房里的一个小岛,ARKit很好地找到了范围并正确定位了飞机以匹配凸起的表面 image.png 这是一个看着地板的镜头...image.png 识别外卖 以下是我从平面检测中发现的一些观点: 不要指望一架飞机与一个表面完美对齐,正如你从视频中看到的那样,飞机被检测到但是方向可能已经关闭,所以如果你正在开发一个AR应用程序,它想让几何图形真正准确效果你可能会失望

    2.9K20

    建立您的第一个AR体验

    创建运行AR会话的应用程序,并使用平面检测使用SceneKit放置3D内容。...下载 软件开发工具包 iOS 11.3+ Xcode 10.0+ Beta 概观 此示例应用程序运行ARKit世界跟踪会话,其内容显示在SceneKit视图中。...() configuration.planeDetection = [.horizontal, .vertical] sceneView.session.run(configuration) 仅当将显示它的视图显示在屏幕上时才运行会话...如果AR是您应用的辅助功能,请使用该属性确定是否提供isSupported基于AR的功能。 为检测到的平面放置3D内容 设置AR会话后,可以使用SceneKit在视图中放置虚拟内容。...为了显示每个平面的当前估计形状,此示例应用程序还实现了renderer(_:didUpdate:for:)方法,更新ARSCNPlaneGeometry和SCNPlane对象以反映来自ARKit的最新信息

    1.1K20

    WWV 2018年十大必看视频

    注意:要在更短的时间内观看更多视频,我们建议您从WWDC 2018视频站点下载高清/标清视频,然后使用VLC媒体播放器或QuickTime播放器将视频重播为1.5倍速或2.0倍速。您可以稍后感谢我!...结果是您的神经网络用户体验更快,应用程序包大小更少。 ARKit 2建立在我们最近在ARKit 1.5中看到的改进之上。...用户自己的短语可以调用应用程序功能来获取信息或调用操作 - 通常只需添加几行代码即可。 平台国家联盟所涵盖的新项目远远超出我在本文中提出的范围。...特别是,新的自定义Playgrounds显示转换器允许您在实时REPL类似的结果内联视图中显示您自己的自定义值。他还强调了如何在项目中支持自己的框架。...拥抱算法WWDC 2018 [视频链接] “我最喜欢的视频是”拥抱算法“ - David Abrahams和Crusty的下一部分。这个视频并没有传播知识,因为提出了不同的编码范例。

    2.8K20

    ARKit 到底怎么实现的

    app or game 集成iOS设备摄像头和运动功能,在你的应用程序或游戏中产生增强现实体验 我写过一个小实例100行代码实现手机AR,有兴趣的可以去看看,这个demo 也是ARKit 的原理介绍...ARKit 重要的类介绍 ARSCNView 显示3D 内容的视图 继承SCNView ,SCNView 继承UIView,所以这个视图可以是任何UIView的子视图,所以你可以像使用UIView一样使用它...AR会话连续地从设备摄像机捕获视频帧。...对于每一帧,ARkit分析图像,通过从装置的运动传感硬件来判断设备的实际位置数据 ARCamera 代表 AR会话中捕获的视频帧的摄像机位置和成像特性的信息 ARSessionConfiguration...,如果想要学习AR 开发, 难点不是ARKit 框架,而是苹果在 2014 年推出3D游戏引擎框架SceneKit,这个框架至今没有被重用,但是相信AR 会让这个框架火起来,在年初我已经将SceneKit

    1.1K10

    ARKit 简介-使用设备的相机将虚拟对象添加到现实世界中 看视频

    我喜欢分段,所以我要选择那个类别。我认为灰色的在这里看起来不错。我们来试试吧。现在我们正在检测地板。一旦完成,沙发就会弹出我的屏幕。我现在要做的就是将它正确放置在我的房间里,看看它是否合适。...SNAPCHAT Snapchat:这个社交媒体应用程序以其娱乐相机过滤器而闻名。无论是将动物部位添加到脸上还是与另一个人交换面部,你都会忍不住嘲笑它。然后你拍一张照片或短视频并分享给你的朋友。...接口 这是您刚刚创建新项目后的第一个屏幕。左侧的第一个面板是Project Navigator,其中显示了项目的所有文件。在中间,您可以在项目编辑器中管理项目。...第一次运行该应用程序时,它会询问您是否可以访问您的相机。您需要允许在屏幕上查看相机看到的内容并继续使用ARKit项目 结论 我们刚刚开始AR。我们学到了什么是ARKit,它是多么多样化。...您可以使用此框架构建非常酷的应用程序。我希望你很高兴能继续学习这门课程,学习如何自己创作。 原文: https://designcode.io/arkit-intro

    3.7K30

    WWDC 2018年十大视频评论

    注意:要在更短的时间内观看更多视频,我们建议您从WWDC 2018视频站点下载高清/标清视频,然后使用VLC媒体播放器或QuickTime播放器将视频重播为1.5倍速或2.0倍速。您可以稍后感谢我!...结果是您的神经网络用户体验更快,应用程序包大小更少。 ARKit 2建立在我们最近在ARKit 1.5中看到的改进之上。...用户自己的短语可以调用应用程序功能来获取信息或调用操作 - 通常只需添加几行代码即可。 平台国家联盟所涵盖的新项目远远超出我在本文中提出的范围。...TJ Usiyan概述了更高级的Playground功能。特别是,新的自定义游乐场显示转换器允许您在实时REPL类似的结果内联视图中显示您自己的自定义值。他还强调了如何在项目中支持自己的框架。...拥抱算法WWDC 2018 [视频链接] “我最喜欢的视频是”拥抱算法“ - David Abrahams和Crusty的下一部分。这个视频并没有传播知识,因为提出了不同的编码范例。

    3.4K20

    苹果WWDC2018:暗黑界面的新版macOS发布,唯一“新产品”是只表带

    让我们先一睹为快这两小时的核心内容,想啃生肉的果粉儿可以直接拉到文末看发布会视频回顾哦: 一系列软件更新——iOS 12、ARKit 2发布:防沉浸设计、AR仍是重点; 推出更强大的Apple Watch...例如,可以添加诸如“Siri,我的钥匙丢了”之类的快捷语,以显示Tile应用中的信息。 又比如,可以根据你每天买咖啡的模式自动下单。...iOS 12的另一大改革是,新增App勿扰模式,消息显示更容易被关闭。Siri甚至会建议你关闭不使用应用程序的通知。...这一功能在使用时会实时扫描你的脸部,并且可以在拍照、视频中实时替换你的真实形象。...8、全新的Mac App Store mac App Store是苹果电脑系统的一大短板,时隔多年后,苹果似乎终于想起了这个被遗忘的地方。界面更新,包括从iOS带来的功能,应用程序的视频预览。

    68440

    ARKit和CoreLocation:第一部分

    演示代码 ARKit和CoreLocation:第一部分 ARKit和CoreLocation:第二部分 ARKit和CoreLocation:第三部分 背景 自从我写了一篇新的博客帖子以来,已经有一段时间了...ARKit结合了设备运动跟踪,摄像机场景捕捉,高级场景处理和显示便利性,简化了构建AR体验的任务。 在iOS 11中,Apple已经将ARKit的强大功能释放到了iOS开发社区。...会话是一种封装应用程序活动的定义时段内包含的逻辑和数据的方法。使用URLSession时,这是应用程序发送网络请求并接收数据作为回报时的逻辑和数据。...我们的球体将自动显示为跟踪真实世界的位置,因为ARKit将SceneKit空间与真实世界空间相匹配。如果我们想要使用坐标,我们可能需要找到一些持久的东西来锚定提示我们的节点将来。...向量,矩阵和线性代数,哦不! ? 一个二乘四的矩阵 如果你还记得回到数学课,那么矢量有一个幅度和方向。

    2.3K20

    WWDC 2018进行时|ARKit 2.0众望所归,新格式USDZ意在何为?

    其让大家能在随意捕捉的内容中,添加各种AR效果,以实现用数字标识信息、在现实中增加虚拟物品、用增强现实替代原有场景的效果。...这些个性化的Memoji还可用于拍照、录制视频(Facetime对话也支持),也能添加文字、其他图片表情等元素。...测量应用程序Measure,展示谷歌AR技术 据悉,随ARKit 2.0一同登陆的还有应用程序Measure。顾名思义,这是一款AR测量App,允许用户对现实世界进行一系列的测量。...Measure能一次操作,轻松测量物体的长、宽、高等数据,测量数值会实时显示在物体上方,方便用户浏览。 ?...显而易见,Measure在对象检测、追踪的优化、实时算法、即时反馈和逼真的渲染等方面的要求,提高不少。而大会中演示视频的短小快,或许也正是因为苹果想要展示的不是视频本身,而是其背后的技术。

    1.1K70

    最新iOS设计规范九|10大系统能力(System Capabilities)

    AR字形 应用程序可以在控件中显示AR字形,以启动基于ARKit的体验。 ? 按预期使用AR标志符号。该标志符号应严格用于启动基于ARKit的体验。...“画中画”可以使您在另一个应用程序中工作时观看视频。 ? 设计适应性强的界面,并保证在拆分视图中运行流畅。...大型“天气”小部件还显示相同的数据,包括六个小时的预报,并添加接下来五天的预报。 ? 避免创建仅启动应用程序而不执行任何操作的小部件。人们喜欢小部件是因为它们提供了对有意义内容的即时访问。...这些按钮应用于执行省时的常规任务,从而无需打开应用程序。 避免提供破坏性的行动。在通知详细信息视图中提供破坏性操作之前,请仔细考虑。如果必须提供,请以红色显示,以避免意外的后果。...在iPad上,或者如果您的应用程序没有自己的导航栏,请在包含导航栏的全屏模式视图中打开预览。

    4.3K20

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

    约束 然后,单击Storyboard编辑器左下角的第四个图标,将新约束添加到场景视图中。定义约束以确保您的用户界面适应不同的屏幕尺寸或设备方向。设置为0的顶部,左,右和底部。...现在,打开Assistant编辑器并控制将故事板中的按钮拖到ViewController类。代码中的顺序并不重要,因为我们稍后会移动此函数。原因是我们不能在扩展类中执行此操作。...在我们的情况下,使用[switch]控制流来匹配我们设置的许多条件是完美的。switch语句必须是详尽的,这就是为什么有一个默认情况来涵盖所有其他方案。...现在,如果第一个模型是可见的而不是零,则模型将在视图中可见。...我们实际上没有选择,因为节点具有isHidden的属性,并且不显示一个for。好吧,不是我所知道的。 那么,让我们来看看这两个场景。

    5.5K20
    领券