Pico 4 Enterprise(企业版)与Unity的交互-有线串流调试篇

  入手了Pico 4 E做VR开发,谁知入了天坑...根据官方文档,尝试了串流助手、企业串流、PICO Developer Center,陷入了各种版本问题、环境问题的陷阱。而且Pico4E的OS自24年12开始就不再更新,头盔中预装的企业串流版本也较低,网上与Pico4E相符的解决方案少之又少……总之折腾了好几天,终于完成了万里长征的第一步——解决了有线串流连接的问题,即使用有线串流实时预览Unity生产的VR场景。(为什么使用有线串流呢?条件限制,路由器太老,无法使用无线。)

  下面开始详细记录串流连接的过程:

目录

1. 基本情况

2. 电脑端安装软件

3. 使用“企业串流”和“SteamVR”串流连接头盔和电脑

4. Unity安装插件

5. Unity中的环境设置

6. 建立测试场景

7. 运行测试场景

8. 其他问题


1. 基本情况

  (1)大致的思路是:Unity->SteamVR->企业串流->USB3.0连接头盔

  (2)电脑端的情况:

            操作系统:Windows10或Windows11

            显卡:NVidia 3060

            Unity:2023.2.20f1c1

  (3)头盔端的情况:

             硬件:Pico 4 Enterprise(企业版)

             操作系统版本:V5.9.9 (无法更新)

             企业串流版本:V1.2.9 (无法更新)

  (4)连接线情况:使用TypeC转USB3.0线,插在电脑USB3.0口(蓝色)

2. 电脑端安装软件

  (1)安装“企业串流”:

    有些教程介绍的“Pico互联”、“Pico游戏串流助手”,以及最新的“PICO Developer Center”等软件,都与头盔中的串流软件版本有冲突,试过下载各种历史版本都不行,最后还是老实安装“企业串流”。下载地址为:企业串流下载

  找到适合的版本下载并默认安装。

  (2)安装Steam VR:

  

     先要安装Steam,下载地址为:Steam软件下载,点击“安装STEAM”默认安装。安装完成后注册账号并登录。

     之后选择“库”->搜索“steamvr"->安装 软件会自动安装

3. 使用“企业串流”和“SteamVR”串流连接头盔和电脑

  (1)打开“企业串流”软件,选择USB连接方式

  (2)根据“企业串流”软件提示,将头盔使用Type-C转USB3.0连接到电脑,并点击“下一步”

  (3)VR头盔端也需要打开“企业串流”

  (4)“企业串流”软件会自动启动SteamVR,连接成功后,会显示如下画面

  SteamVR会显示连接成功的绿色图标

  头盔中会显示SteamVR的界面

4. Unity安装插件

   (1)在Hub中安装Unity编辑器之时,需要添加Android模块

  (2)新建工程:普通工程即可

  (3) 下载安装插件:Window->Package Manager->搜索“XR”,搜索出来的XR Interaction ToolkitOpenXR Plugin都要安装;

  在安装XR Interaction Toolkit时会出现一个警告窗口,直接选择“Yes”;

  XR Interaction Toolkit安装完成后,再下载一个示例场景,以便于头盔和手柄的设置;

5. Unity中的环境设置

  (1)打开Unity菜单栏中的Edit->Project Settings,设置XR Plug-in Management,勾选“OpenXR”;

  安卓部分也需要勾选一下。注* (亲测)这里的OpenXR如果不勾选,手柄激光线无法使用。

  (2)设置下面的OpenXR项,点击“+”号,这里没有Pico相关的项目,以“Oculus Touch Controller Profile”代替;最上方的渲染模式设置为“Multi-pass”;

  (3) 暂时先设置这些,因为我目前只需要实现串流调试。如果需要将场景文件传输到头盔中,脱离电脑运行VR场景,那还需要对Android平台的设置。

6. 建立测试场景

  (1)建立一个平面Plane,用于承载第一人称控制器(有重力);

  (2)在Hierarchy中空白处点右键->XR->XR Origin(VR),建立了“XR Interaction Manager”和“XR Origin (XR Rig)”两项;

  (3)在XR Origin (XR Rig)上点右键->XR->Locomotion System,在XR Origin (XR Rig)下面建立一个Locomotion System

  (4)配置手柄:在Hierarchy中选择“Left Controller”,按下面的这个设置按键,在弹出窗口中选择“XRI Default Left Controller”设置文件,右手柄“Right Controller”也使用类似的设置方式,不同的是右手柄的设置文件选择“XRI Default Right Controller”;

  需要注意的是设置完成后,“Left Controller”中所有的设置项目都有“Left”,“Right Controller”中所有的设置项目都有“Right”

  (5)配置Locomotion System:对于用于实现旋转功能的"Snap Turn Provider(Action-based)"脚本,点击设置按钮,选择“XRI Default Snap Turn”

  再将其中的“System”一项设置为“Locomotion System”,并取消勾选其中的Left Hand Snap Turn Action,因为我们习惯使用右手柄的摇杆实现转向;

  点击下面的“AddComponent”按钮,添加ConstrainedMoveProvider(Action-based)脚本,这个脚本控制的是持续移动

  选择同样的默认设置文件:

  与设置转向脚本一样,“System”一项设置为“Locomotion System”,并且取消“Right Hand Move Action”,让右手柄只执行旋转的功能;

  最后,Locomotion System中的“Locomotion System”脚本,“XR Origin”一项设置为6.(2)中建立的这个“XR Origin (XR Rig)”,也就是第一人称控制器本身;

