c# - 全息透镜 2 | 微软 - 有没有人让场景理解实时工作?
问题描述
我一直在尝试找到有关如何使用 Scene Understanding SDK(在 Unity 中)的适当文档或教程。我不是编程新手,但也不是很精通。我一直在尝试让 Scene Understanding SDK 通过他们自己的文档页面工作。但它根本没有很好地解释如何使用来自 Spatial Awareness Observer/mesh 的实时数据而不是预制场景来运行它。
SDK Github 页面中的示例场景在某种程度上可以在编辑器中使用,但是将其部署到我的 Hololens 上会导致在按下“场景理解”面板按钮时场景不会创建实际结果。
我可以发布我尝试过的代码片段,但我认为它不会很有帮助,我会很高兴看到一个带有基本场景的代码片段或项目,我可以将其拆开并部署到我的镜头上看看它是如何工作的。如果有人对我有一个易于理解的文档页面或教程,那也太棒了!
解决方案
要从 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 .
如果您需要更具体的帮助,您需要提供更具体的细节,说明您正在做什么、您尝试过什么,以及您获得的行为与您尝试获得的行为有何不同。
推荐阅读
- sql - 分组返回多行
- sweetalert - Sweetalert 现在显示值和两个提示按钮
- lua - 在 HAProxy 中使用 LUA 处理 http 响应
- sql-server - 为什么在另一个快照隔离事务中插入具有引用行的外键引用行的行会导致事务挂起?
- excel - 循环访问 Access 数据库并使用 Excel VBA 执行基本操作
- swift - 未调用 Alamofire 完成处理程序
- angular - 将 Ionic 页面添加到另一个 Ionic 页面 - Ionic 4
- ruby-on-rails - ActiveRecord::HasManyThroughAssociationNotFoundError
- java - 用外部配置 YAML 文件替换 @Table 注释中的静态字符串
- gradle - Gitlab CI 上下文中的 Gradle-release 插件和 SSH 配置