XR 世界导览 007 期

image.png

目录

  • BigNews
    • 微软 Mixed Reality Toolkit 3(MRTK3)已移至 GitHub 中的独立组织
    • 微软宣布将于 2024 年 8 月停止支持 Visual Studio for Mac IDE
    • 苹果获得了一项可追溯到 2007 年的关于 Apple Vision Pro 的专利
    • Rokid 发布 Rokid AR Studio 套装
  • Idea
    • 3D 世界,也许不需要一蹴而就
  • Tool
    • guc: glTF to USD converter
  • Article
    • 苹果分享了开发者对 Apple Vision Pro 的体验
  • Code
    • NeuralAngelo:英伟达开源将普通视频转换为 3D 结构的项目代码
    • OctopusKit :纯 Swift 的 2D ECS 架构游戏引擎

BigNews

微软 Mixed Reality Toolkit 3(MRTK3)已移至 GitHub 中的独立组织

关键词:微软、开源、MRTK3

image.png

微软公布了 Mixed Reality Toolkit 3(MRTK3) 的重大更新。MRTK3 项目最初由微软创建和维护,用于支持其 HoloLens 等产品的增强现实应用开发。如今,微软已将其转移到 GitHub 上的一个 独立组织 中,使其成为一个真正的开源和跨平台项目。

作为 Unity 中的第三代 MRTK,它建立在 Unity 的 XR SDK Management 和 XR Interaction Toolkit 之上,提供了跨平台的输入系统、空间交互和 UI 构建模块。它支持多种平台,使开发者能够通过实时模拟快速原型开发。

MRTK3 支持多种 XR 设备,包括 HoloLens 2、Meta Quest、Windows 混合现实、SteamVR 以及 Oculus Rift。它具有全新的交互模型、更新的混合现实设计语言、支持 Unity Canvas 的 3D UI 系统等特点。此外,它还提供了一些辅助功能,例如输入辅助,以提高可访问性。整体来讲,MRTK3 在架构、性能和用户界面等多个方面进行了重写和重新设计,旨在加速跨平台混合现实应用的开发,并以专业、简洁的方式呈现给用户。

尽管之前微软裁撤了 MRTK 项目组的 新闻 让从业者非常伤心,但还好这个故事最后看起来能有一个还算不错的结局。将 MRTK 转到 Github 这一举措结束了 MRTK3 项目仅受微软控制的状态。作为独立组织,MRTK3 将能够吸引更多平台和开发者的参与,不再受限于微软的技术框架。Magic Leap 作为 AR 设备的重要参与者已经加入指导委员会,高通技术也宣布回归,这预示着项目将取得更广泛的行业支持。

在产品路线方面,MRTK3 计划于今年 9 月正式发布。作为 AR 和 VR 开发的重要工具包,MRTK3 一直备受关注。它的开源转型和跨平台支持无疑将为开发者带来更大便利。

微软宣布将于 2024 年 8 月停止支持 Visual Studio for Mac IDE

关键词:微软、Unity、Visual Studio

微软近日发布了一个重要消息,宣布将在 2024 年 8 月 31 日停止支持 Visual Studio for Mac IDE。

Visual Studio 作为 Unity 项目开发流程中的重要工具,它的 Mac 版本退役无疑对基于 macOS 的开发者们影响重大,也势必对工作流程产生一定影响。

当前,微软给出了如下替代方案:

  • 使用 Visual Studio Code 以及新的 C# 开发工具包和相关扩展

最近发布的 C# 开发工具包、.NET MAUI 和 Unity 的 VS Code 扩展目前处于预览状态,它们旨在增强 VS Code 对 .NET 和 C# 开发者的支持。这些扩展可以跨平台原生运行,包括在 macOS 上,随着它们从预览版进入正式版,使用体验也将持续得到改进。(在 006 期的 Newsletter 中,我们也对 VS Code 上的 Unity 扩展进行了详细介绍)

  • 在 Mac 上的虚拟机中运行 Windows 版本的 Visual Studio IDE

这种选择可以涵盖广泛的 IDE 需求,如对 Xamarin、F# 遗留项目的支持,并通过虚拟机在 iOS 上进行远程开发。

  • 在云端的虚拟机中运行 Windows 版本的 Visual Studio IDE

Visual Studio 依然是 .NET/C# 开发的首选工具。使用来自 Microsoft Dev Box 的云托管虚拟机,你可以通过网页或原生 RDP 客户端从 Mac 访问完整的 Visual Studio 功能,无需在本地机器上运行虚拟机。

尽管微软表达了对 Mac 开发者提供继续支持的承诺,不过 Unity 社区也可借此机会探索新的跨平台开发方案。

