iOS.& Swift Books 苹果通过教程增强现实

2
快速看 由克里斯语撰写

来自Apple的消息很清楚:增强现实(AR)在这里留下来,它将在iPhone的未来发挥重要作用。自从WWDC 2018的Arkit 2.0和iOS 12发布以来,Apple已经深入了解了所有操作系统的核心。

甚至应用程序中的应用程序,邮件,笔记,新闻,Safari和文件现在也支持AR。

这是谢谢的 快速看 ,这是在移动设备上呈现AR内容的最简单方法。在本章中,您将了解AR快速外观。您将看到将其集成到您自己的应用程序中,以为他们提供一些酷的AR超级大国。

什么是快速看?

你可能已经熟悉了 快速查看 ,这让您在邮件和Safari等应用中快速偷看图像,PDF和电子表格。快速外观是一个框架,为您提供繁重的升降,给您的应用超级大国,让它支持广泛选择的通用文件格式。

这是最好的部分:快速查看现在为此提供支持 USDZ. 现实 通过其文件格式 快速看 feature.

快速外观允许您在本地空间内展示物理产品的虚拟3D模型。该模型在您的环境中出现了接地,让您了解物理产品的外观。

想象一下你想买一个新的沙发。带有此技术的购物应用程序让您查看各种沙发实际上在您的起居室。

通过模仿当地环境中的现实照明条件,AR快速看起来高度的现实主义。它将这种照明与软阴影和基于物理的渲染(PBR)材料相结合,闪耀并反映了当地环境,就像真实的东西一样。

使用AR快速外观就像向您的USDZ或现实内容的路径提供它,并让它做它的魔力。还有很多漂亮的东西,你也可以用它做。

快速外观功能

在面值,快速看起来很简单。然而,当您深入挖掘时,您会注意到它具有少量酷炫功能的桶负载。

这是看内部的内容:

  • :锚点允许您将虚拟内容锚定到各种真实的曲面。随着iOS 13的释放,快速外观支持水平表面,如地板,天花板,桌椅;垂直表面像墙壁;包括照片和海报在内的图像;和面孔和物体喜欢玩具和消费产品。

  • 闭塞 :遮挡允许物理世界基于其相对于现实世界的深度来模糊虚拟内容。快速外观目前为人们和面部提供遮挡。此功能仅适用于某些设备。

  • 物理,力量和碰撞:虚拟内容响应物理定律。由于重力和反弹,物体可以落下并互相碰撞。

  • 触发和行为:用户可以访问AR并与对象进行交互以触发事件,动画和声音。

  • 实时阴影:虚拟内容将逼真的阴影投入到真实的曲面上。阴影的质量取决于设备的功能。低端设备项目阴影,而高端设备使用射线追踪的阴影。

  • 高动态范围,色调映射和颜色校正:AR快速查找实时样本当地环境,并使用结果来控制虚拟内容的亮度,颜色和音调。这使得物体似乎与周围环境自然混合。

  • 相机谷物,运动模糊和景深:后处理摄像机效果将视觉保真度推向下一个级别。快速移动的物体模糊,远处物体出现在焦点上并向清爽的虚拟内容添加谷物效果使其与典型的粒度相机饲料混合。

  • 多抽样和镜面抗锯齿:AR快速查看抗锯齿虚拟内容的边缘,以平滑像素。它还抗锯齿反射以防止闪烁。

  • 物理上基于渲染透明涂层材料:将超现实材料应用于虚拟内容,因此您的物体看起来就像他们的真实生活方面。

  • 环境和空间音频:环境声音为虚拟内容添加另一个级别的真实感。物体基于其物理空间的位置和相对于相机的位置产生空间准确的声音效果。

  • 整合和定制:您可以轻松地将AR快速查阅Web,iOS,MacOS和TVOS应用程序。

  • 苹果工资 :Apple Pay完全集成到快速外观中。用户可以在不留下AR体验的情况下阻止购买您的产品。

如您所见,AR快速外观使您可以灵活地使您的产品在AR中闪耀。但是,在您合作时,在与之合作时会有几个限制。

快速看起来很局限

虽然AR快速外观提供了充足的功能,但重要的是要注意,AR经验基于用户设备的功能缩小一些效果。只有最新和最伟大的高端设备都能够提供全面的体验。

这似乎是显而易见的,但值得一提的是,AR快速外观仅在Apple Ecosystem中可用。您无法在运行Android,Windows或任何其他非Apple操作系统的设备上查看AR快速外观内容。

由于缺乏任何类型的脚本或可编码管道,AR快速看起来也有些有限。更智能的AR经验需要您为他们创建应用程序。

经历AR快速看