7. 运行测试场景

  保持3.中的“企业串流”和“SteamVR”的连接,并且将平台切换至Android,连接上设备。

  这样基本就可以了,不需要使用这里的Build或者Build And Run ,直接在Unity编辑器中运行Unity场景,就能从头盔中看见场景,并且可以使用手柄摇杆控制视角旋转和平移;如果在“SteamVR”的菜单中选择“显示VR视图”,就能实时在电脑端看到VR头盔中的画面。

  以上基本完成了有线串流调试Pico4E的方法,但有时运行过程还会产生一些问题。

8. 其他问题

  虽然之前测试成功了,但是有时不经意改变环境后,会有连接不上、运行错误、手柄失去作用等等问题,以下有几个我自己遇到的常见问题:

  (1)一些基本错误,可以自动修复:在Project Settings->XR Plug-in Management->Project Vlidation中,可以看到系统的一些报错,直接点击“Fix All”按钮。有些问题可以自动修复,有些问题会有修复的提示;

  (2)密码问题:在Project Settings->Player->安卓平台->Publishing Settings中,需要设置发布的密码,这个我也不太清楚,跟着官方文档设置即可:签名关联的 APK 数量超出限制如何处理?

  (3)Pico平台的设置:菜单栏中的PICO菜单,这个只要是安装了PICO Integration SDK都会出现在这里,需要设置一下设备号,这个设备号可以照抄File->Build Setting->Android->Run Device中的设备号(括号内的号码)

  

  以上所有的设置基本覆盖了,我在运行过程中的问题,不过难保之后会有新的问题产生。

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

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

相关文章

redis里多线程的应用具体在哪些场景

Redis 6.0 引入的多线程I/O,​特指用于处理网络数据的读取(read)和写入(write)/解析(parse)的并行化,而绝非将命令的执行(真正的数据操作)变成多线程。这是一…

DI-GAN:基于深度学习的动态形变多模光纤透反射光控制

DI-GAN:基于深度学习的动态形变多模光纤透反射光控制 1 论文核心概念 本文提出了一种名为 DI-GAN(Deep Imaging Generative Adversarial Network) 的持续深度学习框架,用于动态形变多模光纤(MMF) 的光场控制。该框架能够同时利用透射和反射信息,实现对光纤末端光场的实…

【深度学习新浪潮】具身智能中使用到的世界模型是什么?

在具身智能中,世界模型(World Model) 是智能体对物理环境的内在“认知地图”,它通过学习环境的动态规律(如物体运动、物理交互、因果关系等),实现对未来状态的预测、对过去状态的反推,以及对未观测状态的补全。其核心价值在于:让智能体无需频繁与真实环境交互,就能在…

Qt_UI界面的设计

