查看原文
其他

关于 VisionOS:开发者需要知道的 17 件事

为开发者服务的 21CTO 2023-10-23
导读:Apple 在刚刚举行的WWDC会上,发布了一款新的混合现实头显和支持它的操作系统。以下是开发者需要了解的有关针对 VisionOS 进行开发的关键要点。

Apple 的新款Vision Pro 是 Apple 生态系统中的一款全新设备,被人们称为基于混合现实的新型「空间计算机」。

这家公司花了 2 小时多,在WWDC 2023 主题演讲中讲解有关该设备本身的详细信息,但苹果还保留了开发者的相关详细信息,以供后面的联盟相关会议使用。

苹果开放了演示文稿,并在其中列出了开发者需要了解的有关针对Vision Pro 所运行的 VisionOS 操作系统的关键开发点。

新操作系统的发布对 Apple 和开发者来说都是一个重要时刻。随着 Apple 发布这款新机器,我们几乎肯定会看到大量开发人员开发应用程序,尝试利用新平台,希望成为下一个热门应用爆款。

让我们先了解一下VisionOS的开发背景。

VisionOS 是专为 Apple 所谓的“空间计算”而设计的第一款操作系统。该公司将这种计算模式与我们最熟悉的两种计算模式(桌面与移动计算)区分开来。空间计算的理念是你的工作环境将漂浮在你的面前。

“共享空间”是应用程序并排浮动的地方。将其视为多个并排的窗口,但它们不是在桌面上,而是在半空中。


共享空间的真实演示


用户可以打开一个或多个在空间中作为平面存在的窗口。它们支持传统的视图和控件,但也支持 3D 内容,这些内容可以存在于具有 2D 内容的窗口中。

例如,在 CAD 程序中,对象可能是 3D,但工具栏可能是 2D的。

David Gewirtz演示的3D(三维)共享空间


除了 Windows,应用程序还可以创建三维空间,这些可以包含对象和场景。关键区别在于体积可以在 3D 空间中四处移动,并且可以从各个角度查看。这是查看商店橱窗展示与绕着汽车走动并通过前窗、后窗和侧窗窥视之间的区别。

对于想要做完全沉浸应用的开发者,可以创建一个专用的完整空间。这就像游戏一样占据整个屏幕,在 VisionOS 体验中,该屏幕是完全沉浸式的,应用程序、窗口在完全沉浸式的环境中运行。

来看看开发者在为 VisionOS 进行开发时需要了解的17件事。

1. 用于 VisionOS 的开发工具和库

这对于许多 Apple 开发人员来说会有一种熟悉感。 VisionOS 开发基于 Swift UI、RealityKit 和 ARKit,它们是已经存在一段时间的现有 API。Apple 为 VisionOS 扩展了这些框架,增加了对新硬件和全空间范例的支持。

visionOS 的3D界面使应用程序摆脱了传统显示器的边界限制,使它们可以以不同的比例并排出现。用户界面能够动态响应自然光线,投射阴影以帮助传达规模和距离感。


2. VisionOS 是 iOS 和 iPad OS 开发的延伸 

开发者将使用 SwiftUI 和 UIKit 构建用户界面。RealityKit 用于显示 3D 内容、动画和视觉效果;ARKit 为应用程序提供了对用户周围真实世界空间的解析,并使该分析数据可用于应用程序内的编码。

3. 所有应用程序都需要存在于 3D 空间中

即使是从 iOS 或 iPad OS 移植过来的基础 2D 应用程序也会漂浮在「太空」中。无论该空间是用户使用 Vision Pro 环境的房间视图,还是一些将现实世界挡在外面的模拟环境,即便是传统应用程序也会「漂浮」在 3D 空间中。

4. VisionOS 增加了一个新的应用程序的场所

以前,Xcode 开发人员可以选择 iPhone、iPad 和 Mac 作为目的地(即应用程序运行的位置)。现在,开发人员可以将 VisionOS 添加为新目标。重建应用程序后,新目标会立即添加 VisionOS 功能区,包括可调整大小的窗口和 VisionOS 的自适应半透明功能。

5. 可以为 VisionOS 重新编译旧的 UIKit 应用程序(非使用 Swift 和 SwiftUI 构建)

