ARKit中文文档

IOS ARKit开发文档 ARKit 引言:在今天早上凌晨举行的WWDC2017大会上,ARKit无疑是一个亮点。苹果在自家的开发组件中加入ARKit,降低了增强现实的开发难度,效果却提高了很多,并且结合自家的硬件,使最终产生非常棒的视觉效果。这也加快了AR技术在各行业的技术落地,使AR技术在实际生产工作中有了更深的切入。 这里会翻译ARKit的技术文档,并且尽快写出Demo. Integrate iOS device 阅读详情

作者:
声明:转发本文,请联系作者授权

ARAnchor.h

ARAnchor : NSObject <NSCopying, NSSecureCoding> API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

表示3D空间中物理位置和方向的对象

  • 属 性
属性 属性 备注 SDK版本
NSUUID *identifier 锚的唯一标识符 iOS11.4
matrix_float4x4 transform 转换矩阵,用于定义锚点在世界坐标中的旋转,平移和缩放 iOS11.4

* 方 法

方法 说明 备注 SDK版本
- (instancetype)initWithTransform:(matrix_float4x4)transform 初始化一个新的锚点对象 iOS11.4
- (instancetype)init NS_UNAVAILABLE iOS11.4
+ (instancetype)new NS_UNAVAILABLE iOS11.4

* ARTrackable协 议

正在跟踪的场景中的真实世界对象或位置

  • 属 性

属性 属性 备注 SDK版本
BOOL isTracked 跟踪锚的状态 isTracked值用于确定锚变换的有效性。当不再检测到被跟踪的对象时相机图像,其锚点将返回NO为isTracked iOS11.4

ARCamera.h

ARAnchor : NSObject <NSCopying, NSSecureCoding> API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

  • ARTrackingState API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

描述摄像机跟踪状态的值

  • 属 性
属性 说明 备注 SDK版本
ARTrackingStateNotAvailable 跟踪不可用 iOS11.4
ARTrackingStateLimited 跟踪是有限的。请参阅跟踪原因了解详情 iOS11.4
ARTrackingStateNormal 跟踪是正常的 iOS11.4

* ARTrackingStateReason

描述相机跟踪状态受限的原因

  • 属 性
属性 说明 备注 SDK版本
ARTrackingStateReasonNone 跟踪不受限制 iOS11.4
ARTrackingStateReasonInitializing 由于正在进行初始化,跟踪受到限制 iOS11.4
ARTrackingStateReasonExcessiveMotion 由于相机的过度运动,跟踪受到限制 iOS11.4
ARTrackingStateReasonInsufficientFeatures 由于缺少相机可见的功能,因此跟踪受到限制 iOS11.4
ARTrackingStateReasonRelocalizing 由于进行重新定位,跟踪受到限制 iOS11.4

ARCamera : NSObject <NSCopying> API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

表示相机及其参数的模型

  • 属 性
属性 说明 备注 SDK版本
matrix_float4x4 transform 转换矩阵,用于定义摄像机在世界坐标中的旋转和平移 iOS11.4
vector_float3 eulerAngles 相机的方向定义为欧拉角 此向量中的组件顺序与旋转轴匹配:1.间距(x分量)是绕节点x轴的旋转(以弧度表示)2.偏航(y分量)是绕节点y轴的旋转(以弧度表示)3.滚动(z分量)是绕节点的z轴旋转(以弧度表示)ARKit以与组件相反的顺序应用这些旋转:1.roll 2.yaw 3.pitch iOS11.4
ARTrackingState trackingState 相机的跟踪状态 iOS11.4
ARTrackingStateReason 摄像机当前跟踪状态的原因 iOS11.4
matrix_float3x3 intrinsics 相机内在的 矩阵具有以下内容:fx 0 px0 fy py 0 0 1 fx和fy是以像素为单位的焦距。px和py是主要点的坐标,以像素为单位。原点位于左上角像素的中心。 iOS11.4
CGSize imageResolution 相机图像分辨率,以像素为单位 iOS11.4
matrix_float4x4 projectionMatrix 相机的投影矩阵 投影矩阵假设没有远剪裁平面限制 iOS11.4
- (CGPoint)projectPoint:(vector_float3)point orientation:(UIInterfaceOrientation)orientation viewportSize:(CGSize)viewportSize 将世界坐标系中的3D点投影到2D视口空间 iOS11.4
- (matrix_float4x4)projectionMatrixForOrientation:(UIInterfaceOrientation)orientation viewportSize:(CGSize)viewportSize zNear:(CGFloat)zNear zFar:(CGFloat)zFar 在给定渲染参数的情况下为相机创建投影矩阵 iOS11.4
- (matrix_float4x4)viewMatrixForOrientation:(UIInterfaceOrientation)orientation 给定界面方向,为摄像机创建视图矩阵 视图矩阵可用于将几何图形转换为给定方向的相机空间 iOS11.4