一、设置UI窗口大小二、接收框只读三、下拉选项双击添加选项1是添加,2是调整顺序四、标签字体居中字体大小五、发送框六、按钮七、透明框(可以放标签或图片啥的)设置最小宽度八、水平布局九、垂直布局十、弹簧(方便给水平垂直布局…

FTP文件传输服务

一、FTP协议、服务器FTP:文件传输协议(用于网络文件双向传输的应用层协议)特点:最广泛、最底层、较简单,但是明文传输;适用于较大文件的传输1.常见客户端、服务器客户端:WINSCP or filezilla&am…

Nginx运维之路(Docker多段构建新版本并增加第三方模块)

喜大普奔,前两天发现Nginx竟然自带支持了ACME功能,让我很想测试一下,但是发现手头没有资源让我测试,忽然我想到可以用docker来构建nginx然后测试ACME功能,在这个过程中发现原来官方Nginx镜像并没有集成ACME插件&#x…

DrissionPage 优化天猫店铺商品爬虫:现代化网页抓取技术详解

概述在网络数据采集领域,传统的爬虫方法通常面临反爬机制、动态内容加载和效率低下等挑战。本文将以天猫店铺商品爬虫为例,详细介绍如何从传统的 Requests 库迁移到更现代化的 DrissionPage 解决方案,实现更高效、稳定的数据采集。----------…

pytest并发测试,资源问题导致用例失败解决办法

遇见的问题: 测试用例使用thrift资源和redis资源,单独运行case没有问题,但是使用并发pytest-xdist(-n 10 和 --distloadscope)运行失败原因: 测试用例间存在共享资源竞争(如 Redis、Thrift 连接…

C 盘又满了?6 个「零风险清理法」+5 款神器,让电脑瞬间多出 100GB 空间

你是否遇到过这样的场景:正在赶工写报告,突然弹出「C 盘存储空间不足」的警告;想安装新软件,却因为 C 盘爆红而反复失败;甚至电脑越来越卡,开机要等 5 分钟,打开文件夹都要转圈…… 作为系统盘…

Android 项目:画图白板APP开发(四)——笔锋(单 Path)

上一章讲解了如何通过多个 Path 叠加形成笔锋效果,还有另外的方式实现笔锋,并且只需要一条Path就可以了。在讲解具体方案之前,我们需要了解一个有意思的工具 PathMeasure ,这是一个非常强大且实用的工具,常用于高级动画…

从C++开始的编程生活(7)——取地址运算符重载、类型转换、static成员和友元

前言 本系列文章承接C语言的学习,需要有C语言的基础才能学会哦~ 第7篇主要讲的是有关于C的取地址运算符重载、类型转换、static成员和友元。 C才起步,都很简单 目录 前言 取地址运算符重载 const成员函数 基本语法 特点 取地址运算符重载 类型转换…

SQL 入门指南:排序与分页查询(ORDER BY 多字段排序、LIMIT 分页实战)

在 SQL 查询中,我们常需要 “按报名时间先后看活动名单”“只看第 2 页的活动报名数据”—— 这些需求靠基础查询无法实现,而ORDER BY(排序) 和LIMIT(分页) 就是解决这类问题的核心工具。今天我们用 “校园…

jodconverter将word转pdf底层libreoffice的问题

近期项目中使用了word转pdf的功能&#xff0c;其中借助了远程服务的jodconverter来处理。 <dependency><groupId>org.jodconverter</groupId><artifactId>jodconverter-remote</artifactId><version>4.4.2</version> </dependen…

【为YOLOv11Seg添加MFC界面】详细指南

要将现有的YOLOv11Seg代码集成到MFC界面中,我们需要创建一个MFC应用程序框架,并将现有的检测逻辑封装到其中。以下是详细步骤: 1. 创建MFC应用程序框架 1.1 使用Visual Studio创建MFC项目 打开Visual Studio,选择"创建新项目" 选择"MFC应用程序"模板…

机器学习03——线性模型(多元线性回归、对数线性回归、二分类、线性判别分析)

上一章&#xff1a;机器学习02——模型评估与选择 下一章&#xff1a;机器学习04——决策树 机器学习实战项目&#xff1a;【从 0 到 1 落地】机器学习实操项目目录&#xff1a;覆盖入门到进阶&#xff0c;大学生就业 / 竞赛必备 文章目录一、线性模型的基本形式&#xff08;一…

qt QLineSeries详解

1、概述QLineSeries是Qt Charts模块中的一个重要类&#xff0c;用于绘制折线图。它是QXYSeries的实现类&#xff0c;将信息显示为由直线连接的一系列数据点。该类为QAbstractSeries的子类&#xff0c;因此可以通过该类来访问QAbstractSeries的所有公共方法和属性。2、重要方法c…

你再也找不到更详细的3DGS教程了 —— 一万九千字长文解析3DGS

参考: https://www.bilibili.com/video/BV1MF4m1V7e3/ https://blog.csdn.net/2401_86810419/article/details/148811121 https://www.bilibili.com/video/BV1cz421872F?t=233.9 https://wuli.wiki/online/SphHar.html https://zhuanlan.zhihu.com/p/467466131 特别指出…

Python,遗传算法与神经网络架构搜索:基于DEAP的自动模型设计

引言&#xff1a;当进化论遇见深度学习——自动化的黎明在深度学习的蛮荒时代&#xff0c;我们是“手工匠人”。我们依靠直觉、前辈的经验&#xff08;ResNet 为什么是152层而不是153层&#xff1f;&#xff09;、大量的试错以及那么一点点玄学&#xff0c;在架构的黑暗森林中摸…

Vue框架技术详解——项目驱动概念理解【前端】【Vue】

Vue3框架 是前端渲染框架浏览器向服务器第一次发送请求&#xff0c;就会将所有页面的样式全部返回到浏览器vue中会将所有js文件最后打包成一个js文件&#xff0c;当前访问其中一个页面时&#xff0c;其他页面的样式也已经返回到浏览器中了&#xff0c;下次切换页面时&#xff…

HTML 网页静态托管 API 接口文档(可集成到智能体Agent)

HTML 网页静态托管 API 接口文档&#xff08;可集成到智能体Agent&#xff09; 接口概述 本接口用于将HTML代码转换为可访问的网页&#xff0c;支持通过API密钥进行身份验证。 API 密钥申请地址&#xff1a; https://www.cuobiezi.net/user/api_keys/apply API接口信息 接…