Learn about VisionOS-把你的UnityVR应用带到一个完全身临其境的空间

Unity将他们的引擎和XR生态系统适配到VisionOS,可以让Unity开发者能够轻松地将自己的项目带过来。开始创建一个身临其境的空间与完全身临其境的风格。这允许你的应用将某人传送到另一个世界。在完全身临其境的体验中,Unity利用了合成服务,并为您的应用程序提供了Metal渲染功能的强大功能。Unity还利用ARKit来识别你的身体位置和周围环境,包括骨骼手部跟踪。
Unity基于这些技术在Unity引擎中提供相同的服务。
新的苹果技术如何帮助Unity开发者将完全沉浸式的VR游戏带到这个平台上?
在这里插入图片描述
在《反重力》中的娱乐室。这是一个流行的虚拟现实社交平台,允许用户与来自世界各地的其他人创建和玩游戏和体验。
它基于Unity游戏引擎,为游戏开发提供了一个强大而灵活的平台。
基于此游戏介绍一些工具和技术,这些工具和技术将使你更容易将VR内容带到这个新平台上,就像娱乐室一样。
当你计划将Unity内容带到VisionOS时,我将告诉你一些需要牢记的事情。
1使用从Unity到设备部署内容的工作流程。
2关于这个平台上的图像,你需要记住一些事情。
3如何将控制器输入调整为手动输入,以及Unity提供的一些工具来帮助实现这一转变。

1 构建项目

在这里插入图片描述

  • 选择构建目标
  • 启用XR插件
  • 重新编译
  • 从Unity构建现在将生成一个Xcode项目,就像它为iOS, Mac或Apple TV目标所做的那样
  • 从Xcode中构建并运行到设备或设备模拟器,以加快迭代

2 渲染

  • 通用渲染管道。
  • 注视点渲染(Foveated Rendering)。
    在这里插入图片描述
    在这里插入图片描述

Foveated Rendering是一种技术,它将更多的像素密度集中在每个镜头的中心,也就是眼睛可能被聚焦的地方,而将更少的细节集中在屏幕外围,因为眼睛对细节不太敏感。这将为使用该设备的用户带来更高质量的体验。
当你使用通用渲染管道时,静态注视点渲染应用于整个管道。它可以使用所有的URP功能,包括后处理、相机堆叠、HDR等。
如果你有自定义渲染通道,可以从注视点渲染中受益,Unity 2022中有新的api可以利用这项技术。由于渲染现在发生在非线性空间中,因此也有着色器宏来处理重新映射。利用静态注视点渲染意味着你将在重要的像素上花费资源,并产生更高质量的视觉体验。

  • 单通道实例渲染
    在这里插入图片描述

在Unity中,单通道实例渲染现在支持Metal图形API,它将在默认情况下启用。使用单通道实例渲染,引擎只提交一个绘制调用两只眼睛,并减少渲染管道的某些部分的开销,如裁剪和阴影。这减少了以立体渲染场景的CPU开销。好消息是,如果你的应用已经在其他VR平台上使用单通道实例渲染正确渲染,那么着色器宏可以确保它在这里也能正常工作。

  • 深度计算(Depth compositing)

确保你的应用程序为每个像素正确写入深度缓冲区。系统合成器使用深度缓冲进行重投影。当深度信息缺失时,系统将呈现错误颜色作为指示。
在这里插入图片描述
一个例子是天空盒,它通常离用户无限远,所以它用反向Z写深度为零。这需要修改才能显示在设备上。官方已经修复了所有Unity的着色器,将正确的值写入深度缓冲区,但如果你有任何自定义效果,如自定义天空盒,或者可能是水效果或透明度效果,请确保为每个像素写入一些值。
在这里插入图片描述

3 输入系统

既然您已经将图形渲染到设备上,那么是时候让它们具有交互性了。这个设备上的交互是独一无二的。人们将用他们的手和眼睛与内容互动。有几种方法可以让你在这个平台上为Unity应用添加交互性。XR交互工具包增加了手动跟踪,使您更容易适应现有的项目。你也可以用Unity输入系统对内置系统手势做出反应。你可以使用Unity Hands Package访问原始的手部关节数据进行自定义交互。
XR交互工具包(也称为XRI)提供了一个高级交互系统。该工具包旨在简化将输入转换为交互的过程。它适用于3D和UI对象。
XRI抽象了输入类型,如手部跟踪,并将该输入转换为应用程序可以响应的动作。这意味着您的输入代码可以在接受不同类型输入的平台上工作。无论是在3D空间还是在3D空间世界的UI中,XRI都可以轻松地响应诸如悬停,抓取和选择等常见交互。该工具包还包括一个运动系统,这样人们就可以更舒适地在一个完全沉浸式的空间中旅行。当人们与你的世界互动时,视觉反馈对于沉浸感很重要。XRI使您能够定义每个输入约束的视觉反应。
在这里插入图片描述
XRI的核心是一组基本的可交互组件和交互组件。
在这里插入图片描述
可交互对象是场景中可以接收输入的对象。您定义了交互者,它指定了人们如何与您的交互对象进行交互。
交互管理器将这些组件绑定在一起。
第一步是决定场景中的哪些对象可以与之交互,以及当这些交互发生时如何做出反应。我们通过向对象添加可交互组件来实现这一点。
有三种内置类型。
Simple将对象标记为接收交互。
在这里插入图片描述
Grab
在这里插入图片描述
Teleport
在这里插入图片描述

4 交互形式

直接抓取,射线抓取和漫游,套接字交互器,按压戳(Poke),注视(凝视干涉仪)
在这里插入图片描述
在这里插入图片描述

使用unity系统姿势绑定

在这里插入图片描述
使用unityHands包从体统中访问所有原始的手关节数据

下图定义了方法获得食指是否伸出。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_30853633/article/details/131203496