* 方 法

方法 说明 备注 SDK版本
- (instancetype)init iOS11.4
+ (instancetype)new iOS11.4

ARConfiguration.h

  • ARWorldAlignment API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

枚举常量用于指示世界对齐

  • 枚 举
常量 说明 备注 SDK版本
ARWorldAlignmentGravity 将世界与由矢量(0,-1,0)定义的重力对齐 iOS11.4
ARWorldAlignmentGravityAndHeading 将世界与由向量(0,-1,0)定义的重力对齐和向量(w.r.t. True North)由向量(0,0,-1)给出 iOS11.4
ARWorldAlignmentCamera 将世界与相机的方向对齐 iOS11.4

ARPlaneDetection API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

指示要检测的平面类型

  • 枚 举
常量 说明 备注 SDK版本
ARPlaneDetectionNone 没有运行平面检测 iOS11.4
ARPlaneDetectionHorizontal 平面检测确定场景中的水平平面 iOS11.4
ARPlaneDetectionVertical 平面检测确定场景中的垂直平面 iOS11.4

ARConfiguration : NSObject API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

  • 属 性
属性 说明 备注 SDK版本
BOOL isSupported 确定此设备是否支持ARConfiguration iOS11.4
NSArray<ARVideoFormat *> *supportedVideoFormats 此配置和设备支持的视频格式列表 列表中的第一个元素是会话输出的默认格式API_AVAILABLE(ios(11.3)) iOS11.4
ARVideoFormat *videoFormat 会话输出的视频格式 API_AVAILABLE(ios(11.3)) iOS11.4
ARWorldAlignment worldAlignment 确定坐标系应如何与世界对齐 默认为ARWorldAlignmentGravity iOS11.4
BOOL lightEstimationEnabled 启用或禁用光估计 默认情况下启用 iOS11.4
BOOL providesAudioData 确定是否捕获和提供音频数据 默认情况下禁用 iOS11.4

* 方 法

方法 说明 备注 SDK版本
- (instancetype)init iOS11.4
+ (instancetype)new iOS11.4

ARWorldTrackingConfiguration : ARConfiguration API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

  • 属 性
属性 说明 备注 SDK版本
BOOL autoFocusEnabled 启用或禁用连续自动对焦 默认情况下启用 iOS11.4
ARPlaneDetection planeDetection 要在场景中检测的平面类型 如果设置,将继续检测新平面并随时更新。检测到的飞机将被添加到会话中。 如果设置,将继续检测新平面并随时更新。检测到的飞机将被添加到会话中。ARPlaneAnchor对象。如果合并了两个平面,则将删除较新的平面。默认为ARPlaneDetectionNone
NSSet<ARReferenceImage *> *detectionImages 要在场景中检测的图 如果设置会话将尝试检测指定的图像。检测到图像时,会将ARImageAnchor添加到会话中 iOS11.3

* 方 法

方法 说明 备注 SDK版本
- (instancetype)init iOS11.4
+ (instancetype)new NS_SWIFT_UNAVAILABLE(“Use init() instead”) iOS11.4

AROrientationTrackingConfiguration : ARConfiguration API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)

用于运行方向跟踪的配置

  • 属 性
属性 说明 备注 SDK版本
BOOL autoFocusEnabled 启用或禁用连续自动对焦 默认情况下启用 iOS11.4

* 方 法

方法 说明 备注 SDK版本
- (instancetype)init API_AVAILABLE(ios(11.3)) iOS11.4
+ (instancetype)new iOS11.4
3D数字人arkit面部捕捉简化版流程 3D数字人arkit面部捕捉 阅读详情

相关推荐

Unity-ARKit入门

ARKit简介 ARKit是苹果在 2017 WWDC 发布的一款全新的增强现实框架技术产品. ARKit 可以将 iOS 设备的摄像头和设备动作检测 (Motion) 功能,集成到您的应用或者游戏当中,从而为用户提供增强现实体验。ARKit原框架是苹果系统自带的ARKit框架,这里主要介绍ARKit插件集成到unity的功能和表现,这样可以在Unity项目中使用ARKit SDK的所有功能。...

