【问题标题】:How to always get the AR design in front of the spatial walls Unity HoloLens如何始终在空间墙前获得 AR 设计 Unity HoloLens
【发布时间】:2019-09-24 19:42:43
【问题描述】:

我正在使用 Unity 2018.3.13fMRTK V2 RC1 为 HoloLens gen 1 设备构建应用程序。我得到了一个带有 2 个文本对象和 1 个 rawimage 对象的简单 AR 设计。在构建项目并将其部署到 HoloLens 之后,AR 对象最终位于空间网格后面(您知道所有这些空间三角形),但我希望所有对象都位于墙前。

我该如何做到这一点?

画布设置在主摄像头上

如果有需要更改的地方,我有 DefaultMixedRealityconfiguraitonProfile 的原始设置。

当它没有显示墙的网格时,这就是它通过应用程序通过 hololens 的外观(抱歉质量不好)

这是它落在网格后面时的样子

我是否需要在 MainCamera 上添加一些网格渲染器或其他东西才能实现这一点?

感谢任何帮助,谢谢!

【问题讨论】:

  • “AR 对象最终位于空间网格后面(你知道所有这些空间三角形)”,这是因为你将它设置在那里。在屏幕截图中,我看到你创建了一个屏幕空间画布。您创建了一个 HUD,这对 AR 项目没有好处。你想要完成什么?您是在运行时使用空间映射还是导入已扫描的房间?这个用户界面会像菜单吗?
  • GUI 更多地用于查看信息并在使用我拥有的脚本拍照时用作指导。它应该始终显示在用户的视野中。为什么我创建的 HUD 对开发 AR 项目没有好处?你有更多关于我应该如何以另一种方式做到这一点的详细信息吗?另外我只检查了项目设置中的功能下的SpatialPerception,没有其他我知道的@Perazim
  • 关于“为什么不使用HUD?”这个话题,你可以在这里阅读一些例子:docs.microsoft.com/en-us/windows/mixed-reality/comfort你想要沉浸其中,像HUD这样的东西会一直留在你身边是一些 VR-AR 眼镜的地方
  • 我使用的是 MRTK 的锁体求解器(因为我还需要一个平视显示器的替代品)。它始终在您的视野中,但不具有侵入性。你可以在这里找到一些信息:docs.microsoft.com/en-us/windows/mixed-reality/… 和这里medium.com/@dongyoonpark/… 向下滚动,直到看到求解器系统
  • 谢谢!这可能是 googleable 但如果我不检查 spatialPerception 功能,这仍然是一个问题,并且该项目仍然适用于 hololens 吗? @Perazim

标签: c# unity3d hololens mrtk


【解决方案1】:

我不认为 2019/5/9 的 MRTKv2 具有自动确保特定对象位于相机和其他任意网格和碰撞器之间的代码(即空间感知就是这样的网格之一,尽管您可以想象场景中有一个任意的框或平面会遮挡该对象,在这种情况下,您可能希望您的“中间”对象保持在这两种可能遮挡的事物之间)。

HTK 中曾经有一个名为 Tagalong.cs 的脚本,它可以通过从相机向可碰撞对象进行光线投射来执行类似的操作:

https://github.com/microsoft/MixedRealityToolkit-Unity/blob/htk_release/Assets/HoloToolkit/Utilities/Scripts/Tagalong.cs

我认为这个单一的大脚本被分解成更小的脚本(即此处求解器中的特定行为:)

https://github.com/microsoft/MixedRealityToolkit-Unity/tree/mrtk_release/Assets/MixedRealityToolkit.SDK/Features/Utilities/Solvers

但是,据我所知,“在相机和任何可碰撞对象之间自动保持事物”的特定交互没有保留。如果我错了,其他人可以在这里纠正我,看起来这不是 V2 中保留的行为。

展望未来,有两种可能性:

1) 可能在 Github 上提交问题 (https://github.com/microsoft/MixedRealityToolkit-Unity/issues) 以请求移植此功能。

2) 使用 Tagalong.cs 中的代码添加您自己的求解器来完成此任务(即代码看起来都在那里,只需要完成一些工作来重新排序以处理您想要的)

【讨论】:

    【解决方案2】:
    1. 如果您使用精灵渲染器,请在图层中设置顺序(设置为 0 或 -1)。
    2. 如果您使用网格渲染器,请尝试停用动态遮挡。
    3. 尝试在Edit-> Project Settings -> Sorting Layers下改变排序层的层次

    【讨论】:

    • 我尝试将精灵渲染器添加到画布中的所有对象并将顺序设置为 -1 但这似乎不起作用:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2020-01-22
    相关资源
    最近更新 更多