苹果获得了一项可追溯到 2007 年的关于 Apple Vision Pro 的专利

关键词:苹果、专利、Apple Vision Pro

image.png

苹果公司最近获得了一项可追溯到 2007 年的关于首款苹果视觉相关发明的专利权,也就是第一代 iPhone 问世的那一年。该专利涵盖了苹果一个可能的未来虚拟现实头显设计。

这项发明最初提交专利申请的时间可谓悠久,要比 Oculus 等其他虚拟现实头显厂商早了许多年。该专利涵盖了一个可以调整显示媒体配置的个人显示系统。系统可以检测用户头部移动并相应调整显示图像,这最终演变成了后来头部和眼球追踪技术的雏形。

该专利还详细描绘了一个界面,用户可以通过该界面选择电影院的座位。一旦选择了特定的座位位置,系统会相应修改显示的媒体图像,以模拟从该座位观看时的视角效果。用户还可以选择添加新的电影院进行自定义。

image.png

此外,专利中还提到可以根据用户选择缩放显示图像,并相应调整音频效果,以营造身临其境的效果。例如,系统可以模拟电影院中另一个用户的头部轮廓,或者模拟电影院的特定建筑结构。音频方面,可以根据用户选择的座位位置调整声音效果,前排与后排听到的音效会有差异。

可以看出,苹果对虚拟现实技术的构想可谓远见卓识,涵盖了视觉和听觉的沉浸式效果。虽然从构思到可能的产品推出还需时日,但该专利无疑证明了苹果一直在虚拟现实领域进行着长远规划。

Rokid 发布 Rokid AR Studio 套装

Rokid Jungle 发布会于 8 月 26 日在杭州举办。会上,Rokid 创始人 Misa 发布了主打空间计算的 Rokid AR Studio 套装。Rokid AR Studio 套装包含 Rokid Max Pro 眼镜和 Rokid Station Pro 主机。

Rokid AR Studio 套装

在硬件方面 ,Rokid Max Pro 相比于上一代 Rokid Max 增加了一颗用于 SLAM 定位的摄像头,这也是 Rokid 第一款支持 6DoF 空间定位的 AR 眼镜。Rokid Max Pro 使用了 MicroOLED 屏幕,单眼分辨率为 1920x1200,最高入眼亮度为 600 尼特,拥有 50 度的 FOV 和 120Hz 的刷新率。Rokid Max Pro 最大的特点在于其 76g 的超轻重量,使得用户可以长时间佩戴。

Rokid Station Pro 作为分体式的 AR 计算平台,搭载了高通骁龙 XR2+Gen1 芯片。这台设备还可以作为 AR 眼镜的控制器,具备 3DoF 追踪能力,用户也可以通过上面的物理按键实现滑鼠交互(与鼠标交互非常类似)。Rokid Station Pro 还装备了一颗 4800 万像素的摄像头,用户可以用它来拍照。Misa 特别解释,虽然可以让用户直接通过 AR 眼镜上的摄像头拍照和录像,但 Rokid 认为这样做破坏了他人的隐私,Rokid 不希望人们在未被通知的情况下被拍摄。通过使用 Rokid Station Pro 拍摄,用户需要做一个拿起设备的动作,就像使用手机拍照一样,这样周围的人就会意识到用户的拍照行为。

在生态方面,这次发布会的另一个重头戏是 Misa 详细介绍了之前宣布的与 Google 的合作,Rokid Station 成为了全球首款经 Google 认证的 AR 版 Android TV 设备。这意味着 Rokid Station 用户将可以用 AR 大屏观看 YouTube、Disney+ 等流媒体平台上的丰富内容。

在发布会上,Misa 强调 “Rokid 本质上是一家隐藏在精美硬件产品中的系统软件公司”。Rokid 的一大特色是基于单一摄像头的空间计算系统。单一摄像头的优点是更轻的重量和更低的价格,但在精度方面的挑战相比传统的多摄像头系统更大。为了实现基于单一摄像头的 SLAM 系统,Rokid 推出了自研的 YodaOS-Master 操作系统,相比前作 YodaOS-XR 在空间计算方面做了全面的优化。 YodaOS-Master 针对空间计算提供了空间定位、双目渲染、手势识别和空间音频等功能。

在开发者方面,Rokid 推出了 UXR2.0 SDK。这是一款为 Unity 开发者提供的基于 YodaOS-Master 系统的 SDK,我们也是第一时间下载并体验了一下 Rokid AR 设备的开发流程。

