Unity Meta Quest MR 开发教程:(一)混合现实 MR 透视 Passthrough 环境配置

这篇具有很好参考价值的文章主要介绍了Unity Meta Quest MR 开发教程:(一)混合现实 MR 透视 Passthrough 环境配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

📕教程说明

Meta Quest 一体机具有透视(Pass through)的功能。它通过 VST(Video See Through)技术,使用户能够透过头显看到现实中的场景,并且能将虚拟的物体融入于透视场景中,与用户进行交互。利用这个功能,我们可以开发一些混合现实 MR 应用,将虚拟和现实相互融合。

前期需要的一体机开发的环境配置可以参考这篇教程:Unity VR 开发教程: Meta Quest 一体机开发 (一) 环境配置

电脑操作系统:Windows

使用的 VR 设备:Meta Quest 2

使用的 Unity 版本:2021.3.5 LTS (这里推荐使用 2021 及以上的 LTS 版本)

Oculus Integration 版本:v54 (目前 v54 以上也适用)

官方文档:https://developer.oculus.com/documentation/unity/unity-passthrough/

注:本篇教程可能具有时效性,因为 Oculus 的 SDK 更新迭代得比较快,如果大家使用的 SDK 版本比我的新,在不方便查看官方文档的情况下也可以先试试本篇教程的配置步骤,如果发现教程过时,欢迎大家进行反馈,我也会及时进行更改说明,一切以官方文档为主。

最终实现效果:在透视下的现实场景中看到虚拟物体。

unity vr,# Unity Quest 一体机开发,unity,vr,mr


📕配置透视的串流调试功能

开启了这个功能后,就可以在设备与电脑串流的条件下运行支持透视的软件。这时候可以直接通过点击 Unity 编辑器中的运行按钮,在头显中看到透视的场景。这样就更加方便调试,不用每次打包到头显中运行。

配置步骤很简单:

  1. Quest 的系统版本要在 v37 及以上。
  2. Oculus 电脑客户端软件的版本要在 v37 及以上,并且确保设置-> Beta 测试版中的 “开发者 Runtime 功能” 和 “通过 Oculus Link 透视” 选项是开启的。
    unity vr,# Unity Quest 一体机开发,unity,vr,mr

📕第一步:设置 OVRManager

首先我们新建一个场景,删除场景中的 Main Camera。然后搜索 OVRCameraRig 这个 Prefab,将它拖到场景中。这个物体就相当于 XR 中的相机。

unity vr,# Unity Quest 一体机开发,unity,vr,mr

找到 OVRCameraRig 中的 OVR Manager 脚本,接下来需要做的步骤是:

1) 在 Quest Features 的 General 选项中,将 Passthrough Support 设为 Supported 或者 Required ,这样打包的应用就能开启透视功能。

2)勾选 Insight Passthrough 下的 Enable Passthrough。这样在应用启动时就会初始化透视的功能。如果不想在程序启动时就初始化,可以取消勾选 Enable Passthrough,然后在自己的脚本中通过代码设置 OVRManager.instance.isInsightPassthroughEnabled = true/false 来控制透视的开启和关闭,这里的作用相当于手动勾选或取消 Enable Passthrough。

unity vr,# Unity Quest 一体机开发,unity,vr,mr

另外,OVR Manager 中有个 Tracking Origin Type 参数需要注意一下,它相当于追踪的参考系,参数分为 Eye Level, Floor Level 和 Stage。

这三个参数的区别可以参考这篇文章:Unity VR:Oculus Integration 中 OVRManager 的 Eye Level,Floor Level,Stage 的区别

unity vr,# Unity Quest 一体机开发,unity,vr,mr


📕第二步:添加 OVRPassthroughLayer 脚本

接下来,我们在 OVRCameraRig 物体上添加 OVRPassthroughLayer 脚本,然后把 Placement 设为 Underlay:

unity vr,# Unity Quest 一体机开发,unity,vr,mr

Quest 中透视的现实场景相当于单独的一个图层,而我们的虚拟场景和虚拟物品相当于另外的图层。

当 Placement 设置成 Underlay 的时候,相当于透视的现实图层置于应用图层的最底端,这时候现实图层位于虚拟图层之下。可以理解为现实场景充当背景,虚拟物体叠加在现实场景上,也可以理解为虚拟物体会把现实物体遮挡住