当开始这样做时,开发者将从 VisionOS 获得一些亮点和 3D 功能。基于 UIKit 和 Objective C 的应用程序可能无法提供完全身临其境的 3D 体验,但它们将获得原生 VisionOS 的外观和体验,并能够与更现代的基于 SwiftUI 的应用程序无缝地共存。

6. 传统的 UI 元素(如控件)获得新的 Z 偏移选项

这允许开发者将窗格和控件推入 3D 空间,允许某些界面元素浮动在其它元素的前面或者后面,这会让开发者更加关注某些元素。

7. VisionOS 使用眼动追踪来实现动态注视点 

Foveation 提供了一种图像处理技术,其中图像的某些区域比其它区域能获得更多细节。借助 VisionOS,Vision Pro 使用眼动追踪,并以非常高的分辨率渲染正在查看的场景区域,但同时会降低周边视觉的分辨率。这减少了用户未全神贯注区域的处理时间。开发者无需为此编写代码,它已内置于操作系统中。

8. 物体照明来源自当前空间

在缺省情况下,漂浮在 3D 空间中的物体会获得用户佩戴头显所在空间的光照与阴影特征。如果开发者想要自定义对象在虚拟空间中的照明方式,则可以提供基于图像的照明资源。

9. ARKit 为应用程序提供了使用设备真实房间的模型 

它使用平面估计来识别真实房间的平面图。场景重建构建了应用程序可以与之交互的房间空间的动态 3D 模型。图像锚功能会将 2D 图形锁定到 3D 空间中的某个位置,使它们看起来像是现实世界的一部分。

10. VisionOS 上的 ARKit 增加了手骨骼追踪和辅助功能 

这为应用程序提供了定位数据和关节映射,让手势可以更全面地控制虚拟体验。除了手部动作之外,辅助功能还允许用户与眼球运动、声音以及头部运动进行交互。

11. Unity 位于 RealityKit 之上

Apple 目前已与Unity合作,Unity 开发者可以直接从 Unity 内部转向 VisionOS。无需太多转换工作即可将所有基于 Unity 的内容迁移到基于 VisionOS 的应用程序中。但在实际中可能是相当大的工程,因为它需要具有丰富 Unity 经验的开发者与 VisionOS 应用程序一起创建基于 Unity 的应用程序。


12. Reality Composer Pro 是用于预览和准备 3D 内容的新开发工具

这是 3D 和虚拟内容的资产管理器。另外它也可以让开发人员创建自定义材质、测试着色器、将这些资产集成到 Xcode 开发过程中,并在 Vision Pro 上进行预览。

13. 共享空间数据处理发生在设备上

用户房间的视觉效果和映射将始终是保密的。云端处理不用于 3D 映射。所有用户个人信息和房间空间动态都完全在 Vision Pro 设备内部进行管理。

14. Xcode 提供了预览与Vision Pro 模拟器 

开发者可以很方便的定义应用程序外观并测试应用程序。

预览模式可以让开发者在 Xcode 中查看布局,模拟器是可用于测试整体应用程序行为的专用屏幕环境。可以使用键盘、触控板或游戏控制器模拟手势。

Xcode模拟器


15. 对于拥有 Vision Pro 的人,可以完全在虚拟空间中进行编程

Vision Pro 能够将 Mac 桌面扩展到虚拟空间,这意味着开发者可以同时拥有 Xcode 开发环境和 Vision Pro 两种应用程序。

16. Vision Pro 将有专门的应用商店

带有应用内购买的应用将可以从 Vision Pro 的专用应用商店下载购买。此外,Test Flight 与预期的 Xcode 和 Vision OS 一起运行,因此开发者将能够以与 iPhone 和 iPad 完全相同的方式分发应用程序的测试版。

17. Apple 正在积极准备一些编程支持资源

VisionOS SDK、更新的 Xcode、模拟器和 Reality Composer Pro 等开发者套件将于本月晚些时候上市。

Apple 还建立了 Apple Vision Pro 开发者实验室。它们分别位于伦敦、慕尼黑、上海、新加坡、东京和库比蒂诺。

有关 Vision Pro 和 VisionOS 开发的更多信息,请访问Apple 的开发者网站:https://developer.apple.com/visionos/。

各位开发者们,你怎么看?


作者:场长

相关阅读:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存