ARKit尝试翻译二_First Steps

Understanding Augmented Reality

Overview

任何AR的经验和arkit定义特征的基本要求是能够创建和跟踪对应的真实空间之间的用户在和一个虚拟的空间里你可以模型视觉内容。当你的应用程序显示的内容与现场摄像头图像,用户体验增强现实:幻想,你的虚拟内容是真实世界的一部分

How World Tracking Works

创建一个现实和虚拟空间之间的对应关系,arkit使用的技术称为视觉惯性测距。这个过程结合了从iOS设备的运动传感硬件与设备的摄像头可见的场景的计算机视觉分析的信息。arkit识别显著特征的场景图像,跟踪在视频帧之间的特征差异的位置,该信息与运动传感数据比较。其结果是一个高精度的设备的位置和运动模型。

世界跟踪还分析和理解场景的内容。使用命中测试方法(参见

ARHitTestResult

类)找到对应于相机图像中某个点的真实世界的表面。如果启用

planeDetection

在您的会话配置设置,ARKit检测平面在相机的图像和报告他们的位置和尺寸。您可以使用命中测试结果或检测到的飞机放置或与您的场景中的虚拟内容交互

Best Practices and Limitations

世界跟踪是一门不精确的科学。这个过程往往会产生令人印象深刻的准确性,导致现实的AR经验。然而,它依赖于设备的物理环境的细节并不总是一致的或难以实时测量没有一定程度的错误。要建立高质量的AR体验,请注意这些警告和提示。

设计可预见照明条件的AR经验。世界跟踪涉及图像分析,需要清晰的图像。当相机看不到细节时,跟踪质量降低,例如当相机指向空白的墙壁或场景太暗时。

使用跟踪质量信息提供用户反馈。世界跟踪相关的图像分析与设备的议案。arkit开发更好的了解现场,如果设备是移动的,即使设备只能移动微妙。过大的运动过快、过快或晃动过猛会导致模糊图像或太多的距离用于跟踪视频帧之间的特征,降低跟踪质量。这个

arcamera

类提供跟踪状态原因信息,您可以使用它来开发用户界面,该用户界面告诉用户如何解决低质量的跟踪情况。

允许平面检测的时间产生明确的结果,并禁用平面检测时,你有你需要的结果。平面检测结果随时间变化时,首先检测到的平面,其位置和程度可能是不准确的。当飞机仍在现场,随着时间的推移,arkit提炼其位置和程度的估计。当一个大的平面是在现场,arkit可能继续变平面锚的位置、程度,当你已经用飞机把内容变换。

ARSession

一个arsession物体坐标的主要过程,arkit执行代表您创建一个增强现实体验。这些过程包括读取数据从设备的运动传感硬件,控制设备的内置摄像头,并对捕获的相机图像进行图像分析。该会话综合所有这些结果,以建立真实世界的空间,设备栖息和虚拟空间,你模型AR内容之间的对应关系。

每一个AR体验了arkit需要一个单一的arsession对象。如果你使用

arscnview

arskview

对象容易建立你的AR的视觉体验的一部分,视图对象包括arsession实例。如果你的AR内容建立你自己的渲染器,你就需要实例化并保持arsession对象自己。

运行会话需要会话配置:

arsessionconfiguration

类或其子类

arworldtrackingsessionconfiguration

。这类决定如何arkit跟踪设备的位置和运动的相对真实的世界,从而影响你可以创建AR体验的种类。

Topics

Configuring and Running a Session

-runWithConfiguration:options:

使用指定的配置和选项启动会话的AR处理。

Parameters

configuration:定义会话的运动和场景跟踪行为的对象。

options:如何影响现有会话状态(如果有的话)转换到新配置的选项。

如果会话第一次运行,此参数没有影响。

Discussion:该会话跟踪设备的运动,捕捉和处理场景从设备摄像头图像,并与您的坐标delegateobject orARSCNVieworARSKView仅在运行时查看。

在已开始立即转换到新会话配置的会话上调用此方法。选项参数决定如何将现有会话状态转换到新配置。默认情况下,会话将从上次已知状态恢复设备位置跟踪,并保留添加会话的任何锚点。调用此方法后,会话将异步运行。

ARSessionRunOptions

当更改其配置时,影响如何转换AR会话当前状态的选项

Topics

ARSessionRunOptionResetTracking

该会话不继续从先前配置的设备位置/运动跟踪。

