全息透镜 2 |微软 - 有没有人让场景理解实时工作?
Posted
技术标签:
【中文标题】全息透镜 2 |微软 - 有没有人让场景理解实时工作?【英文标题】:Hololens 2 | Microsoft - Has anyone gotten Scene Understanding to work in realtime? 【发布时间】:2021-07-09 10:09:31 【问题描述】:我一直在努力寻找有关如何使用 Scene Understanding SDK(在 Unity 中)的适当文档或教程。我不是编程新手,但也不是很精通。我一直在尝试让 Scene Understanding SDK 通过他们自己的documentation page 工作。但它根本没有很好地解释如何使用来自 Spatial Awareness Observer/mesh 的实时数据而不是预制场景来运行它。
SDK Github 页面中的示例场景在某种程度上可以在编辑器中使用,但将其部署到我的 Hololens 会导致在按下“场景理解”面板按钮时场景无法创建实际结果。..
我可以发布我尝试过的代码 sn-ps,但我认为它不会很有帮助,我会很高兴看到代码剪辑器或具有基本场景的项目,我可以将其拆开并部署到我的镜头上,看看它是如何工作的。 如果有人对我有一个易于理解的文档页面或教程,那也太棒了!
【问题讨论】:
【参考方案1】:要从 HoloLens 的空间感知网格计算实时场景,请使用 SceneObserver.ComputeAsync(从实时数据计算)而不是使用 ComputeSerializedAsync(从保存的场景加载)初始化场景。
Initialization section of the Scene understanding docs 中有一段代码 sn-p 演示了这一点:
// 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。
如果您需要更具体的帮助,您需要提供更具体的详细信息,说明您正在做什么、您尝试过什么,以及您获得的行为与您尝试获得的行为有何不同。
【讨论】:
以上是关于全息透镜 2 |微软 - 有没有人让场景理解实时工作?的主要内容,如果未能解决你的问题,请参考以下文章
微软Hololens学院教程-Hologram 230-空间映射(Spatial mapping )