萝卜头敲代码 7228

AR开发实战:ARKit与ARCore对比

综上所述,ARKit 和 ARCore 各有优劣。在选择开发平台时,开发者需要根据项目需求、设备兼容性、开发体验等因素进行权衡。ARKit 在硬件兼容性、识别精度、平面检测等方面具有优势,适用于对性能要求较高的项目。ARCore 在物体跟踪、开发体验等方面具有一定的优势,适用于对性能要求较低的项目。两大平台均在不断更新迭代,未来有望在更多方面实现突破。提高识别精度和速度,以满足更高性能的需求。优化开发工具和生态系统,提高开发体验。探索更多应用场景,拓展 AR 技术的应用范围。

2501_92486623的博客 841

深入浅出 ARKit - Basic Concept

什么是现实增强(Augmented Reality)现实增强是在真实世界中加入计算机所构建的虚拟物体, 通过对真实世界所采集的信息的分析, 虚拟物体可以跟真实世界中的物体互动, 比如遮挡, 碰撞等, 让使用者产生错觉, 如同虚拟物体真实存在于世界. 此技术涉及很多复杂技术, 包括3D建模, 真实感图形绘制, 视频与图像分析等. 其实现实增强技术在电影拍摄中早有应用, 空中大掼篮里动

闲敲棋子落灯花 760

AR应用开发:ARKit与ARCore对比

ARKit与ARCore在技术特点、开发体验、性能表现和应用场景等方面各有优劣。苹果开发者倾向于选择ARKit,因为它具有硬件优势、简洁的API和丰富的资源。而Android开发者则更倾向于ARCore,因为它支持跨平台开发,拥有较为活跃的社区。未来,随着AR技术的不断发展,ARKit与ARCore将继续优化,为开发者提供更便捷、高效的开发工具。在选择AR开发工具时,开发者应根据自己的需求、硬件条件和平台特点进行权衡。

matt78916的博客 541

UE5 Metahuman与Blender手动绑定:ARKit面部动画实战对比

面部动画是角色动画领域的核心技术,其核心原理在于通过驱动面部骨骼或混合形状来模拟真实肌肉运动,从而赋予数字角色生命力。这项技术的价值在于极大地提升了虚拟角色的表现力与沉浸感,广泛应用于游戏开发、影视制作、虚拟现实和实时交互应用。在技术实现路径上,开发者常面临工业化集成方案与高度自定义方案的选择。本文聚焦于使用行业标准的ARKit 52个面部混合形状数据,深度对比了虚幻引擎Metahuman的工业化流程与Blender手动绑定方案在视觉保真度、工作流效率、性能开销和扩展性上的差异,为不同项目规模与技术需求的团

weixin_33901926的博客 449

Vuforia Engine 11 Unity 2022 LTS 集成:3步配置 ARCore/ARKit 原生融合

本文详细介绍了Vuforia Engine 11与Unity 2022 LTS的深度集成,提供3步配置ARCore/ARKit原生融合的实战指南。从环境准备、许可证配置到高级功能集成,帮助开发者快速实现跨平台AR开发,优化性能与用户体验。

weixin_30414305的博客 483

Unity的移动端AR生态系统:AR Foundation,ARCore和ARKit

本文转自Unity Connect官方文章 随着AR技术发展以广泛运用,Unity开发了一个多平台API和一些实用工具,我们把这些工具称为:AR Foundation。它支持ARCore、ARKit以及未来新平台的的核心功能。 我们将通过本文分享Unity的移动端AR生态系统中AR Foundation,ARCore和ARKit的功能与区别,它们的发展计划。 本文也将提供一些实用资源,帮助你更好地...

优快云_ONION的博客 1893

ARKit与RealityKit实战:从零构建可交互AR游戏场景

增强现实(AR)技术通过计算机视觉与传感器融合,将虚拟内容叠加到真实世界,实现虚实融合的交互体验。其核心原理在于实时环境感知、三维空间注册与虚实遮挡渲染,技术价值在于打破屏幕界限,创造沉浸式数字交互新范式。在游戏开发、教育培训、工业设计等场景中,AR能提供直观的空间交互方案。本文聚焦iOS AR游戏开发,深入解析ARKit的平面检测与RealityKit的实体组件系统(ECS),通过实战演示如何实现3D模型的点击放置与交互逻辑,涵盖碰撞检测、手势识别与性能优化等关键环节,帮助开发者快速构建稳定的AR游戏原型

