Unity Meta Quest 开发导论:开发现状与主流 SDK

2023-10-20 02:52

本文主要是介绍Unity Meta Quest 开发导论:开发现状与主流 SDK,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 📕开发平台分类
  • 📕Quest 一体机开发分类
  • 📕Quest 一体机开发主流 SDK
  • 📕Quest PCVR 开发主流 SDK
  • 📕新手入门开发的 SDK 推荐

推荐一个高质量知识星球 XR 社区:SEED XR社区。包含教程答疑、及时交流、进阶教程、外包、行业动态、升学就业指导。

知识星球链接:Seed XR 高级社区

在这里插入图片描述

本篇文章配套的视频链接:【2023 VR+MR全硬件开发教程】:一、开发导论(主讲:YY)

📕开发平台分类

VR(XR)头显的开发按照程序运行的平台分类主要可以分为一体机应用PCVR 应用。一体机应用就是直接运行在 VR 头显内的应用,它的算力由头显本身提供。PCVR 应用就是需要将头显和电脑进行串流,它的算力由电脑提供,头显只负责显示画面

因为目前来说电脑的芯片比一体机头显内置的芯片更加强大,所以通常来说 PCVR 应用相比一体机应用会有更好的画质,但是一体机应用也有它的优点,就是方便。因为玩 PCVR 需要有一个头显和电脑串流的步骤,串流分为有线串流无线串流。有线串流就是需要将头显和电脑通过一根串流线进行连接,那么我们玩 PCVR 可能经常会受到这根串流线的束缚。无线串流就是需要将头显和电脑通过 WiFi 进行连接,那么这就需要一个比较好的网络才能有流畅的体验。并且你的电脑配置也决定了是否能流畅地玩 PCVR 游戏。但是一体机应用就比较方便了,头显开机之后就能直接玩,没有什么束缚。那么以上就是 PCVR 应用和一体机应用的区别,大家需要根据自己的需求选择哪一种类型的开发。

📕Quest 一体机开发分类

那么我会先从 Meta Quest 一体机开发讲起。Quest 一体机开发按照输入类型分类可以分为手柄功能的开发(比如操作手柄按键去控制人物)和手势追踪(用自己的双手去与虚拟物体进行交互)。

然后按照应用中的背景环境分类的话可以分为 VRMR 。VR 就是完全虚拟的环境。MR 就是能在现实场景中看到虚拟的物体,并且能和虚拟物体交互,虚拟物体也能和现实物体交互,比如虚拟物体与现实物体产生遮挡关系、虚拟物体能够与现实物体发生碰撞。 Quest 头显能够通过它的视频透视技术(Video See-Through)看到现实中的环境,但是透视只是将原来虚拟世界的游戏背景替换成现实世界的图层,然后将虚拟物体叠加在现实世界的图层上。如果想要实现虚拟物体和现实物体的碰撞和遮挡,就要用上一些 MR 的技术。这方面 Meta 已经在不断完善它的 API 了。因为最近 Quest3 出了嘛,它有两个 RGB 彩色摄像头和一个深度传感器,透视的清晰度更高,并且能对周围场景进行扫描,对 MR 的支持肯定会更好,并且 Meta 在 Quest3 发布会上也着重强调了 Quest3 的 MR 体验,这说明 MR 在未来可能会是一个非常值得研究的方向。包括明年会出的Apple Vision Pro,也是注重MR体验。身为开发者,我们也可以提前做一些技术积累,应对未来快速发展的时代。

在这里插入图片描述

📕Quest 一体机开发主流 SDK

要想开发 XR 应用,我们需要使用一些 XR 开发的 SDK,也就是软件开发工具包。那么我们先来看一看目前市面上有哪些主流的用于开发 Quest 一体机应用的 SDK。本系列教程使用的是 Unity 引擎进行开发,因此我会列出一些 Unity 版本的 SDK。

在这里插入图片描述