在 Unity 中为 Rokid 开发的第一步就是实现相机在空间中的定位。在 ARFoundation 中,这一步通过在场景中添加 ARSessionXROrigin 实现。在 UXR2.0 SDK 中,只需要将名为 RKCameraRig 的 Prefab 拖进场景即可实现相机的空间定位。

image.png

RKCameraRig 脚本上,我们可以通过调整 HeadTrackingType 选项来选择使用 6DoF、3DoF 或 0DoF 追踪。

image.png

在实现了空间定位后,我们来看一下 AR 交互的部分。Rokid 提供了多模态交互,包括手势(近场手势和远场手势)、3DoF 射线、手柄、鼠标、滑鼠、语音和头控。在同一个应用里,用户可以在这些交互模式之间进行动态切换。

image.png

为了在 Unity 中实现上述多模态交互,UXR2.0 SDK 提供了一个专门的 Prefab 叫做 [RKInput],每个交互方式都被封装到了一个交互模块中,所有交互模块由 [RKInput] 上的 InputModuleManager 脚本统一管理。

image.png

对于每个交互模块,先要完成初始化才能将其激活。在 InputModuleManager 脚本中,可以选择在应用启动时初始化多个交互模块,并选择其中一个作为初始激活的交互模块。

image.png

除了交互方式,我们还需要一些能与之交互的物体来测试交互的效果,这里我们简单尝试一下与 UI 组件的交互。UXR2.0 SDK 提供了另一个 Prafab 名叫 PointableUI,我们将这个 Prefab 拖到场景中。

image.png

为了使 UI 组件可交互,我们需要将 UI 组件放到 PointableUICanvas 下。我们添加一个 Image 组件。

image.png

为了使这个 Image 组件可交互,我们创建一个脚本名为 ImageController,并将这个脚本挂到 Image 组件上。

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class ImageController : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
// 当手指捏合的时候将图片变成蓝色
public void OnPointerDown(PointerEventData eventData)
{
GetComponent<Image>().color = Color.blue;
}
// 当手指松开的时候将图片变回白色
public void OnPointerUp(PointerEventData eventData)
{
GetComponent<Image>().color = Color.white;
}
}

当我们用远场手势(从手部发出射线)与 Image 组件交互时(大拇指与食指捏合触发确认事件),UXR2.0 SDK 会将交互事件通过 Unity 事件系统传递给我们的脚本。以下是这个交互在 Unity Editor 里模拟的效果。

My Movie 1.gif

通过这个小 Demo,我们可以看出 UXR2.0 SDK 对于 Unity 开发者来说是很友好的,开发者可以通过仅仅拖拽 Prefab 实现一些核心功能。在交互上,UXR2.0 SDK 也对 Unity 原生的事件系统进行了适配,使开发者可以用熟悉的代码来实现交互功能。

Idea

3D 世界,也许不需要一蹴而就

关键词:visionOS、游戏、粒子效果

在 Apple Vision Pro 发布后,很多开发者都在想如何 “直接” 把自己的 App 转换到 3D 世界,但其实,这个转换可能并不需要一蹴而就,而可以是一个慢慢来的过程。

在这一点上,James Swiney 这位 iOS/独立游戏开发者就做出了非常好的尝试。在 Apple Vision Pro 推出之前,他一直在做一款像素风的 2D 平面游戏,照常理来说,这种类型的游戏应该是很难和空间产生联系的,但是通过一系列奇思妙想,他首先将 RPG 游戏的各种额外信息与 visionOS 的多窗口进行了巧妙结合:

image.png

接下来,他还使用各种粒子效果来为 2D 的像素游戏增加了简单的沉浸感,例如下面这个雪花飘荡的场景:

SaveTwitter.Net_1672185187470553090(720p).gif

既然雪花都有了,那么再加上一些闪电应该也不是很过分:

SaveTwitter.Net_1684407417294159872(720p).gif

最后,把这些所有的创意聚合在一起,我们就看到了这样一个让人 Wow 一下的作品:

SaveTwitter.Net_1696703083894714368(720p).gif

当然,除了 James Swiney 有这样的创意之外,还有一位叫做 ばいそん 的日本小哥做了一款 “超越平面” 的纸牌游戏,也有异曲同工之妙:

SaveTwitter.Net_1693136175115243521(720p).gif

这也许提示我们,在没有能力制作完整的 3D 场景之前,也许我们可以先从 2D 场景的一些小细节开始进行转换。毕竟,罗马也不是一天就能建成的,对不?

Tool

guc: glTF to USD converter

关键词:glTF、USDZ、MaterialX

guc 是一个开源的 glTF to USD 格式转换器。类似功能的项目在网络上也有不少,但每个项目的目标不同,功能也有所差异。