weixin_28721917的博客 352

别再为UE5数字人表情僵硬发愁了!LiveLinkFace + ARKit 52个表情的保姆级绑定与调试心得

本文详细解析了UE5数字人表情优化的全流程,从ARKit的52个标准表情系统到LiveLinkFace的高级映射与调试技巧。通过科学的BlendShape雕刻规范、动画曲线编辑和性能优化策略,帮助开发者解决表情僵硬问题,提升数字人的自然度与表现力。

weixin_33676492的博客 882

Unity ARKit开发实战:从环境搭建到家具放置应用全流程

增强现实(AR)技术通过将虚拟信息叠加到真实世界,为用户创造沉浸式交互体验。其核心原理在于利用设备摄像头、传感器和计算机视觉算法,实时感知环境并实现虚实融合。在移动开发领域,AR技术为游戏、电商、教育等应用场景带来了创新价值。Unity作为跨平台游戏引擎,通过AR Foundation框架和Apple ARKit XR Plug-in,为开发者提供了便捷的ARKit集成方案。本文聚焦于Unity ARKit开发,详细解析环境配置、核心功能模块,并通过一个家具放置应用实战,演示平面检测、射线交互等关键技术的实

weixin_28077113的博客 361

ARKit 52个BlendShape面部表情捕捉全解析:从原理到实战应用

面部动作捕捉(Facial Motion Capture)是计算机视觉和增强现实(AR)领域的关键技术,其核心原理在于通过摄像头捕捉面部肌肉运动,并将其解算为一系列标准化的动作单元。ARKit作为苹果的AR开发框架,基于原深感摄像头系统,提供了一套包含52个BlendShape(混合形状)的标准化面部表情捕捉方案。这套方案遵循面部动作编码系统(FACS)的设计哲学,通过实时分析1220个顶点的3D面部网格,将复杂的表情分解为独立的、系数在0到1之间变化的动作信号。其技术价值在于为开发者提供了高精度、低延迟的

weixin_32288959的博客 348

ARCore与ARKit:移动AR应用开发对比

ARCore与ARKit:移动AR应用开发对比 第一部分:移动AR技术基础 第1章:移动AR技术概述 1.1 移动AR的背景和发展 移动AR(增强现实)

AI天才研究院 1866

ARKit:ARKit入门与环境搭建_2024-07-25_15-58-10.Tex

Xcode是苹果公司为iOS、iPadOS、macOS、watchOS和tvOS开发提供的集成开发环境(IDE)。要开始使用ARKit开发增强现实应用,首先需要在你的Mac上安装最新版本的Xcode。创建ARKit项目是开始开发AR应用的第一步。Xcode提供了ARKit模板,可以快速搭建一个基本的AR环境。X轴:水平方向,向右为正。Y轴:垂直方向,向上为正。Z轴:深度方向,向前(远离摄像头)为正。通过理解和应用环境光照、材质和纹理,你可以创建出更加逼真和沉浸的 AR 场景。

1278

在本教程中,我们将探讨如何将ARKit图像识别与SwiftUI集成。这将使我们能够在SwiftUI应用程序中使用ARKit功能,以便识别和跟踪现实世界中的图像。

在项目导航器中,右键单击项目文件夹并选择"New Group"。在项目导航器中,右键单击文件夹并选择"New File"。选择"SwiftUI View"模板,并命名为"ARView"。这将使我们能够在SwiftUI应用程序中使用ARKit功能,以便识别和跟踪现实世界中的图像。在Xcode中,打开左侧的项目导航器,然后选择项目文件。运行您的应用程序,并将相应的图像放在设备摄像头前,您将看到识别到的图像上显示一个红色透明平面。选择"App"模板,并在下一个界面上选择"SwiftUI"作为用户界面。

BitNetO的博客 256

期货套利策略(二)

接上一篇期货套利策略,随着对期货套利策略的深入了解,我发现套利策略不是那么好做的。下面将会讲碰到的一些问题。 上一篇文章中没有考虑滑点的问题,这里我们把滑点问题考虑进去。这里先说一些天勤api的买入点,天琴的买入点是当前K线的收盘价。碰到数据传输问题,还有计算等各方面问题,实际情况是无法在当前K线的收盘价买入的。这里我们把这方面问题考虑进去,利用api.wait_update()调到下一个k线数据...

