XR 世界导览#019-Let's visionOS 大会/在 AVP 上玩手机或查看Spline的3D模型/用代码写ShaderGraph

本期封面

本期封面,我们分享的是 Mike Stang 所创作的 Instagram 4 VisionOS,目前我们见到的很多 Apple Vision Pro 上的应用的 2D 窗口还是沿袭着类似 iPad 上,只有一个区块的设计,并没有充分利用好 "空间" 这块更大的 "屏幕",希望未来我们能看到更多的类似 Instagram 4 VisionOS 这样的多区块设计的 App。

写在前面

嗨,大家好哇,没有想到吧,这个周四,竟然突然看到了 XR 世界导览的出现😉,是不是很惊喜?

没错,为了能够尽量让我们每周都和大家见面,我们决定尝试一下,从 019 期开始,XR 世界导览将会由双周更新,改为单周更新。如无意外(比如台风、火山爆发),XR 世界导览将会在每周的周四和大家见面。

当然,要想保持周更,仅靠一个人的力量肯定是远远不够的,这里再次感谢 XR 基地的所有布道师小伙伴们。当然,如果你对 XR 世界抱有热情,想来多看看 XR 世界的各种好玩的,并通过 XR 世界导览传达给 XR 世界的各路小伙伴们,欢迎你前来加入 XR 基地的布道师小组。

要怎么加入?微信(添加 CallMeOnee)或者邮箱(renyujie@xreality.zone)都是可以的~

好了,话不多说,请来看看这一期的 XR 世界导览都会给你带来什么好玩的吧~

目录

BigNews

  • Let's visionOS ------ 三月底,我们为 visionOS 的创作者们打造的游乐场

Idea

  • Bezel:Show Your iPhone in Apple Vision Pro
  • Dino:帮助你在 Apple Vision Pro 上输入中文

Tool

  • Unity 为开发者提供了一个新的 visionOS Project Template
  • SplineMirror:你可以在 visionOS 上查看 Spline 里面创建的 3D 模型了
  • Spatial:Mac 上免费转换 MV-HEVC 到普通格式的命令行工具

Code

  • HandsRuler:用双手测量物体长度的 App 开源了
  • ShaderGraphCoder:用代码编写 ShaderGraph
  • ALVR for Apple visionOS:SteamVR 串流软件支持 Vision Pro 了!

QuickNews x 🔟6️⃣

BigNews

Let's visionOS ------ 三月底,我们为 visionOS 的创作者们打造的游乐场

关键词:Apple Vision Pro 、visionOS Creators

来啦!🌟 首届 Let's visionOS 创作者大会 即将于三月底在北京盛大开幕,🌆 3 月 30 日至 31 日,XR 基地的所有朋友想邀请你一起来聚焦 Apple Vision Pro 和 visionOS,探索未来的空间计算新趋势。这不仅仅是一次聚会,而是与全球创新者和爱折腾的先锋们深度交流的绝佳机会,现场还能直接体验 Apple Vision Pro,沉浸感受未来的模样📍

在这次大会上,XR 基地的小伙伴们邀请了非常之多的海内外开发者朋友🌍,他们将会分别带来各自在 Apple Vision Pro 上不凡的洞见,

  • Jordi Bruin --- 创意独立开发者,他的应用 Navi 在 2022 年荣获 Apple Design Award 提名,为视频通话带来实时字幕翻译,革新沟通方式。
  • Devin Davies --- iOS 开发界的佼佼者,其开发的 visionOS 菜谱应用 Crouton 以独特的 AR 计时器功能受到华尔街日报的高度评价,再加上其创意十足的「AR 摔盘子解压 App」Plate Smasher,展示了他在应用创新方面的非凡才华。
  • Hidde van der Ploeg --- 拥有十年开发经验的产品设计师,他的 visionOS 应用 NowPlaying 为 Apple Vision Pro 用户提供了升级版的音乐播放体验,成为 App Store 编辑推荐的明星产品。
  • Adam Watters --- 游戏开发的先行者,他利用 Godot 游戏引擎开发的 visionOS 应用为开发社区展示了更多元化的开发可能,开辟了使用非主流引擎开发高质量应用的新路径。
  • 海辛和阿文 --- 首个登上春晚舞台的 AI 空间视频作者,国内首屈一指的 AI 视觉艺术家。