首先是 OpenXR+XR Interaction Toolkit(XRI)的方案。这个 OpenXR 是什么东西呢?在 OpenXR 还没出现之前,XR行业发展的早期,不同的 XR 设备都维护着它们各自的 SDK,供开发人员制作出能在相应设备上运行的程序,因此开发者需要根据不同的 XR 设备厂商选择不同的 SDK 进行开发。但是如果在不同设备上移植同一套程序就比较麻烦了,因为可能会出现 A 厂商的 SDK 无法兼容到 B 厂商的设备上。这就会导致如果我想要使用不同设备的人都能体验到我开发的程序,就需要为每一种设备开发一个特定的程序版本。那么这显然是巨大的负担。而开发者希望 XR 行业能有一套统一的标准,只要编写一次代码,就能兼容所有的设备。这样开发者只要专注于程序开发本身,而不用在意设备间的差异。

而 OpenXR 就是为了简化 XR 开发而制定的一套标准。相当于在编写的 XR 应用程序和不同的硬件设备间新增了一个中间层,最上层是 XR 应用程序,最底层是硬件设备,而这两个层的中间夹了一个 OpenXR 层,它向上提供一套统一的开发 API,不同的开发引擎对该 API 进行二次封装,提供给 XR 应用开发者使用。而不同的设备厂商为硬件编写支持 OpenXR 标准的接口,使得中间层能够向下兼容对应的硬件设备。如今,越来越多的 XR 设备开始支持 OpenXR 标准,这意味着选用 OpenXR 进行 XR 设备的开发可以成为一种通用的方案。

在这里插入图片描述

而 XR Interaction Toolkit 是 Unity 官方提供的开发 VR/AR 程序的工具包。结合 Unity 中的 OpenXR 插件,就能开发 XR 应用了,并且理论上适用于所有支持 OpenXR 标准的头显。那么这套方案适用于开发 VR 手柄相关功能,比如移动,传送,转向,抓取,射线交互,点触交互,点触交互就比如直接用手去点击一个 UI 按钮。那么 XR Interaction Toolkit 的优点就是跨平台,易上手。但是目前来说一些复杂的功能需要自己实现,比如手部物理,抓取手势等功能。不过这个XR Interaction Toolkit 目前也是在不断更新,每次更新都会新加一些功能,也许在未来它会内置更多复杂的功能。

OpenXR+XR Hands 的方案是用来实现手势追踪的,OpenXR+Meta OpenXR Feature 的方案是用来实现 MR 的。但是 XR Hands 和 Meta OpenXR Feature 目前还处于早期开发阶段,提供的功能不是很多。

接下来是 Oculus Integration:

在这里插入图片描述

它是 Meta 自家的SDK。能够用于手柄功能的开发,手势追踪(包括抓取,点击,射线交互,识别手势,比如我摆出一个剪刀手,能被Quest识别出来),然后还有 MR 的开发。这款 SDK 提供的功能是挺多的,但是它也有一个缺点,就是 SDK 迭代速度很快,可能前一个版本中的一个组件到了下一个新版本,使用方法就发生了很大的改变。并且我感觉它的官方文档某些地方写的挺乱的,可能不易看懂。

除此之外,还有 UltimateXR,它也是一款比较好用的 XR 开发框架。(https://www.ultimatexr.io/)

还有这个 AutoHand,它是一款付费插件,具有非常优秀的手部物理交互系统。

📕Quest PCVR 开发主流 SDK

那么既然讲了 Quest 一体机开发的 SDK,我也顺带讲一下 PCVR 的一些主流的 SDK。首先这个 OpenXR+XR Interaction Toolkit 的方案也是适用的,然后还有像SteamVR,VRTK,
UltimateXR, Auto Hand,VR Interaction Framework,HurricaneVR,都是比较不错的选择。

在这里插入图片描述

📕新手入门开发的 SDK 推荐

最后总结一下,如果要开发 Quest 一体机应用,手柄功能的开发我推荐用 OpenXR+XR Interaction Toolkit 的方案,对于新手来说容易上手,并且它的相关教程目前是最多的。如果你想开发手势追踪或者 MR 的内容,目前我推荐用 Meta 自家的 Oculus Integration。如果要开发 PCVR,然后用 Quest 串流。我也推荐新手从 OpenXR+XR Interaction Toolkit 入手,如果想要实现更复杂的功能也可以尝试其他插件。

这篇关于Unity Meta Quest 开发导论:开发现状与主流 SDK的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/244132

相关文章

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程