当 Placement 设置成 Overlay 的时候,则反之。相当于现实图层置于应用最顶层,也就是现实图层位于虚拟图层之上,这个时候现实场景会把整个虚拟场景覆盖掉,我们只能看到现实场景,看不到虚拟物体。

因为我们想要在透视下的现实场景中看到虚拟物体,所以我们要选择 Underlay。

而位于 Placement 参数下的 Composition Depth 表示图层的深度,数值越小,越后渲染,也就是渲染在越前面。这个参数一般是用到多个透视图层的时候使用,因为 Quest 的透视 API 不仅能把整个图层变成透视场景,也就是你看到的是完全的现实世界,除此之外还能做到局部透视,比如在一个虚拟物体的表面添加透视图层,如下图所示:

unity vr,# Unity Quest 一体机开发,unity,vr,mr

而 Composition Depth 一般用于多个透视图层上,比如有一个深度为 0 的物体和一个深度为 1 的物体,会先渲染深度为 1 的物体,再渲染深度为 0 的物体,当这个物体放在一起时,深度为 0 的物体会遮挡深度为 1 的物体。

不过局部透视会放到未来的教程中介绍,这篇教程就不展开讨论了。


📕第三步:在场景中添加虚拟物体

我这里在 OVRCameraRig 物体前面添加了一个 Cube 方块:

unity vr,# Unity Quest 一体机开发,unity,vr,mr
但是如果这时候尝试运行程序,你会发现即使设置了 OVRPassthroughLayer 的 Placement 为 Underlay,自己还是看不到现实场景,只能看到虚拟场景。因为我们还有几个步骤要做。


📕第四步:删除场景中的天空盒

如果渲染了天空盒,因为我们之前设置过现实图层位于虚拟图层之下,所以天空盒的场景会覆盖掉现实场景。根据需求,我们想要在完全透视场景下,所以不需要渲染天空盒。

在 Unity 菜单栏选择 Window -> Rendering -> Lighting ,点击 Environment 选项,将 Skybox Material 设为 None。

unity vr,# Unity Quest 一体机开发,unity,vr,mr


📕第五步:设置相机

在 Hierarchy 面板中找到 OVRCameraRig/TrackingSpace/CenterEyeAnchor 这个子物体,它相当于我们的相机。

unity vr,# Unity Quest 一体机开发,unity,vr,mr

然后在 Inspector 面板中,将 Camera 组件的 Clear Flags 设为 Solid Color,然后将 Background 的 alpha 值设为 0,也就是将背景的透明度设为0。Background 的颜色决定了透视场景的颜色,如果设为黑色(RGBA 都是 0),则看到的是默认的透视颜色。因为我使用的是 Quest 2,所以如果我将 Background 设为黑色,我看到的就是 Quest 2 默认的黑白透视,如果是 Quest pro 或者之后拥有彩色透视的 Quest 设备,那么看到的应该就是彩色透视的场景(和现实中的场景颜色一样)。

unity vr,# Unity Quest 一体机开发,unity,vr,mr
unity vr,# Unity Quest 一体机开发,unity,vr,mr

现在,透视的环境配置已经完成了。

最终效果:

unity vr,# Unity Quest 一体机开发,unity,vr,mr

注:
1)因为之前我们在 OVRPassthroughLayer 脚本中设置了 Underlay,所以现实图层会位于虚拟图层的下方。当我们用现实的手伸进方块时,现实的手会被虚拟的方块遮挡。
2)因为 Meta 的隐私政策,在 Unity 编辑器中无法看到透视场景,但是在头显里是能正常显示的。

同时,在 Oculus/SampleFramework/Usage/Passthrough/Scene 文件夹下有官方提供的一些透视 Demo,大家可以研究一波。

unity vr,# Unity Quest 一体机开发,unity,vr,mr

但是需要注意的是,OVRCameraRig 的 OVRManager 脚本中的 Passthrough Support 需要确认选择了 Supported 或者 Required,才能在打包出来的程序中看到透视场景。

unity vr,# Unity Quest 一体机开发,unity,vr,mr文章来源地址https://www.toymoban.com/news/detail-663880.html