在这为期两天的盛大会议上,我们将一起探索 visionOS 给我们带来的各种可能。如果你是:

  • 工程师:你将会探索新平台下的尖端技术,挑战和解决方案,拓展技术视野。
  • 设计师:你将会在空间计算领域探索全新设计理念,从五大洲的同行那里获得灵感,提升创造力。
  • 创业者:你将会在新平台创始期,与新锐伙伴构建联系,寻找创业灵感与机遇。
  • 科技爱好者:你将会紧随科技前沿,拓展认知边界,激发对未来的热情和创新动力。

🌟 开启国际化视野,拥抱出海机遇:3 月 30 日至 31 日,北京,与我们一起迎接科技革新的新篇章。🚀 点击链接,抢占你的位置,进入空间计算的新时代。

Idea

Bezel:Show Your iPhone in Apple Vision Pro

关键词:Apple Vision Pro、iPhone、Mirror

Bezel 是一款能够帮助你在 Mac 上投影 iPhone 屏幕的 App,最近他针对 Apple Vision Pro 也推出了一款 App,能够帮你将 iPhone 投影为独立窗口。

如果你想在 Apple Vision Pro 多窗口使用一些目前只能在手机上使用的 App,例如上图那样,你可以尝试一下这个 App。

另外,和 Mac 上的 App 一样,Bezel 也提供了非常精美的 iPhone 外壳,只不过,这次外壳是全 3D 的!

Dino:帮助你在 Apple Vision Pro 上输入中文

关键词:Apple Vision Pro、Chinese Input

即便是国行版本还没有出,但是中国的开发者和消费者对 Apple Vision Pro 的热情并没有减少一点点🤏。

不过,当大家的 Apple Vision Pro 到手以后就发现,目前 visionOS 并没有提供中文的输入法以及语音识别,不得不说目前在 Apple Vision Pro 上想输入中文还是非常艰难的。

Dino 就是为了解决大家的这个问题而推出的。利用 Dino,你可以在离线情况下,通过语音的方式输入中文,当输入结束后,Dino 会自动将文本内容添加到剪贴板,同时你也可以通过拖拽的方式来将其拖拽到任意的文本框中。

不得不佩服作者 Ciyou 的想法和行动力,为他点赞👍。

Tool

Unity 为开发者提供了一个新的 visionOS Project Template

关键词:Unity、visionOS

如果你想尝试用 Unity 在 visionOS 上开发一个新的 App 却不知道从哪里开始学习实际的例子的话,可以来尝试尝试官方提供的这个 visionOS Template Project 来快速上手。

Dilmer视频 中,他也展示了一些 Demo 在 Apple Vision Pro 上运行的样子:

这个 Template 包含一个 Shared Space 场景和一个 Full Space 场景。

在 visionOS 原生开发中,我们一般用一个 Volumetric Window 来包含 App 在 Shared Space 模式下的 3D 内容。在 PolySpatial 中,我们通过 VolumeCamera 组件实现相同的效果。就像原生开发中的 Volumetric Window 一样,我们也可以在 VolumeCamera 中通过 Dimensions 参数设置 3D Volume 在 MR 中的物理大小。当我们把 VolumeCamera 的模式设为 Bounded 的时候,顾名思义,我们的 3D 内容会被显示在一个大小固定的 Volume 中。当我们把 VolumeCamera 的模式改为 Unbounded,App 将从 Shared Space 模式切换到 Full Space 模式,App 中的 3D 内容也不再是有边界,进入全沉浸模式。

在案例的 Bounded 场景中,我们可以通过远程手眼交互和直接交互来移动场景中悬浮的方块等 3D 物体,也可以通过这个场景学习如何在 Unity 中复现 visionOS 系统自带的交互方式。Template 中的两个场景是可以实时切换的,通过动态加载场景或切换 VolumeCamera 的模式,我们就可以使 App 在 Shared Space 和 Full Space 模式下切换。案例的 Unbounded 场景展示了如何使用平面检测和手势识别。

除此之外,这个 Template 项目还提供了交互式的 Tutorial,帮助你一步步了解 PolySpatial 的开发组件。

如果你想要快速上手看看如何在 Unity 上开发 visionOS App 的话,这个模板工程建议你不要错过~

SplineMirror:你可以在 visionOS 上查看 Spline 里面创建的 3D 模型了

关键词:Spline、3D Editor、visionOS

作为一个 3D 艺术家,当你在编辑器里面做完自己的得意之作后,如果能够以 3D 的形式查看它,那得多带劲儿啊。

