新闻资讯
3DCAT实时渲染云平台

让任意设备随时随地访问您的3D/XR应用!

3DCAT实时渲染云-新闻中心

首发!使用 Unity 为 Apple Vision Pro 开发应用

2023-06-14 14:15:13

首发!使用 Unity 为 Apple Vision Pro 开发应用

新的“iPhone”时刻

筹备了多年之后,2023年6月,苹果在WWDC2023终于发布了第一代AR/VR头显,VisionPro,这是苹果近十年来最重要的产品之一,这或许将是下一个“iPhone时刻”。

Unity引擎首次作为Apple官方开发工具,获得了官方提供的VisionPro全功能支持,让广大Unity开发者激动不已。不过目前对应版本的Unity和Apple开发者工具都还没有正式公布,我们可以先通过部分Apple释放出的一些开发者文档先行过过瘾,后续正式发布后可能会有所调整,仅供初期参考。

Unity引擎获得VisionPro全功能支持

沉浸式和全沉浸式

Vision OS应用开发可以简单分为两类,一类是“沉浸式”,常规理解上更偏向于AR或者MR,用户可以看到数字内容和现实画面的融合;另一类是“全沉浸式”,更偏向于VR虚拟现实,用户完全沉浸在虚拟世界。

沉浸式和全沉浸式

Unity x Reality OS

PolySpatial

首先Unity专门为VisionOS开发了PolySpatial,在发布到VisionPro之前,项目中的材质、MeshRender、粒子系统、图集等等都会进行转换。

渲染管线支持

渲染管线方面支持Build-in渲染管线和URP,HDRP本来也是针对主机端设计的渲染管线,不太可能支持,目前相当于已经获得了和移动端一样的支持。

Shader和材质

在VisionOS上,可以使用Unity提供的ShaderGraphs来编写需要的shader,但是暂时不支持手写的shader。

材质方面支持PBR材质、用户自定义材质以及部分特效材质,以下是可用的材质类别:

Shader和材质

所有这些内置材质都将在打包到VisionOS之前转换成Reality Kit中专有的PhysicallyBased材质,也就是苹果的PBR材质。

如果是使用ShaderGraph制作的shader,则会通过Materialx进行转换。

如果是手写的Shader,暂时还不支持转换到Reality Kit,如果确实有需求,可以将它渲染到 RenderTexture上进行显示,这种形式是支持的,也算一种过渡方案。

Materialx

开发过程中的场景调整也不必担心,Unity中提供了专用的Volume Camera,开发者可以用它来在Scene中查看实际效果。

模型和Mesh

常规的MeshRender和SkinnedMeshRender都可以完整支持,这方面几乎不用做任何调整。

模拟仿真系统

物理系统、自动寻路、动画、TimeLine、开发者的MonoBehaviour脚本、ScriptObject等等都不受影响。

运行和调试

Unity提供了三种方式让开发者可以运行自己的项目:Unity引擎、Xcode模拟器,以及真机。

借助上面提到的Volume Camera,开发者可以直接在PlayMode看到运行效果,如果愿意,也可以发布并运行到模拟器或真机上进行查看。

在编辑器模式和模拟器模式下,Unity允许用户进行断点调试,并查看自己的代码逻辑。

Unity运行和调试

Volume Camera

利用Volume Camera,开发者可以选择使用哪种方式:“Bounded“和”Unbounded“,也就是之前提到的”沉浸式”或者“全沉浸式”。

Bounded Volumes

在这种模式下,Unity的应用运行在一个“共享空间”,应用是有尺寸和位置的,并且和其他应用一样,都运行在这个“空间”下,用户可以看到周围的环境,随意调整应用位置、切换应用。需要注意的是,在这个模式下,Unity仍然有两种形态可以让开发者选择如何去展示应用:dimensions和transform,可以简单理解为3D或者是2D模式。

Unity共享空间

dimensions和transform形态

在Dimensions模式下,应用将会立体显示在空间中,通过调整Volume Camera的覆盖范围,可以控制用户所看到的区域,Volume缩放也将映射到场景和用户真实世界之间的大小比例关系上。

Dimensions模式

Unbounded Volumes

在Unbounded Volumes,开发者可以创建一个无边界的沉浸式VR环境,使用Bounded Volumes时,Vision OS会屏蔽外界环境,用户可以体验到完整的VR内容。

需要注意的是,Unity中的单位将会精准的投射到用户的视野范围中,请将场景中的物体设置为精准的尺寸,不能过大或者过小,作为参照,可以在场景中创建一个Cube,它的尺寸刚好是1m的立方。

在此环境中,Unity可以追踪用户的手势、头部姿态,其中最常见的交互就是手指的点击,如果要让物体可交互,则必须要添加input collider组件。编辑器中可以模拟最多两个手指的点击,Unity为此专门设计了WorldTouch事件,通过监听事件,可以实现需要的逻辑。

Unbounded Volumes

AR Foudation

想必大家还记得AR Foudation,这是Unity基于传统的ARKit实现的一个AR基础包,由于VisoinPro同样可以基于ARKit实现AR应用开发,因此基于ARFoudation为VisionOS开发AR应用同样可行。

开发者仍然可以使用Plane detection、World mesh、Image marker等等基础功能,基于ARFoudation开发的应用将会以Unbounced模式运行,并且会像往常一样请求相机等相应的权限。

蓝牙设备支持

VisionPro可以连接外部蓝牙设备,如键盘、手柄控制器以及其他系统支持的设备,因此Unity中也可以通过InputSystem接收这些设备的输入事件并做处理。需要注意的是,在Bounded 和 Unbounded两种模式中所支持的交互方式是有所区别的,以下是详细的支持信息:

VisionPro支持外部蓝牙设备

小结

3DCAT是一家总部位于深圳的实时云渲染服务商,隶属于瑞云科技。作为行业的领先者,3DCAT不断聚焦于最新技术前沿,致力于为广大用户提供稳定、流畅的云渲染基础服务;

作为一个实时云渲染服务提供商,3DCAT具备强大的计算能力和渲染引擎,可以满足各种复杂场景的渲染需求,无论是游戏开发者、动画制作公司还是建筑设计师,都可以依靠3DCAT的实时云渲染服务来快速高效地渲染出精美的视觉效果。

本文《首发!使用 Unity 为 Apple Vision Pro 开发应用》内容由3DCAT实时云渲染解决方案提供商整理发布,如需转载,请注明出处及链接:https://www.3dcat.live/news/post-id-152/

400-8037-298

在线咨询致电