Apple提供了一个美妙的3D模型画廊,您可以用来探索AR快速外观。如果您在设备上运行iOS 12或更新,则可以为自己尝试。

在Safari中打开以下链接: //apple.co/2C5362d

这些模型使用USDZ格式,并且由于AR快速外观,Safari现在已经内置了这种格式的支持。

您是否注意到每个模型图像上的微小多维数据集?

这是Apple的签名图标,表示模型在AR中可见。

你还在等什么?选择一个选择并为自己尝试。

AR模式

当您选择模型时,Safari会启动AR快速外观,从URL加载引用的USDZ文件并向您展示。

它直接启动到AR模式,尽快将用户置于AR。

等等,鸭子是什么!那是Launchpad mcquack吗?

一旦AR快速查找检测到所需的表面,它会自动将3D模型放在该表面的顶部。经验是无缝的,与质量虚拟内容有很容易相信你看到真实的东西。

在AR模式下,您可以执行一些事情:

  • 定位 :您可以轻松地将3D模型与点击,保持和拖动手势放置,以便无论何处才能放置型号。快速外观了解水平和垂直表面。因此,如果模型背后有一堵墙,可以简单地将模型拖到墙壁上,并将其粘在墙上。

  • 缩放 :用捏合或排出的手势缩放3D模型更大或更小。通过双击3D模型将比例重置为100%。

  • 旋转 :通过将两个手指放在屏幕上并以圆周移动移动来旋转3D模型。同样,双击手势将重置旋转。

  • 悬浮 :用双手向上拖动手势砍伐重力并浮现3D模型。

  • 快照 :通过快速点击一次,拍摄您的AR体验的酷炫照片。这将为照片保存一个快照。

  • 视频 :您甚至可以通过在短时间内按住相机快门按钮进行AR体验的视频录制。一旦您放手,AR快速外观将自动将视频剪辑保存到照片中。出色的!

  • 分享 :选择右上角的共享按钮,您将获得一个应用程序列表,让您共享当前模型。如何将它送到附近的朋友?

一旦你完成播放,你可以仔细看看 X 左上角的按钮。您将返回网页,您可以在那里探索一些其他酷炫的3D模型。

对象模式

切换到 对象模式 通过选择 目的 在AR模式下标签。在这里,您可以使用相同的基本手势检查3D模型以操纵它,如捏缩小并滑动以旋转。

通过对象模式,您可以在没有周围的现实世界的分心,看到对象的细节。

一旦您完成了查看模型,您就可以继续前进,学习如何为您的网站添加增强现实。

快速寻找网站

截至iOS 12,Safari凭借快速外观,Safari已内置支持预览USDZ和现实文件。在本节中,您将学习如何将USDZ文件支持集成到您自己的网站中。

打开 Starter_Web. 文件夹并双击 index.html. 。这启动了Safari并加载以下网页:

这是一个具有两个USDZ模型的示例网页。当您检查文件夹中的文件时,您将观察三个图像以及三个USDZ文件。

您的下一步是通过将另一个USDZ模型添加到您的AR画廊的过程中。

打开 index.html. 使用纯文本编辑器。

笔记 :要编辑HTML文件,您需要使用纯文本编辑器; TextEdit倾向于呈现文件,而不是让您访问底层的HTML代码。如果您没有纯文本编辑器,则可以使用Xcode编辑文件。

Add the following HTML markup to the bottom of the file, just above the </body> tag:

<a href="pig.usdz" rel=" AR. ">
</a>

This adds a standard <a> tag, which creates references to URLs. Look at the provided attributes:

  • href:这设置为 pig.usdz. 。它指向您引用的USDZ文件,它在同一位置 index.html. .

  • rel:此属性指定当前文档和链接文档之间的关系。在这种情况下,您将与...建立关系 AR. ,表示引用的文档是AR模型。

Now, add the following line of code just before the previously-added </a> tag:

<img src="pig.jpg" width="250" height="250">

到目前为止,对USDZ文件的引用在网页上是不可见的。这行代码将图像添加到引用中,为用户提供用于点击的东西。

最后,开放 .htaccess. 使用文本编辑器并添加以下行:

AddType model/vnd.usdz+zip .usdz

这会添加所需的MIME类型,因此SAFARI知道如何处理USDZ文件类型。

笔记 :要支持现实文件,请使用以下MIME类型:

AddType model/vnd.reality .reality

保存更改和测试。再一次,开放 index.html. in Safari.

而已;您刚刚将另一个USDZ文件添加到您的网页。极好的!

笔记 :您只能在运行iOS 12或更新的实际设备上快速查看AR快速查看。您还需要将您的网页部署到实际的Web服务器,从您的设备浏览到它。设置本地Web服务器落在本书的范围之外。