现在,SplineMirror + Apple Vision Pro 就可以满足你。当你在 Spline Editor 中编辑完场景后,只要点击 Export -> visionOS -> Update,就可以将这个场景文件导出为适合 visionOS 预览的形式。

接下来,你只要在 Apple Vision Pro 中打开 Spline Mirror,就可以在 Recent 中看到这个场景:

然后点击场景,你就可以分别以 Window、Volume、Immersive Space 三种形式分别查看这个模型文件了:

当然现阶段,Spline Mirror 并不会支持所有 Spline 文件的特性,这点从 官方文档 中就可以看出来,还有很多诸如涉及到交互的事件,以及整体场景的后处理这样的特性还没有被支持:

不过,对于 Spline 来说,在 Apple Vision Pro 上预览 3D 模型一定是一个体验大幅度提升的场景,期待 Spline 的后续更新升级~

Spatial:Mac 上免费转换 MV-HEVC 到普通格式的命令行工具

关键词:Spatial Video、MV-HEVC

在之前的文章中,我们推荐了很多关于 Apple 空间视频的工具,例如在 018 中我们就推荐了 HaloDepthOwl3D 以及 Depthify.ai

这次我们要推荐的是 spatial,这是一个能够帮你在 Mac 上轻松的将空间视频和普通的 SBS 格式视频之间互相转换的命令行工具(如果你对 SBS 感到陌生,请阅读 iPhone 15 Pro / Apple Vision Pro 上的空间视频,到底是什么? 浅浅复习一下)

使用方式非常简单,如果你安装了 Homebrew ,那就直接在命令行中执行:

Shell 复制代码
brew install spatial

然后,你就可以用以下的四个命令来执行你想要的操作了:

  • info:获取 MV-HEVC 的文件信息
  • export:将 MV-HEVC 转换成普通的 SBS 视频
  • make:将普通 SBS 视频转换成 MV-HEVC 格式的
  • metadata:获取和修改一个 MV-HEVC 文件中的元信息

例如,用下面的命令,你就可以将一个 MV-HEVC 格式的空间视频转换为普通的 SBS 视频:

Shell 复制代码
spatial export -i spatial_test.mov -f ou -o over_under.mov

而用下面的命令,你就可以将一个 SBS 的视频转换为 MV-HEVC 格式的空间视频:

Shell 复制代码
spatial make -i over_under.mov -f ou -o new_spatial.mov --cdist 19.24 \
--hfov 63.4 --hadjust 0.02 --primary right --projection rect

尽管 Quest 已经在 v62 中支持了直接观看 MV-HEVC 格式的空间视频,不过利用这个命令行,在一些需要大批量修改视频文件的场景,还是非常实用的。非常感谢作者 Mike Swanson 为我们带来的这么一款十分方便的工具!

Code

HandsRuler:用双手测量物体长度的 App 开源了

关键词:Ruler、visionOS

HandsRuler 是一款利用手势追踪来测量长度的免费 App,已上架 App Store。同时,作者也将项目代码进行了开源,以供大家进行学习,代码地址:HandsRuler。如果你也有开发 visionOS 应用的想法,可以借鉴学习该项目的代码,了解 visionOS 开发与上架的基础知识。

ShaderGraphCoder:用代码编写 ShaderGraph

关键词:visionOS、ShaderGraph、USD

visionOS 上原生支持 ShaderGraph 方式来导入使用 Shader,然而目前 Xcode 本身暂未提供代码编写功能。也就是说,目前要使用 ShaderGraph 只能是使用外部工具(比如 Reality Composer Pro 或 Blender、MaYa)通过拖拽组件的方式提前编写好,再通过 USDZ 文件导入才能使用。

ShaderGraphCoder 项目为大家提供了 Xcode 编写 ShaderGraph 代码的功能。具体实现逻辑是:

  • 使用预置的 SGValue 类型编写 Shader Graph 代码,它们组成了一个图(Graph)
  • 将该图按照预定格式写入 USDA 文件中(USDA 是 plain 样式的 USD 文件,类似于 json 文件)
  • 加载 USDA 文件,得到 ShaderGraphMaterial 类型可供使用

目前支持了大部分常见 shader 运算和输入类型,使用示例如下:

Swift 复制代码
// Create a solid red material for visionOS
func solidRed() async throws -> ShaderGraphMaterial {
    let color: SGColor = .color3f([1, 0, 0])
    let surface = SGPBRSurface(baseColor: color)
    return try await ShaderGraphMaterial(surface: surface, geometryModifier: nil)
}

