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

如何使用RealityKit在Swift中获取被跟踪图像的名称?

RealityKit 是苹果公司推出的一个框架,用于构建增强现实(AR)应用程序。它允许开发者使用真实世界的场景和物体来创建沉浸式的 AR 体验。在 RealityKit 中,你可以使用被跟踪的图像来触发 AR 体验中的特定事件或动画。

要在 Swift 中使用 RealityKit 获取被跟踪图像的名称,你需要遵循以下步骤:

  1. 设置 ARSession:首先,你需要配置并启动一个 ARSession,这是与现实世界交互的主要入口点。
  2. 配置 ARImageTrackingConfiguration:创建一个 ARImageTrackingConfiguration 对象,并为其指定一个或多个被跟踪图像的名称。
  3. 处理跟踪结果:实现 ARSessionDelegate 协议的方法来处理图像跟踪的结果。

下面是一个简单的示例代码,展示了如何设置 RealityKit 来跟踪图像并获取其名称:

代码语言:txt
复制
import RealityKit
import ARKit

class ViewController: UIViewController, ARSessionDelegate {
    
    var arView: ARView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 初始化 ARView
        arView = ARView(frame: self.view.frame)
        self.view.addSubview(arView)
        
        // 配置 ARSession
        let configuration = ARImageTrackingConfiguration()
        
        // 指定被跟踪图像的名称
        if let trackedImages = ARReferenceImage.referenceImages(inGroupNamed: "AR Resources", bundle: nil) {
            configuration.trackingImages = trackedImages
            configuration.maximumNumberOfTrackedImages = 1
        }
        
        // 启动 ARSession
        arView.session.delegate = self
        arView.session.run(configuration)
    }
    
    // ARSessionDelegate 方法
    func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) {
        for anchor in anchors {
            if let imageAnchor = anchor as? ARImageAnchor {
                // 获取被跟踪图像的名称
                if let imageName = imageAnchor.referenceImage.name {
                    print("Tracked image name: \(imageName)")
                }
            }
        }
    }
}

在这个示例中,你需要确保有一个名为 "AR Resources" 的资源组,并且其中包含了你想要跟踪的图像。这些图像应该已经通过 Xcode 的 Assets.xcassets 文件添加到项目中,并且每个图像都应该有一个唯一的名称。

参考链接