qq_31611005的博客 1712

【无标题】STM32F767串口空闲中断+DMA实现不定帧长度的接收

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、配置串口与DMA二、空闲中断服务函数二.串口+DMA发送三、主函数总结 前言 提示:这里可以添加本文要记录的大概内容: 使用STM32F767实现串口空闲中断+DMA传输接收不定帧长度数据,以及当中可能遇到的错误总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、配置串口与DMA //硬件模块配置可直接通过CUBEMX配置 void MX_USART1_UART_Init(void) { huart1.In.

qq_42589531的博客 1167

二阶FLL辅助三阶PLL环路的代码解读

今天对GNSS接收机里面的载波跟踪环路代码进行了解读 以下是个人的一点见解 % 载波环第二步:环路滤波器 二阶FLL辅助三阶PLL环路 carrLoopS0 = lastCarrLoopS0 + (phaseErr*tau0PLL + freqErr*tau1FLL) * PDIcarr; carrLoopS1 = lastCarrLoopS1 + (tau1PLL*phaseErr + carrLoopS0 + tau2FLL*freqErr) * PD

LWN7321的博客 2629

LangFlow开源神器:拖拽构建AI Agent与MCP协议集成实战

LangFlow 15万星开源神器:拖拽搭建 AI Agent,一键部署 API / MCP / JSON 在AI应用开发领域,传统编码方式往往需要处理复杂的API调用、数据处理和流程编排,这让很多开发者望而却步。LangFlow作为GitHub上获得15万星的开源项目,通过可视化拖拽的方式彻底改变了AI Agent的开发体验。本文将完整介绍如何使用LangFlow快速构建功能强大的AI Agent,并实现API、MCP协议和JSON配置的一键部署。 1. LangFlow与AI Agent核心概念解析 1

weixin_33717117的博客 935

华为OD机试_2025 B卷_模拟消息队列(Python,100分)(附详细解题思路)

时间排序:确保事件处理顺序正确消费者管理:集合操作高效维护状态优先级实现:利用消费者ID自然排序边界处理:正确处理空消费者情况。

测试工程师的成长之路 1117

【SerDes】美信GMSL2-CSI调试心得

美信GMSL2加解串器芯片家族广泛应用于车载和工业视觉系统。文章介绍了MAX96717/MAX96717F加串器和MAX96724/MAX96724R解串器的关键特性,包括支持MIPI CSI-2接口、6Gbps传输速率等功能。提供了基于高通平台的demo系统配置和调试步骤,重点阐述了Link Lock、PCLK检测和Video Lock等关键调试环节,并详细说明了像素模式,隧道模式的工作原理及寄存器配置示例。文中还包含通过I2C读写寄存器的具体操作指令,取流freeze可能原因和解决方法。

qq_38089448的博客 2488

PostgreSQL 实战:行级安全策略(RLS)详解

PostgreSQL的行级安全(RLS)机制实现了细粒度的数据访问控制,通过动态过滤行数据满足多租户隔离、隐私保护等需求。本文系统介绍了RLS的核心原理、配置方法及实践建议:1) 启用RLS后需定义策略,通过USING和WITH CHECK条件控制访问;2) 适用于SaaS、医疗金融等场景,但需注意COPY命令、外键等特殊情况;3) 建议配合会话变量、索引优化和文档化策略使用。文章还提供了多租户隔离等实战案例,并分析了RLS对查询性能的影响及优化方案。RLS将安全控制下沉至数据库层,显著提升应用安全性和可维

数据知道的博客 3152

Unity 横版游戏开发天花板?状态机、联机同步与横版动作游戏架构全都有

在 Unity 横版动作游戏开发领域,最耗时间的往往不是角色移动,而是整套“可扩展架构”的搭建。包括角色状态管理、敌人 AI、武器系统、关卡编辑器、联机同步、输入适配、UI 与存档系统等。2D Action Platformer Kit 的核心价值,并不只是“提供素材”,而是它已经帮开发者搭好了一整套适用于横版动作游戏的底层框架。

2403_88403568的博客 424

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: SceneKit中文文档
下一篇: Swift中的内存泄漏
Philm_iOS
博客等级 码龄8年 74粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值