首页 > 解决方案 > 全息透​​镜 2 | 微软 - 有没有人让场景理解实时工作?

问题描述

我一直在尝试找到有关如何使用 Scene Understanding SDK(在 Unity 中)的适当文档或教程。我不是编程新手,但也不是很精通。我一直在尝试让 Scene Understanding SDK 通过他们自己的文档页面工作。但它根本没有很好地解释如何使用来自 Spatial Awareness Observer/mesh 的实时数据而不是预制场景来运行它。

SDK Github 页面中的示例场景在某种程度上可以在编辑器中使用,但是将其部署到我的 Hololens 上会导致在按下“场景理解”面板按钮时场景不会创建实际结果。

我可以发布我尝试过的代码片段,但我认为它不会很有帮助,我会很高兴看到一个带有基本场景的代码片段或项目,我可以将其拆开并部署到我的镜头上看看它是如何工作的。如果有人对我有一个易于理解的文档页面或教程,那也太棒了!

标签: c#unity3dhololens

解决方案


要从 HoloLens 的空间感知网格计算实时场景,请使用 SceneObserver.ComputeAsync(从实时数据计算)而不是使用 ComputeSerializedAsync(从保存的场景加载)初始化场景。

在场景理解文档的初始化部分中有一个代码片段演示了这一点:

// Create Query settings for the scene update
SceneQuerySettings querySettings;

querySettings.EnableSceneObjectQuads = true;                                       // Requests that the scene updates quads.
querySettings.EnableSceneObjectMeshes = true;                                      // Requests that the scene updates watertight mesh data.
querySettings.EnableOnlyObservedSceneObjects = false;                              // Do not explicitly turn off quad inference.
querySettings.EnableWorldMesh = true;                                              // Requests a static version of the spatial mapping mesh.
querySettings.RequestedMeshLevelOfDetail = SceneMeshLevelOfDetail.Fine;            // Requests the finest LOD of the static spatial mapping mesh.

// Initialize a new Scene
Scene myScene = SceneObserver.ComputeAsync(querySettings, 10.0f).GetAwaiter().GetResult();

如果您希望示例在世界上而不是在保存的场景上运行,您应该能够从https://github.com/microsoft/MixedReality-SceneUnderstanding-Samples更新 SceneUnderstandingManager.cs 文件以调用 ComputeAsync 而不是 ComputeSerializedAsync .

如果您需要更具体的帮助,您需要提供更具体的细节,说明您正在做什么、您尝试过什么,以及您获得的行为与您尝试获得的行为有何不同。


推荐阅读