到了这里,关于Unity Meta Quest MR 开发教程:(一)混合现实 MR 透视 Passthrough 环境配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity Meta Quest MR 开发(四):使用 Scene API 和 Depth API 实现深度识别和环境遮挡

    此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区 。这是一个高质量 XR 社区,博主目前在内担任 XR 开发的讲师。此外,该社区提供教程答疑、及时交流、进阶教程、外包、行业动态等服务。 社区链接: Spatial XR 高级社区(知识星球) Spatial XR 高级社区

    2024年02月20日
    浏览(43)
  • [Unity][VR]Oculus透视开发图文教程1-Passthrough应用XR项目设置

    Oculus现在已向开发者公布了如何使用自己的设备Camera,本系列课程就来手把手地告诉你如何在Unity中使用这个特性。 第一步,既然用的是Quest的特性,那就需要先引入Quest的Unity开发SDK。并且完成基本的VR开发项目设置。 新建Unity项目后,在编辑器界面先点击Window,打开资源商

    2024年02月07日
    浏览(42)
  • [Unity][VR]透视开发系列3-Passthrough应用的真机测试方法

    视频讲解地址请关注我的B站。 专栏后期会有一些不公开的高阶实战内容或是更细节的指导内容。 B站地址: https://www.bilibili.com/video/BV1Zg4y1w7fZ/ 我还有一些免费和收费课程在网易云课堂(大徐VR课堂): https://study.163.com/provider/480000002282025/course.htm?share=2shareId=480000002282025 上一期

    2024年02月06日
    浏览(45)
  • [Unity][VR]透视开发系列4-解决只看得到Passthrough但看不到Unity对象的问题

    视频讲解地址请关注我的B站。 专栏后期会有一些不公开的高阶实战内容或是更细节的指导内容。 B站地址: https://www.bilibili.com/video/BV1Zg4y1w7fZ/ 我还有一些免费和收费课程在网易云课堂(大徐VR课堂): https://study.163.com/provider/480000002282025/course.htm?share=2shareId=480000002282025 上一期

    2024年02月07日
    浏览(37)
  • Unity Meta Quest 开发(一)导论:开发现状与主流 SDK

    此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区 。这是一个高质量知识星球 XR 社区,博主目前在内担任 XR 开发的讲师。此外,该社区提供教程答疑、及时交流、进阶教程、外包、行业动态等服务。 社区链接: Spatial XR 高级社区(知识星球) Spatial

    2024年02月04日
    浏览(54)
  • Unity Meta Quest 一体机开发(二):前期准备和环境配置

    ​ 此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区 。这是一个高质量知识星球 XR 社区,博主目前在内担任 XR 开发的讲师。此外,该社区提供教程答疑、及时交流、进阶教程、外包、行业动态等服务。 社区链接: Spatial XR 高级社区(知识星球) Spa

    2024年02月03日
    浏览(47)
  • Unity Meta Quest 一体机开发(十一):【手势追踪】远距离抓取

    此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区 。这是一个高质量 XR 社区,博主目前在内担任 XR 开发的讲师。此外,该社区提供教程答疑、及时交流、进阶教程、外包、行业动态等服务。 社区链接: Spatial XR 高级社区(知识星球) Spatial XR 高级社区

    2024年01月18日
    浏览(53)
  • Unity Meta Quest 一体机开发(十三):【手势追踪】自定义交互事件 EventWrapper

    此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区 。这是一个高质量 XR 社区,博主目前在内担任 XR 开发的讲师。此外,该社区提供教程答疑、及时交流、进阶教程、外包、行业动态等服务。 社区链接: Spatial XR 高级社区(知识星球) Spatial XR 高级社区

    2024年01月19日
    浏览(50)
  • 企业直播MR虚拟直播(MR混合现实直播技术)视频介绍

    到底什么是企业直播MR虚拟直播(MR混合现实直播技术)? 企业直播MR虚拟直播新玩法(MR混合现实直播技术)   我的文章推荐: [视频+图文] 线上研讨会是什么,企业对内对外培训可以用线上研讨会吗? [图文] 企业直播对网络带宽有什么要求? [图文]OBS如何实现毫秒级超低

    2024年02月13日
    浏览(34)
  • Unity Meta Quest 一体机开发(九):【手势追踪】通过录制抓取手势实现自定义抓取姿势

    此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区 。这是一个高质量 XR 社区,博主目前在内担任 XR 开发的讲师。此外,该社区提供教程答疑、及时交流、进阶教程、外包、行业动态等服务。 社区链接: Spatial XR 高级社区(知识星球) Spatial XR 高级社区

    2024年01月20日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包