比如:

  • gltf2usd:它是一个概念验证工程,即 PoC,主要支持 core glTF 2.0 的特性,对 extension 支持少。
  • usd_from_gltf:它主要面向 AR Quick Look,而 AR Quick Look 仅支持 glTF2.0 中的部分特性。
  • Apple's USDZ Tools:它是苹果官方转换工具,但不开源

guc 通过将 glTF 材质几乎无损地转换为 MaterialX 标准,来达到更好的显示效果。同时,除了动画和蒙皮效果外,支持 glTF 的所有特性,并支持绝大部分的 extension。开源(Apache 2.0)且功能完整,这是 guc 的最大优势。

下面是一个示例模型 Iridescent Dish with Olives 对比,左侧为 USD 模型,使用 guc 转换为 USD+MaterialX 并使用 hdStorm 渲染。右侧为原始的 glTF 模型,使用 Khronos 的 glTF Sample Viewer 渲染。

本项目还配有一个 usd-assets 仓库,包含了一些使用不同材质的 USD 模型,可供大家测试使用。

Article

苹果分享了开发者对 Apple Vision Pro 的体验

关键词:苹果、Apple Vision Pro

苹果在美国库比蒂诺、英国伦敦、德国慕尼黑、中国上海、日本东京、以及新加坡设立了 Apple Vision Pro 开发者实验室,并邀请有兴趣的开发者申请参加为期一天的活动。在活动中,开发者可以测试他们的应用程序,获得实践经验,并有苹果专家解答他们的疑问。

日前,苹果通过官网分享了参加活动并亲自体验 Vision Pro 的开发者反馈:

作为 FantastalCardhop 等成功应用程序背后的团队 Flexibits 的首席执行官,Michael Simmons 花了十多年的时间考虑团队工作的每个方面。但当他今年夏天将 Fantasantical 带到库比蒂诺的 Apple Vision Pro 实验室,并第一次在设备上体验它时,他感受到了一些他意想不到的东西。

“这就像第一次看到 Fantastical 一样,”他说。“感觉就像我是应用程序的一部分。”

Simmons 说,实验室不仅提供了一个上手体验的机会,还深刻影响了他的团队对什么是真正的空间体验的思考。他表示:“通过 Vision Pro 和空间计算,我真正看到了如何开始为无限的画布构建内容。这将帮助我们开发出更好的应用。

Code

NeuralAngelo:英伟达开源将普通视频转换为 3D 结构的项目代码

关键词:3D、元宇宙、英伟达

NeuralAngelo 是来自英伟达和约翰霍普金斯大学的研究人员提出的新型 AI 模型,利用神经网络重建 3D 物体。最新研究已被 CVPR 2023 录用。论文及演示在 6 月份公开,此次开源的是相关代码实现。

NeuralAngelo 的特别之处在于,可以准确捕捉重复的纹理模式、同质的颜色和强烈的颜色变化。

1cb01c710d2c789dfafd1981daf2e1e1 (1).gif

通过采用「即时神经图形基元」,也就是 NVIDIA Instant NeRF 技术的核心,Neuralangelo 由此可以捕捉更细微的细节。

团队的方法依赖于 2 个关键要素:

(1)用于计算高阶导数作为平滑操作的数值梯度;

(2)在控制不同细节级别的哈希网格上进行由粗到细的优化。

即使没有辅助深度,Neuralangelo 也能有效地从多视图图像中恢复密集 3D 表面结构,其保真度显著超过了以往的方法,使得能够从 RGB 视频捕捉中重建详细的大规模场景。

teaser (1) (1).gif

OctopusKit :纯 Swift 的 2D ECS 架构游戏引擎

关键词:Apple、Swift、ECS

OctopusKit 是一个纯 Swift 的 2D 游戏引擎,ECS 架构,适用 iOS,macOS 和 tvOS。它并不是完全独立的引擎,而是对苹果相关框架的封装:

  • GameplayKit:用以实现 Entity-Component-System 架构来动态地组成逻辑功能
  • SpriteKit:用以实现 2D 图形,物理 和 GPU shaders
  • SwiftUI:用于使用声明性语法快速设计流畅、可扩展的 HUD
  • Metal:用以实现最佳的性能表现

这个 2D 的游戏框架与 XR 有什么关系呢?因为苹果的 visionOS 需要用到 ECS 架构和 GameplayKit,而这方面的完整示例目前网上较少。OctopusKit 给我们演示了苹果平台的 ECS 架构实现方式,及 GameplayKit 的使用,可供初学者进行学习。

OctopusKitQuickStartDemo.gif

Copyright © 深圳市虚实基地科技有限公司 粤ICP备2023104442号-2