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

news2024/12/23 17:31:05

文章目录

  • 📕开发平台分类
  • 📕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 入手,如果想要实现更复杂的功能也可以尝试其他插件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1110125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【GCN】Semi-Supervised Classification with Graph Convolutional Networks

GCN代码详细解读 如何运行代码详解utils.py GCN的不足[6]Reference 基于谱分解的经典方法代表之一:GCN, ICLR2017 Paper Code(pytorch) 如何运行 先看整个代码文件的结构(运行过的): 运行的话: 首先一键安装需要的库…

VS2019编译一个带qrc项目时出现的问题

问题 跑中科大付老师的一个参数化的代码,原来的项目可能是用VS2015写的,编译的时候报错 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 MSB8066 “surfacemeshprocessing.qrc”的自定义生成已退出,代码为 3。 Surface_Mesh C:\Program …

全志A40i PRREMPT-RT Linux平台搭建IgH环境

1、编译安装内核 参考创龙开发板官方文档,在menuconfig中把gmac设置成M,方便卸载原始gmac驱动,然后加载优化后的实时网卡驱动 2、编译IgH 把IgH主站代码放到开发板上,进行配置编译(配置和编译可以参考网上ubuntu…

大鼠药代动力学(PK参数/ADME)+毒性 实验结果分析

在真实做实验的时候,出现了下面真实测试的一些参数,一起学习一下: 大鼠药代动力学: 为了进一步了解化合物 96 的药代动力学性质,我们选择化合物 500 进行 SD大鼠药代动力学评估。 经静脉注射和口服给药后观察大鼠血药…

一些经典的神经网络(第18天)

1. 经典神经网络LeNet LeNet是早期成功的神经网络; 先使用卷积层来学习图片空间信息 然后使用全连接层来转到到类别空间 【通过在卷积层后加入激活函数,可以引入非线性、增加模型的表达能力、增强稀疏性和解决梯度消失等问题,从而提高卷积…

信息时代下,法律行业如何进行互联网推广

随着数字化时代的来临,法律行业也逐渐意识到互联网营销的优势,也有不少律所来找媒介盒子进行推广,那么今天媒介盒子就来跟大家聊聊,信息时代下,法律行业如何进行互联网营销。 一、 定位目标受众 定位目标受众是法律行…

拥抱国产信创化,思迈特与云和恩墨完成产品兼容认证

近日,思迈特软件与云和恩墨(北京)信息技术有限公司(简称“云和恩墨“)进行了联合测试,并顺利完成产品兼容互认证。 经评测,思迈特商 业智能与数据分析软件 Smartbi 系列 产品与云和恩墨 自主…

【vue3】注册全局组件

//main.tsimport CardVue from ./components/Card.vueconst app createApp(App) app.component(Card,CardVue)

coreldraw2024版本有哪些新增功能?

有小伙伴在用电脑查找软件程序的时候,看到了一款叫cdr软件的应用,自己之前没接触过,不知道cdr是什么软件?cdr软件是干什么的?十分好奇。其实它是一款平面设计软件,下面就给大家介绍下相关的cdr软件的知识。…

【java】【重构一】分模块开发设计实战

目录 一、创建项目 1、先创建一个空项目 2、设置项目SDK等 二、创建父模块 选择springboot 1、创建父模块parent 2、删除多余文件,只保留pom.xml 3、修改pom.xml 4、将部分公共依赖加入到pom 三、创建实体类子模块entity 1、创建实体类子模块entity 2、…

STM32CubeMX和Keil uVision5软件

目录 关系定位:合作关系STM32CubeMXKeil uVision5综上所述Q1:STM32CubeMX生成的初始化代码和配置文件为什么还需要Keil uVision5进行进一步的开发和调试Q2:二者如何配合最后生成可执行文件 关系定位:合作关系 STM32CubeMX和Keil uVision5是两…

【C++特殊类的设计】

目录 一、请设计一个类,不能被拷贝二、请设计一个类,只能在堆上创建对象三、请设计一个类,只能在栈上创建对象四、请设计一个类,不能被继承五、请设计一个类,只能创建一个对象(单例模式)5.1饿汉模式5.2懒汉模式 一、请…

那里可以自学C语言?

那里可以自学C语言? 我个人的习惯,学一门新的编程语言一定是需要目的的。 也就是学这个语言是干什么? 单纯的上学学习C语言一般都是 工科的专业作为专业课而开设的学科,这种很多都是使用谭浩强最近很多小伙伴找我,说想要一些c语言资料&…

数字化体系如何帮助企业拓展裂变增长渠道?数字化营销体系构建?

在当前的商业环境中,数字不仅仅是数据,还代表着技术和资产。企业数字化正是将数据转化为资产的过程。从信息化时代到数字化时代,企业逐渐将业务和组织、管理和创收都朝着在线化和数据化的方向发展,特别是企业的业务板块。数字化营…

图纸管理系统作用包括哪些?图纸管理系统有何作用?

图纸管理系统在设计制造行业中起着重要的作用,让企业的图纸管理变得更加便捷、更加高效,实现无纸化运作,提高工作效率。 彩虹图纸管理系统 集中管理和存储:图纸管理系统可以集中管理和存储所有图纸文件,包括2D图、3D图…

找出字符串中第一个匹配项的下标

题目链接 找出字符串中第一个匹配项的下标 题目描述 注意点 haystack 和 needle 仅由小写英文字符组成 解答思路 使用KMP算法,相比于普通地将整个字符串分成多块大小为needle.length()的子串找到第一个与needle匹配的子串,其可以在判断出任意一个子…

“当当平台关键字搜索API:轻松实现高效购物,获取海量商品信息!“

当当平台关键字搜索API可以让开发者通过API接口在当当平台上进行关键字搜索,从而获得商品列表。以下是使用当当平台关键字搜索API的一般步骤: 在当当开放平台注册账号,创建应用,获取API使用的App Key。根据当当开放平台的文档&am…

Linux系统的特点以及年轻人如何获取第一个Linux系统

由新闻想到的 新闻一:政府机构 5000 万台电脑将替换为国产 Linux ! 由这个新闻想到的,如果中国的所有个人、企业、政府把电脑系统都换成linux或者是国产操作系统,那将是怎样的一种景象!? 新闻二&#xf…

Spring Cloud 之 GateWay简介及简单DEMO的搭建

(1)Filter(过滤器): 和Zuul的过滤器在概念上类似,可以使用它拦截和修改请求,并且对上游的响应,进行二次处理。过滤器为org.springframework.cloud.gateway.filter.GatewayFilter类的…

竞赛选题 深度学习人体语义分割在弹幕防遮挡上的实现 - python

文章目录 1 前言1 课题背景2 技术原理和方法2.1基本原理2.2 技术选型和方法 3 实例分割4 实现效果5 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习人体语义分割在弹幕防遮挡上的应用 该项目较为新颖,适合作为竞…