请注意,这个示例假设你已经熟悉 Swift 编程语言和 ARKit。如果你遇到任何问题,比如图像没有被正确跟踪,可能是因为图像不符合 ARKit 的要求(例如,图像尺寸不够大,或者图像内容不够独特以供跟踪)。确保你的图像清晰,并且大小至少为 1024x1024 像素。此外,确保你的 ARKit 和 RealityKit 版本是最新的,以便利用最新的功能和修复。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • RealityKit与SIMD单指令多数据流

    Swift 5Apple发布了大量基于SIMD改进API,并且新RealityKit,我们操作虚拟物体位置、角度,都需要通过simd库来进行了。...比如 RealityKit Entity--> HasTransform,操作position就需要是SIMD3类型: 所以使用RealityKit,我们必须先熟悉下simd库: import simd...SIMD一次获取所有操作数 这个特点使SIMD特别适合于多媒体应用等数据密集型运算。 简单来说,就是串行运算跟并行运算区别。...最直接感受就是对于图像处理运算速度有了几倍提升,如下图 不过最新消息显示, SIMD.js已经从TC39发展主动脱离出来了,并在第三阶段移除。web浏览器不再追求它实现。...SIMD操作暴露在web上,WebAssembly处于积极开发状态,操作基于SIMD.js操作。 SIMD具体有什么用? 比如计算矩阵, 一次就可运算完。

    1K30

    苹果推出突破性新技术,使开发人员更加轻松快捷地创建应用

    Swift代码自动生成,当修改此代码后,对UI更改会立即显示可视化设计工具。 现在,开发人员可以看到UI组装,测试和优化代码时外观和行为自动实时预览。...预览可以直接在连接苹果设备上运行,包括iPhone,iPad,iPod touch,Apple Watch和Apple TV,允许开发人员查看应用程序如何响应Multi-Touch,或者界面构建过程与摄像头和车载传感器实时工作...ARKit 3还可以使前置摄像头最多可以跟踪三个面部,以及同时支持前后摄像头。它还支持协作会话,从而更快地进入共享AR体验。 RealityKit是为AR技术从头开始构建。...它还具有动画、物理和空间音频功能,开发人员可以使用RealityKit Swift API利用RealityKit功能。...除了针对SwiftUI语言增强功能外,Swift 5.1还增加了模块稳定性,这是Swift构建二进制兼容框架关键基础。

    2.1K20

    【visionOS】从零开始创建第一个visionOS程序

    并学习如何使用RealityKit和现实作曲家Pro与Diorama和Swift Splash构建3D场景。...人们可以使用连接鼠标、触控板或键盘与项目交互、触发菜单命令和执行手势。 构建并运行你app页面链接 模拟器构建并运行你应用,看看它看起来如何。...visionOS使用RealityKit和SwiftUI一起无缝耦合应用程序2D和3D内容。...当你准备界面显示3D内容时,使用RealityView。这个SwiftUI视图作为你RealityKit内容容器,并允许你使用熟悉SwiftUI技术更新内容。...下面的例子展示了一个使用RealityView来显示3D球体视图。视图闭包代码为球体创建一个RealityKit实体,球体表面应用纹理,并将球体添加到视图内容

    93340

    苹果AR新工具RealityComposer开箱体验及操作指南

    体验感受 先说下使用体验感受,最直观感觉就是Xcode越来越强大了,这次更新,像是给Xcode装备了一个3DMax,可以直观地创建3D内容,设置3D内容交互动作,位置,材质等,实时预览,代码中方便地调用...对了,这个功能是为了搭配RealityKit使用RealityKit将在下一篇文章做详细介绍。...STEP02 选择场景 首先选择需要锚定场景真实世界对象,这里有4个选择:水平、垂直、图像、人脸,就是说可以把虚拟物体定位到这4类真实世界对象。...比如我们可以桌子上放各种各样物品,还可以图片上,比如餐厅菜单上放上各种特效,甚至可以人脸上装饰上各种配饰。 ?...然后,修改ViewController.swift代码,如下图所示 ?

    4.3K31

    最新 iOS 框架整体梳理(三)

    学习用MetalPerformanceShaders进行图像处理 官方文档 64、MetricKit 这是一个 iOS 13 中新加入框架,iOS 13 推出了MetricKit,...PencilKit为iOS应用程序提供了一个绘图环境,该环境可以从Apple Pencil或用户手指获取输入,并将其转换为您在iOS或macOS显示高质量图像。...RealityKit总结 官方文档 82、ReplayKit 这是一个录制屏幕框架,但在不同iOS版本确有许多不同表现,这个大家可以看下面分享文章看一下。...其实上面的大致意思就是说iOS我们平常使用像URL等都是建立安全框架基础上,所以我们没必要刻意使用这个安全框架,要视情况而定。...已经废弃了,再用会影响到审核。

    1.7K10

    WWDC19苹果发布会,谁说程序员不能做设计?SwiftUI、AR 3 、ML 3

    Swift加入了新框架SwiftUI,可以直接在Xcode 11调整UI外观,操作体验类似于Playgrounds。...Swift UI支持实时预览应用,预览更改能够实时反映在编码,直接在敲代码时候完成设计。 所见即所得完成UI设计,而且还无缝对接到代码。...02 AR kit3 利用 ARKit 3,新 RealityKit 框架,还有新 Reality Composer app 非凡进步,轻松制作原型,创造先进前沿 AR 体验。...RealityKit 摄影级真实渲染,环境和镜头特效 Xcode和iOS增加AR体验变得更加简单。Xcode强化了易用性,方便用户 XCode 内进行AR开发。此外,支持调用更多 API 接口。...让 AR 内图像渲染更加真实。而且相机效果和环境光影方面更自然。

    1.1K20

    开发人员需要了解 iOS 14 beta 5 更新

    Apple 于 8 月 18 日发布了面向开发者 iOS 14 beta 5 和 iPadOS 14 beta 5。开发者可以 设置 -> 通用 -> 软件更新 安装更新。...用户也可以输入时间,也可以通过滚轮来调整时间,不过滚轮是直接嵌输入框; 调整了 HomeKit 控制中心 “收藏夹” 组织方式及图块大小; 设置 ,添加了禁用应用程序“照片” 隐藏相册功能...应用,首次启动增加了 “What's new” 部分; 宿主应用屏幕时间锁定时,包含小部件也将被锁定; 天气小部件已修复,并以适当时间间隔刷新; 对于开发人员来说,此次更新没有太多新特性,主要有以下几点...这同样可以改进 Swift API 处理; RealityKit 现在在渲染半透明材质时会写入深度信息,以使用可用后期处理效果正确渲染 AR Scene。...这让绘制网格顺序更能影响最终图像; 可以使用 INMediaUserContext, Core Spotlight, 和 Intents 来改善多媒体交互应用; SwiftUI 除了解决了部分问题外,

    99610

    visionOS开发之入门介绍

    学习要求 掌握 Swift。 掌握 SwiftUI。 熟悉 RealityKit。 熟悉 ARKit。 熟悉 Accessibility。 硬件环境:Apple Silicon Mac。...空间计算 Apple Vision Pro 提供了无限空间“画布”,画布中用户可以与 App 进行交互,同时与周围环境保持联系,也可以完全沉浸在 App 营造虚拟空间世界。...这种体验得益于 visionOS 空间计算功能。空间计算加持下,visionOS App 提供了 3 种不同形态:窗口(Windows)、空间容器(Volume)与空间(Space)。...Window 可以 visionOS App 创建一个或多个类似 macOS App 2D 窗口,大小可以调整。...使用时只需要给 WindowGroup 添加修饰符windowStyle,并将值设置为.volumetric即可。

    37310

    一文看完 WWDC 2022 音视频相关更新要点丨音视频工程示例

    3)视觉智能 新播放器可以支持像处理其他文本一样获取视频帧文字: 获取视频画面文字 4)插片广告 新 iOS 播放器开始支持插片广告了,其中 HLS 流协议对插片广告支持在前面 HLS...激光雷达和其他摄像头配合使用可以拍摄景深图像和视频、增强现实等场景实现更强大功能。...其中 RoomCaptureView API 使用 RealityKit 实时呈现扫描进度,可以轻松地将扫描体验集成到应用程序。...如果使用 RealityKit,则会自动对图像进行进一步处理以用作背景:缩放以匹配 2532 像素屏幕宽度,并裁剪以匹配显示纵横比。...展示了如何使用 Object Capture 框架捕获物体,将它们添加到 Xcode RealityKit 项目,应用程式化着色器和动画,并将它们用作 AR 体验一部分。

    2.6K10

    如何使用 SwiftUI 构建 visionOS 应用

    苹果表示,构建应用程序最佳方式是使用 Swift 和 SwiftUI。下面,我们将学习如何使用 SwiftUI 构建 visionOS 应用程序。...Windows我喜欢 SwiftUI 一点是它如何自动适应平台。你无需执行任何操作即可在 visionOS 上运行使用 SwiftUI 编写应用程序。它可以即插即用。...如下图:Volumes你应用程序可以 visionOS 上同一场景并排显示 2D 和 3D 内容。在这种情况下,我们可以使用 RealityKit 框架来呈现 3D 内容。...例如,RealityKit 为我们提供了 Model3D SwiftUI 视图,允许我们从 USDZ 或实际文件显示 3D 模型。...体积样式允许你内容第三维增长,以匹配模型大小。对于更复杂 3D 场景,我们可以使用 RealityView 并填充它以 3D 内容。

    18421

    写给开发者 Vision Pro 评测:易上手,但 UI 设计不够“革命”

    就让我们从 WWDC 大会上《上手构建空间计算应用》主题研讨寻找答案:https://developer.apple.com/videos/play/wwdc2023/10260 苹果 RealityKit...Jones 承认,大多数开发者都会对此感到满意,但他也一针见血地指出“苹果之前已经严格限制我们 iOS 上能做哪些操作,现在更是加倍施以约束、阻止人们偏离其预设使用模式。”...3D 内容构建框架则是 ARKit 和 RealityKit,它们负责处理跟踪、渲染、物理、动画、空间音频等元素。... WWDC 23 开幕主题演讲,主讲人表示“基于 Unity 引擎主流游戏和应用程序,可以完全访问 VisionOS 各项功能,包括透传、高分辨率渲染和原生手势。”...Tilander 继续解释道,“引导完成后,大家会在 SwiftUI 中看到初始应用,其中包含您所熟悉按钮,还有由 RealityKit 渲染 3D 对象。”

    35120

    干货 | 一波N折携程酒店Swift-Objc混编实践

    为了方便这个操作,我们使用脚本每次编译完成后就把最新Swift头文件自动copy到Swift模块所在源文件目录,完整脚本如下: mkdir -p${include_dir} cp${generated_header_file...随着项目进行需要,我们要把Swift静态库一拆为二,彼此之间单向依赖,于是我们问题就变成了Swift静态库如何互相之间调用问题。...不过好在苹果官网早就提供了解决方案,《ImportingObjective-C into Swift》一文中分别提供了Objc文件是同一app target内引用还是作为Framework使用两套解决方案...同一app target内引用时较为简单,只需创建一个以“-Bridging-Header.h”为后缀名文件即可,并把需要暴露给Swiftobjc 头文件在这里进行编辑就可以了,具体如何创建这个文件本文就不做赘述了...如果一个库(library)想要作为module使用,那就必须要有一个对应“module.modulemap”文件,在这个文件声明要引用头文件,并和那些头文件放在一起,一个C标准库 module

    1.4K31

    图像检测-如何通过扫描图像来制造幻觉

    本课程,您将学习如何通过检测您喜欢任何图像以及如何在呈现模型时更改模型材质,将您自己3D模型放置在任何对象之上。...let configuration = ARImageTrackingConfiguration() 图像跟踪 我们需要为文件夹名称参考图像声明一个变量:AR文件夹主要文件夹。...dl=0 跟踪图像 现在我们有参考图像变量并将我们图像放在文件夹,让我们跟踪图像。我们告诉配置跟踪参考图像,这是AR Resources文件夹。...SKS 平面场景 让我们平面下面声明我们新SpriteKit场景并给它起名称:deviceScene。...您刚学会了如何通过检测图像将3D模型放置环境本课程其余部分,我将教你如何制作动画,以及与按钮互动。最重要是,您将玩光照和阴影。

    2.4K20

    AR技术相对成熟,接下来是内容AR

    但AR却在沉寂多年后,重新业界看好。...国外一位叫Casciello女生,通过snapchat创作AR滤镜,赚4000美元,其滤镜总浏览量达170亿次,Lens Studio粉丝数量已经超过21.4万人。...据了解,日活2.18亿Snapchat用户,平均每天有超过75%用户使用该工具制作了超过735,000多个滤镜,其中顶级滤镜可实现数十亿次观看。...它可以读取PSD档,当用户将文件导入该应用,就可看见3D空间中查看相关图层堆叠。...一些 Android 和 iOS 上同时提供 API 支持共享 AR 体验。 从本质上讲,ARCore 在做两件事:移动设备移动时跟踪位置和构建自己对现实世界理解。

    1.7K20

    Swift 周报 第三十五期

    在这个流程,你需要选择一个或多个能够准确反映你 App 如何使用相应 API 批准原因,并且你 App 只能出于你选择原因使用相应 API。...此外,似乎 Swift 标准库没有办法执行 "兼容" 比较 - 必须导入 Foundation 才能获取字符串重叠部分,以便访问前面提到 NSString 方法。...跟踪可以由单个服务记录跨度组成,也可以跨多个服务传播。Swift 分布式跟踪使用基于任务本地 Swift Service Context[9] 来实现透明传播,无需手动传递上下文。...他们选择适合自己需求跟踪后端,使用具有内置 Swift 分布式跟踪支持库,并在自己代码中进行手动仪器化。...库和框架作者 诸如 HTTP 服务器/客户端、数据库库等库/框架最了解如何仪器化其库内部。他们使用 Swift 分布式跟踪 API 实现通用跟踪支持,而无需考虑特定跟踪后端。

    22730

    Swift Hook 新思路 -- 虚函数表

    因此只要我们能获取到 OverrideTable 也就意味着能获取重写函数指针 IMP0 以及重写后函数指针 IMP1。...Swift 函数调用 ---- 首先我们需要了解 Swift 函数如何调用。...当然,实际上也会有例外,有时编译器会直接使用缓存 cache Metadata 地址,而不再通过 AccessFunction 来获取 Metadata。 9....如果 Method 记录用于 Hook 函数地址,OverrideMethod 作为Hook函数,那是不是就意味着无论如何改变虚函数表顺序及数量,只要 Swift 还是通过跳表方式进行函数调用...比如,Swift 调用并不会存储到 classref ,那如何通过静态扫描知道哪些 Swift 类或 Struct 调用了?其实解决方案也是隐含在本文中。

    1.7K31

    三人团队,七天“不眠不休”,我们赶在 Vision Pro 发布那一刻做出了一款头显应用

    因此,我将所有 VOX 解析和网格构建代码从 C# 代码库移植到了 SwiftRealityKit 上,而 Nick 和 Jason 则负责应用空间 UI。...因此,我们无法“智能地”对悬停状态或按需点击做出反应:任何可悬停或可点击内容都需要作为一个 RealityKit 实体存在于场景。...然而,我们也注意到了一些意想不到好事情: 头显图像锐利清晰,没有任何模糊情况,而且分辨率非常高,即使我们戴着头显也可以使用手机。 滚动操作太太太有意思了。为什么滚动如此有趣?...因此,我使用 ARKit API 实现了手部跟踪,这需要我学习一些手部解剖学知识来理解开发文档,例如,当某些东西返回“从掌指关节到近端指间指关节”向量就需要这种知识来搞清楚是什么意思。...提交应用前最后准备 拍摄宣传视频和为应用商店制作截图并不容易,因为它需要一个特殊过程,就是从头显获取高分辨率图像。Jason 花了几个小时来研究这个操作。

    13010

    架构之路 (五) —— VIPER架构模式(一)

    开始 首先看下主要内容: 本教程,您将了解如何在SwiftUI和Combine中使用VIPER体系结构模式,同时构建一个允许用户创建公路旅行iOS应用程序,来自翻译。...本教程,您将使用VIPER体系结构模式构建一个应用程序。这款应用也方便地称为VIPER。 它将允许用户通过向一条路线添加路径点来构建公路旅行。...它包含在starter,因此您可以本教程结束时完成应用程序。 这个示例使用是Pixabay,这是一个获得许可照片共享站点。要将图像拉入应用程序,您需要创建一个免费帐户并获得一个API密钥。...通过init(interactor:)末尾添加以下内容,将它们连接起来以跟踪数据更改: interactor....最后一个方法调用router来获取waypoint一个waypoint视图,并将其放到一个NavigationLink

    17.5K10
    领券