问题标签 [windows-mixed-reality]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
420 浏览

opencv - Microsoft HoloLens Spectator View Rig - 使用与文档所述不同的相机

您能否将 USB 摄像头用于 Spectator View 装备并覆盖 OpenCV 用于获取摄像头馈送的脚本之一?

我认为这是关于 Microsoft HoloLens 支持的旁观者视图的第一个 StackOverflow 问题,因为我检查过一次,看看是否有其他问题在这里谈论它,但看起来不像。

无论如何,根据此处的文档,要在部署到多个 Microsoft HoloLens 的基于 Unity 的 UWP 应用程序上启用旁观者视图,我需要从四种不同的方式中选择一种来从摄像头捕获实时视频源:

  • 开放CV 3.2
  • DeckLink 采集卡
  • Elgato 采集卡
  • 佳能 SDK

在这个旁观者视图设置中,我有一个根据保密协议的项目,我使用的是 OpenCV 3.2。我使用的是联想 ThinkPad 笔记本电脑作为 Spectator View 的集线器。

具体来说,它运行 Unity 编辑器,该编辑器包含我需要在 Inspector 中查看的 Spectator View Manager 组件,以便构建、安装和启动我拥有的两个 HoloLens 耳机将用于查看共享的锚定全息图的应用程序空间放置。编辑器还具有合成器界面,我需要将摄像机看到的内容与 Unity 场景所必须的虚拟摄像机重叠,以创建输出到投影仪或电视机的视频源。最后,我有一个来自 Microsoft 的混合现实工具包的可执行文件,称为共享服务,它基本上运行一个服务器程序来动态交换全息图的变换,就好像这些是在真实环境中放置的一样。

现在,联想 ThinkPad 无法接入任何采集卡,因为没有内部扩展端口。笔记本电脑没有HDMI输入端口;只输出。因此,当我开始在 Unity Editor 上运行应用程序时,我确实在 Compositor 界面中获得了视频输入和 Unity 视图输入,但视频输入来自 Lenovo ThinkPad 提供的内置摄像头。我想要做的是使用不同的相机,最好是可以使用 USB 连接到我的笔记本电脑的 DSLR 相机。

通过使用 OpenCV 3.2 作为我需要的库中的主要依赖项,我可以修改它接受来自 USB 摄像头的视频流的脚本之一吗?

0 投票
1 回答
255 浏览

session - Microsoft HoloLens:混合现实 250 - 没有会话可供一个 HoloLens 加入另一个托管它的 HoloLens

今天早上,我正在学习混合现实 250 教程。我坚持让一个 HoloLens 加入另一个 HoloLens 当前托管的会话,因为 UIContainer 预制件中应该包含托管会话信息的可选小部件丢失了。

我在那里遵循了所有必要的步骤。它确实通过 USB 成功部署。

正如Windows Mixed Reality 开发者论坛上的一篇文章所写的那样,软件本身的部署方式并不重要。是软件本身决定了两个或多个 HoloLens 耳机如何相互共享全息图。

它们都通过 Wi-Fi 连接到同一个网络。在 One HoloLens 上,通过 USB 部署并启动它[通过在 Visual Studio 2017 的“调试”菜单中选择“开始而不调试”],我凝视着“开始”按钮,然后在其上做一个空中点击手势以启动会话。正如预期的那样,演示全息图确实出现在我面前,当我用光标在它上面进行空中点击时,我可以用我的目光四处移动它并看到空间映射三角形。

在另一个 HoloLens 上,我通过 USB 部署它并通过单击 [Start without Debugging] 启动它。该应用程序确实会加载,但我没有在“可用会话”列表中看到其他 HoloLens 正在运行的托管会话选项。甚至它下面的加入按钮也有完全灰色的文本。

我不明白为什么我不能加入客户端 HoloLens 上的会话,即使它在同一个网络上。我的两个同事告诉我,这可能与网络本身有关,但我不确定,因为可能与 HoloLens 耳机本身或我正在尝试部署解决方案的笔记本电脑有关. 有人进一步告诉我,我可能需要一个路由器,但我不太确定。

我按照原样按照设置的步骤进行操作。

两款 HoloLens 耳机上的 Windows Holographic 版本为 10.0.14393.2007 和 10.0.14393.448。我不知道更新版本是否会有所作为。

此处的最终目标是查看遵循混合现实 250 是否对 NDA 下的项目有用,我们希望将其部署到 HoloLens 并启用旁观者视图。

我是一名大学生,这是我即将完成的实习的最后一周。

0 投票
2 回答
619 浏览

c# - 如何调试在调试中运行的程序,构建和部署没有错误,但 UnityPlayer.dll 中出现错误?

我正在 Unity 2017.4 中开发混合现实工具,该项目通过编辑器中的远程仿真和编辑器本身在 Hololens 上运行,该项目从 Visual Studio 2017 构建并部署到模拟器和设备。但是当程序运行时UnityPlayer.dll 抛出两个断点之一,0x0000003 或 0x0000005。这是我的调用堆栈:

UnityPlayer.dll!623d51fb() 未知

[下面的帧可能不正确和/或丢失,没有为 UnityPlayer.dll 加载符号]

UnityPlayer.dll!623d5703() 未知

UnityPlayer.dll!623d58d7() 未知

UnityPlayer.dll!61b1d66d() 未知

...

UnityPlayer.dll!630b22e2() 未知

UnityPlayer.dll!630b2444() 未知

UnityPlayer.dll!630bed92() 未知

[外部代码]

它还说,当抛出这些错误并且我将调试器设置为混合或本机时,找不到 UnityPlayer_UAP_x86_debug_dotnet.pdb。在管理它只是抛出这 2 个错误,目前 0x0000005 似乎更频繁地发生。

感谢 Josh Peterson 的评论,这里有一个希望更好的调用堆栈:

UnityPlayer.dll!OutOfMemoryError() 未知

UnityPlayer.dll!MemoryManager::Allocate(unsigned int,unsigned int,struct MemLabelId const &,enum AllocateOptions,char const *,int) 未知

UnityPlayer.dll!MemoryManager::Reallocate(void *,unsigned int,unsigned int,struct MemLabelId const &,enum AllocateOptions,char const *,int) 未知

UnityPlayer.dll!realloc_internal(void *,unsigned int,unsigned int,struct MemLabelId const &,enum AllocateOptions,char const *,int) 未知

UnityPlayer.dll!dynamic_array::reserve(unsigned int) 未知

UnityPlayer.dll!DecompressSubprogramBlob() 未知

UnityPlayer.dll!Shader::Transfer >(class StreamedBinaryRead<0> &) 未知

...

UnityPlayer.dll!Platform::Details::__abi_FunctorCapture,void,struct Windows::Foundation::IAsyncAction ^>::Invoke(struct Windows::Foundation::IAsyncAction ^) 未知

UnityPlayer.dll!Windows::System::Threading::WorkItemHandler::[Windows::System::Threading::WorkItemHandler::__abi_IDelegate]::__abi_Windows_System_Threading_WorkItemHandler___abi_IDelegate____abi_Invoke(struct Windows::Foundation::IAsyncAction ^) 未知

threadpoolwinrt.dll!734c4c6f() 未知

[下面的帧可能不正确和/或丢失,没有为 threadpoolwinrt.dll 加载符号]

[外部代码]

0 投票
0 回答
118 浏览

c# - HoloLens 应用程序:一旦共享会话开始,HandDraggable.cs 脚本就会对非共享全息影像无响应

在使用 Unity 2018.1.1f1 和混合现实工具包开发的混合现实应用程序中,我有两组全息图:

  • 共享全息图(与其他用户共享的实例)
  • 本地全息图(每个用户的特定实例)

本地全息图和共享的全息图附加了 HandDraggable.cs 脚本,以便用户可以通过轻敲和手势重新定位每个全息图。

现在。当用户还没有连接到共享服务时,HandDraggable.cs 脚本可以正常工作;这意味着用户可以点击全息图并按预期移动它。

但是,一旦用户连接到共享服务,HandDraggable.cs 脚本就会停止仅在本地全息图上工作。这意味着当用户在空中轻敲非共享全息图然后尝试移动它时,全息图不会移动。

奇怪的是,这个问题不会影响共享的全息图,这些全息图可以被用户轻拍并按预期移动。

在下图中,场景层次结构与托管 HandDraggable.cs 脚本的“Handle”游戏对象一起显示,该脚本具有对父游戏对象变换的引用。

附加了 HandDraggable.cs 的 GameObject

问题:为什么当共享会话开始时,HandDraggable.cs 对非共享全息影像无响应?

0 投票
1 回答
535 浏览

toolkit - 使用 Holotoolkit 滑块的值

我刚刚开始使用混合现实工具包(以前的 Holotoolkit),我正在尝试使用滑块。

所以我用一个 3DTextPrefab、一个按钮和一个滑块制作了一个场景。我编写了一个脚本并将其附加到 3DTextPrefab。这个脚本是

在按钮中,有“交互式”脚本(默认情况下),所以我将 3dTextPrefab 作为对象添加到OnSelectedEvents列表中并选择了它的Click功能。

每次单击按钮时都会这样做,它会调用 Prefab 脚本的单击函数。到目前为止一切顺利。

我试图用滑块做类似的事情,所以我将预制件作为对象添加到Slider Gesture Control脚本中OnUpdateEvent并选择了它的setWaitTime功能。

我的问题是,该setWaitTime函数有一个参数,我可以在检查器中看到它。此参数必须是滑块的实际值。

您如何获得滑块的实际值以将其放在那里?

0 投票
1 回答
323 浏览

augmented-reality - SensorStreamViewer,HoloLensForCV:“初始化媒体捕获失败:访问被拒绝。”