Declaration

ARSessionRunOptionResetTracking= (1 << 0)

Discussion

默认情况下,当您调用runwithconfiguration:选项:方法在已运行或正在运行的会话上,会话将从其最后一个已知状态恢复设备位置跟踪。(例如,一个aranchor对象保持其相对于摄像机的明显位置。

runwithconfiguration:选项:方法具有与会话当前配置相同类型的配置,可以使用此选项强制设备位置跟踪返回初始状态。

当你呼唤runwithconfiguration:选项:方法与会话当前配置的不同类型的配置,会话总是重置跟踪(也就是说,这个选项是隐式启用)

ARSessionRunOptionRemoveExistingAnchors

任何与前一配置中的会话相关的锚点对象将被移除

Declaration

ARSessionRunOptionRemoveExistingAnchors= (1 << 1)

默认情况下,当您调用runwithconfiguration:选项:在已运行或正在运行的会话的方法上,会话将保留任何aranchor以前添加的对象。也就是说,AR场景中的对象保持相对于设备的真实真实位置(除非启用arsessionrunoptionresettracking选项)。

如果更改会话配置应该无效在AR场景明显的物体的真实位置使arsessionrunoptionremoveexistinganchors选项。例如,如果您向AR场景添加了虚拟内容,其位置与真实世界的对象相关,请移除这些锚,以便重新评估适当的真实位置。另一方面,如果在场景中的虚拟内容需要跟踪真实世界的位置,只有当该内容第一次出现,并可以自由移动后,您可以禁用此选项,以保持锚。

configuration

定义会话的运动和场景跟踪行为的对象。

Declaration

@property(nonatomic, copy, readonly)ARSessionConfiguration*configuration;

-pause

会话中的暂停处理

Declaration

- (void)pause;

Discussion

暂停时,该会话不跟踪设备的运动或捕捉场景图像,也不配合其delegate object或更新任何关联arscnview或arskview对象。


Responding to AR Updates

delegate

您提供的对象,用于接收捕获的视频图像和跟踪信息,或响应会话状态的更改。

如果你使用arscnview或arskview类来显示AR体验,不需要会话委派。这些观点自动显示捕获的视频图像和坐标SceneKit或SpriteKit内容跟踪装置和摄像机运动。

如果使用金属或其他渲染技术创建AR可视化,请设置会话委托。您的委托对象定期接收arframe会话捕获的对象。这些对象包含视频帧图像供您显示和AR场景信息,您可以使用坐标显示您渲染的场景元素。

delegateQueue

通过会话调用委托方法的调度队列。

Discussion

如果此值为nil(默认值),则会话将在主队列上调用委托方法。

ARSessionDelegate

方法可以实现从AR会话接收捕获的视频帧图像和跟踪状态。

...

ARSessionObserver

方法可以实现响应于AR会话状态的更改。


Displaying and Interacting with AR Content

currentFrame

视频帧图像,与相关的AR场景信息,最近捕获的会话。

-addAnchor:

添加由会话跟踪的指定锚点。

-removeAnchor:

移除由会话跟踪的指定锚点。


Instance Methods

-runWithConfiguration:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,783评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,360评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,942评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,507评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,324评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,299评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,685评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,358评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,652评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,704评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,465评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,318评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,711评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,991评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,265评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,661评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,864评论 2 335

推荐阅读更多精彩内容

  • ARKit ARKit框架通过集成iOS设备摄像头和运动功能,在您的应用程序或游戏中产生增强现实体验。 概述 增强...
    暗夜夜夜行路阅读 5,768评论 0 17
  • ARkit Introducing ARKit iOS 11引入ARKit,这是 个全新的框架,允许开发者轻松地为...
    坤哥爱卿阅读 1,317评论 0 1
  • Introducing ARKit iOS 11 引入 ARKit,这是 个全新的框架,允许开发者轻松地为 iP...
    没八阿哥的程序阅读 2,391评论 1 9
  • 夜纸有感 天昏至哥家,烧夜纸,众人跪,遂从之。心底想,人在世,长且短,两眼一闭事...
    雪松_d0e3阅读 79评论 0 0
  • 下雨的天空 依然好孤独 熬过无尽的黑夜 是否能见到光明 让我想起 梦里的阳光 洒满了枕边 还是那味道 点亮了身体 ...
    brant_feeboo阅读 216评论 0 0