如果您想知道如何添加 快速观点 支持现有应用程序,您已经到了正确的地方。你将接下来要这样做。

快速查找应用程序

添加AR快速查看应用的第一步是从中打开初学项目 起动机 folder. It’s a basic single-view app with a UITableView 和 a custom cell that shows a small image and a name.

快速构建并运行以测试它。

When you select a row, nothing happens yet. All you’re doing at this point is storing the selected row index in a variable named modelIndex. You’ll use this variable later.

Next, you’ll load the images using an array of strings named modelNames, which links directly to the images stored in assets.xcassets..

通过拖动和放下来将USDZ文件导入项目中 楷模 文件夹,在里面找到 资源 ,进入项目。

确保已检查过 添加到目标 ,然后点击 结束 完成这个过程。

你现在会看到一个新的 楷模 项目内部;您可以在Xcode中预览USDZ文件。

打开 ViewController.swift. 并将以下内容添加到文件的顶部:

import QuickLook

这进口了 快速查看 框架,需要在您的应用程序中实现AR快速外观功能。

Next, add the following protocols to ViewController:

qlpreviewcontrollerdelegate., qlpreviewcontrollerdataSource.

以下是仔细看看这些协议:

  • qlpreviewcontrollerdelegate.:此协议允许预览控制器为快速查找提供缩放动画。它还指定您的应用程序是否打开URL并响应预览的打开和关闭。

  • qlpreviewcontrollerdataSource.: This protocol lets the data source tell the QLPreviewController how many items to include in a preview item navigation list.

Implement the protocols by adding the following below qlpreviewcontrollerdataSource.:

``swift. func numberofpreviewitems(控制器:qlpreviewcontroller) - > Int { return 1 }


When previewing AR content, you’re _always_ going to preview only one object at a time. So when the data source queries the number of preview items, you tell it that there’s only one item available for preview.



Add the following function below the previously-added function:

```swift  
func previewController(
  _ controller: QLPreviewController, 
  previewItemAt index: Int) -> QLPreviewItem {
  let url = Bundle.main.url(
    forResource: modelNames[modelIndex],
    withExtension: " USDZ. ")!
  return url as QLPreviewItem
}

So what’s going on in the code above? When the preview controller requests the resourceURL, you construct the URL for the selected resource name at modelIndex in the modelNames array. You also specify the resource extension as USDZ. . Finally, the code passes the URL back to the controller as a QLPreviewItem.

您现在已实现所有快速外观协议。唯一剩下的事情是预览。

Add the following lines of code to the bottom of tableView(_:didSelectRowAt:):

// 1
let previewController = QLPreviewController()
// 2
previewController.dataSource = self
previewController.delegate = self
// 3
present(previewController, animated: false)

最后,您已准备好向用户展示AR快速查询。使用此代码:

  1. You create an instance of QLPreviewController.
  2. Next, you nominate the ViewController class as dataSourcedelegate for the preview controller.
  3. 最后,您将预览控制器呈现给用户。

就是这样,你已经完成了!您的应用程序现在可以使用AR快速查看。构建并运行以测试它。

笔记 :确保您的设备运行IOS 12或更新,或者您将无法看到它。

你即将见证叔叔斯克罗吉银行一枚硬币!

关键点

完成了,您已达到第一章的末尾。

这是你学到的:

  • Apple深入地集成了IOS,MacOS和TVOS。许多常用的应用程序提供了AR支持的AR支持。

  • 快速外观功能丰富,并提供了盒子的首选增强现实体验。用户本能地知道该怎么做。

  • 快速外观使用USDZ和现实文件。

  • 您可以在Web上使用USDZ和现实内容。上传您的文件并为其创建库存标准参考。由于其内置的支持,Safari智能足以知道它可以快速查看内容。它自动为用户提供令人思想的展示。

  • Need to add AR support to some of your existing apps? AR Quick Look has your back. Simply add your USDZ and Reality files to your existing project along with some sampled images. Then use QLPreviewController to do the heavy lifting for you.

然后去哪儿?

以下是扩展本主题的知识的几个链接:

既然你知道所有人都知道关于AR的快速外观,你可能想知道你是如何创建自己的USDZ和现实文件。好吧,继续下一章找出答案!

有一个技术问题?想报告一个错误吗? 您可以向官方书籍论坛中的书籍作者提出问题和报告错误 这里 .

有反馈分享在线阅读体验吗? 如果您有关于UI,UX,突出显示或我们在线阅读器的其他功能的反馈,您可以将其发送到设计团队,其中表格如下所示:

© 2021 Razeware LLC