// Create a pulsing blue material for visionOS
func pulsingBlue() async throws -> ShaderGraphMaterial {
    let frequency = SGValue.floatParameter(name: "Frequency", defaultValue: 2)
    let color: SGColor = .color3f([0, 0, 1]) * sin(SGValue.time * frequency * (2*Float.pi))
    let surface = SGPBRSurface(baseColor: color)
    return try await ShaderGraphMaterial(surface: surface, geometryModifier: nil)
}

ALVR for Apple visionOS:SteamVR 串流软件支持 Vision Pro 了!

关键词:SteamVR、ALVR

知名串流软件 ALVR 近日宣布正式登陆苹果 Vision Pro 头显,玩家可以使用这款应用在 Vision Pro 头显中远程游玩 SteamVR 游戏,不过目前相关应用并未上架 App Store,用户需要在 GitHub 下载项目手动编译部署。你可以前往 项目地址 查看代码,并根据 编译步骤 来将其安装到 Apple Vision Pro 上。

目前这个项目面临的主要问题是缺少适配的手柄控制器,因为苹果并未为 Vision Pro 配备相关设备,所以玩家需要使用 PS5 的 DualShock 手柄或额外购买其他 VR 控制器才能进行游戏。

Quick News

欢迎来到我们的新板块------「Quick News」,在这里我们会非常快速地为你带来过去一周发生的各种业界消息

Tips

如果你不想阅读文字,你也可以前往播客 「 XR 产品谈」------ 「XR 动态早知道」 收听。

苹果 podcast 搜索 「 XR 产品谈」 或直接前往 这里

小宇宙 搜索 「 XR 产品谈」或点击 这里

  1. 苹果发布 visionOS 1.1 Beta 3测试版,优化体积应用定位和忘记密码重置头显流程;
  2. 苹果 Vision Pro 可看超宽屏电影;
  3. 苹果新专利:可用于 Vision Pro、Mac 等产品的手持控制器;
  4. 郭明錤:Vision Pro 预计 WWDC 2024 前登陆更多市场;
  5. Meta Quest 申请使用苹果设备 Airplay 接收;
  6. Meta 要求3月底前 Oculus 账户迁移至 Meta 账户;
  7. Quest 拒绝搭载谷歌即将上线的 Android XR 平台;
  8. Meta 发布新 XR Core SDK(v62):
    1. 推出 Mulitmodal MM 多模式让 Quest 3 与 Pro 应用可同时使用控制器和手部追踪;
    2. 新增 Wide Motion Mode 大幅运动模式;
  9. Meta 发布 AR 游戏 Cryptic Cabinet项目源码
  10. Meta 或将发布手指神经追踪腕带;
  11. Meta 计划秋季展示自家 AR 眼镜原型;
  12. Meta 与 LG 合作开发下一代 XR 头显, LG 代工Quest Pro 2 预计2025年上半年发售;
  13. 雷鸟创新完成新一轮亿元级融资;
  14. 迪士尼第十期加速器计划:四家AI公司,一家VR公司;
  15. 索尼正测试 PS VR2 对 PC 支持;
  16. 《沙丘2》宣发:与 Snapchat 合作推出 AR 体验;

本期贡献者

我就是御姐我摊牌了

苹果 API 搬运工

笑爷

宇辰

相关推荐
Thomas_YXQ11 天前
Unity3D项目为什么要使用FairyGUI
开发语言·unity·游戏引擎·unity3d·游戏开发
nicepainkiller11 天前
Flutter 内嵌 unity3d for android
flutter·unity3d
Thomas_YXQ25 天前
Unity3D ngui和ugui区别与优缺点详解
服务器·游戏·unity·unity3d·游戏开发
Thomas_YXQ1 个月前
Unity3D Lua如何支持面向对象详解
开发语言·游戏·junit·性能优化·lua·unity3d
Thomas游戏开发1 个月前
Unity3D 逻辑服的Entity, ComponentData与System划分详解
前端框架·unity3d·游戏开发
大眼睛姑娘1 个月前
unity运行状态下移动、旋转、缩放控制模型
unity3d
lin zaixi()1 个月前
手把手教你写Unity3D飞机大战(2)天空盒布置
unity3d
Thomas_YXQ2 个月前
Unity3D中管理Shader效果详解
开发语言·游戏·unity·unity3d·游戏开发
羊羊20352 个月前
线性代数:Matrix2x2和Matrix3x3
线性代数·数学建模·unity3d
天人合一peng2 个月前
Unity hub登录时一直无法进入license
unity3d