我试图从 获取传感器流HoloLens,所以我使用了HoloLensForCV. (https://github.com/Microsoft/HoloLensForCV

首先,我检查了该SensorStreamViewer项目是否有效,但几天后,我更新HoloLens了它然后它不起作用。我收到的错误是Access is Denied

HoloLens 相机视图捕获

HoloLens 隐私摄像头捕获

VS 捕获中的网络摄像头功能

而且,我猜错误发生在这部分(SensorStreamViewer.xaml.cpp)。

当我启动“ComputeOnDevice”等其他项目时,我可以看到一个警告消息窗口,询问我是否允许访问相机。但是,当我启动“SensorStreamViewer”时,我没有看到任何询问相机访问权限的警报消息。

我开始调试,并遇到此错误消息。

在 SensorStreamViewer.exe 中的 0x772C3332 处引发异常:Microsoft C++ 异常:Platform::AccessDeniedException ^ 在内存位置 0x0180E680。HRESULT:0x80070005 访问被拒绝。WinRT 信息:所需的设备功能尚未在清单中声明。

我怎么解决这个问题?

0 投票
1 回答
53 浏览

c# - Windows 混合现实 - AttachToController

所以我使用 AttachToController 脚本来附加一个浮动在控制器顶部的窗口——效果很好。在调用窗口的脚本中,我找出了哪只手按下了控制器的菜单按钮并适当地设置了手型字段(左或右)。我要解决的问题是:假设用户单击右侧控制器的菜单按钮,然后单击左侧菜单按钮。我遇到的问题是,即使我更改了惯用手字段,窗口仍然显示为附加到正确的控制器。

需要明确的是,如果用户首先单击左侧控制器菜单按钮,则窗口始终位于左侧,右侧控制器也是如此。我想要的是让窗口移动到使用的任何控制器。

0 投票
0 回答
336 浏览

unity3d - 导入FBX模型时HoloLens崩溃的问题

概述

我在开发基于 HoloLens 环境的软件时遇到了一个奇怪的问题。

我在 Unity 上构建了一个项目并导入了混合现实工具包 (MRTK) 包。按照官网的说明,我将 FBX 模型从 City Engine 导出到 HoloLens,Unity 控制台没有提示任何错误。

那么问题来了,当我使用VS 2017在Hololens中调试提议的程序时,HoloLens System就终止了,HoloLens的界面显示如下信息:“trying to map your around”(图1)。

在此处输入图像描述

2018.11.15 更新

我重建了这个项目并导出到 Hololens Emulator,发生了这个错误。

Hololens Emulator 中的结果 显示图片


但是,我注意到当 HoloLens 崩溃时 Unity 控制台没有显示任何错误。所以我做了以下测试来解决这个问题:

1 基于这个项目,我把所有的脚本和其他模型都去掉了,只留下MRTK配置的模型和场景(相机、光标、输入模块)。这没用。

2 基于这个项目,我用示例CUBE模型替换了FBX模型,其他保持不变。当我将修改后的项目发布到 HoloLens 时,没有出现这样的问题。

3 最后,我尝试将MRTK包去掉,只留下FBX模型,将release模型编译到Windows平台。程序运行正常,没有报错。

FBX 模型的大小约为 27 MB(图 2):

在此处输入图像描述

这些问题是HoleLens和FBX模型不兼容造成的吗?

我怎么解决这个问题?

Unity 编辑器版本

2017.2.1f1

混合现实工具包发布版本

2017.2.1.4

0 投票
1 回答
763 浏览

unity3d - 当图像目标丢失 vuforia-Hololens 时,游戏对象不会破坏

我正在为 hololens 开发一个带有 vuforia 和 unity 的 AR 应用程序。我有一些画布组件在图像目标丢失时必须被销毁。我使用 defaulttrackableeventhandler 用 gameobject.setactive(false) 销毁那些对象;在跟踪丢失的功能。同样的应用程序适用于 android 手机,但不适用于 hololens 当为 UWP 构建时,即使在播放模式下,游戏对象也不会破坏。它破坏了两次,第三次保持静止,当在全息镜头中查看时,画布甚至没有失效。有什么解决办法吗?

0 投票
1 回答
121 浏览

unity3d - Hololens:如何渲染元素仅在 AR 中可见,但在混合现实捕获中不可见

我正在演示使用在大屏幕上复制的 Hololens 的人。对于复制,它使用设备门户的混合现实捕获选项(实时流)。

我需要渲染一个工具提示,仅对拥有 Hololens 的人可见 - 但对在大屏幕上观看它的人不可见。

据我所见,两者之间渲染的唯一区别是我可以在实时流上渲染黑色(如果我省略渲染 alpha 通道),由于它的屏幕工作方式,它在 Hololens 上是不可见的。不幸的是,这对我来说毫无用处,因为我需要向 Hololens 观众展示一些东西,而不是大屏幕观众。

关于如何使部分内容仅对 hololens 用户可见的任何想法?由于其他限制,我无法使用旁观者视图(我需要第一人称视图)。