Windows 10开发Vuforia引擎入门

本文解释了如何在这两种环境中开始使用Vuforia Engine开发Windows 10团结Visual Studio.Vuforia Engine支持在部分Intel和基于ARM的Windows 10设备(包括Microsoft Surface和HoloLens)上开发通用Windows平台(UWP)应用程序。The 引擎SDKVuforia样本使用C#API进行Unity开发,使用C API进行本地开发。

The Vuforia引擎支持的版本页面列出了使用Engine平台开发应用程序所支持的操作系统和工具。可以找到有关推荐设备的其他信息在这里。您也可以使用Direct3D 12可编程管道,为游戏以及科学和桌面应用程序创建实时3D图形。

有关Vuforia引擎生成的事件日志的信息,请参阅使用ETW捕获和查看事件日志文章

在Unity中为Windows 10开发

继续之前,请熟悉Unity开发Vuforia引擎入门文章。它包含有关安装Unity、在项目中激活Vuforia Engine以及访问VuforiaEngine功能的信息。 

当您在Unity中构建UWP应用程序时,将生成并启动Visual Studio项目。然后,可以从VisualStudio中生成和运行项目。有关为所有UWP设备打包应用程序的信息,请参阅Windows UWP应用入门文章。

HoloLens和Core样品,可从开发人员门户Unity资产商店,规划Vuforia Windows 10 Unity项目的结构和组织。这些示例是完整的Unity项目,包括实现Image Targets、Model Targets和VuMarks的预配置场景。 

为了更好地理解如何在Unity中开发Windows 10,请从执行在Unity中使用全息透镜示例文章。

在Visual Studio中为Windows 10开发

本节介绍如何在最新支持的Visual Studio版本中为UWP设置Vuforia引擎和Vuforia引擎示例。

  1. 下载UWP的Vuforia引擎.
  2. 将Vuforia Engine for UWP解压缩到开发环境中的文件夹中。
  3. 下载Vuforia引擎示例对于UWP.
  4. 将Vuforia Engine Sample for UWP解压缩到位于Vuforian Engine for UWM文件夹中的Samples文件夹中。
  5. 在提取的文件夹中,打开Vuforia样品.sln在UWP子文件夹中。
    示例项目在Visual Studio中加载。

构建和执行样本

  1. 使用“许可证”选项卡以创建许可证密钥。请参阅引擎开发人员门户许可证文章了解更多信息。
  2. 将许可证密钥添加到示例项目中。可以在应用程序的命名空间中定义许可证密钥。
    命名空间{constexpr char licenseKey[]=“”;}
  3. 解决方案平台下拉列表中,为目标设备选择正确的平台。
  1. 构建并运行示例。
    注释:如果Visual Studio无法识别示例项目的包含路径,请执行以下步骤:
    1. 解决方案资源管理器窗口中,右键单击Vuforia样本项目并选择属性。
    2. 展开概述菜单。
    3. 包括目录字段,将路径添加到包含目录.
  1. 按照中的说明为所有UWP设备打包应用程序为Windows 10打包通用Windows应用程序文章。 

启动Vuforia Engine Sample应用程序后,设备上会显示一个主菜单,您可以从中选择Image Targets或Model Targets功能:

您已成功使用Vuforia Engine部署了第一个应用程序!
轻触屏幕一次以触发相机对焦,或双击以返回主菜单。

修改样本

获得国家

State对象包含对所有当前观测值的引用。您可以从vuEngineAcquireLatestState获取观测值,如prepareToRender()中的方法跨平台/应用程序控制器.cpp.

vuEngineAcquireLatestState(mEngine和mVuforiaState)

查询观察结果

您可以从每个观察者的状态中获取观察结果,可以指定这些观察者来访问姿势、类型和状态信息。

这方面的一个例子可以在带有获取图像目标结果中的方法跨平台/应用程序控制器.cpp.

VuObservationList*observationList=nullptr;vuObservationListCreate(&observationList);if(vuStateGetImageTargetObservations(mVuforiaState,observationList)!=VU_SUCCESS){LOG(“获取图像目标观测值时出错”);REQUIRE_SUCCESS(vuObservationListDestroy(observationList));返回false;}VuPoseInfo poseInfo;vuObservationGetPoseInfo(观察,&poseInfo);VuImageTargetObservationTargetInfo图像目标信息;vuImageTargetObservationGetTargetInfo(观察,&imageTargetInfo);

故障排除

在某些情况下,当您将Visual Studio中的调试器与集成Vuforia Engine的UWP应用程序一起使用时,该应用程序可能无法运行并报告网络连接问题winrt::hr结果错误例外。要解决此问题,请转到调试->窗口->异常设置(Mac上的断点)并清除winrt::hr结果错误例外。这允许Vuforia引擎与附加的调试器一起正常工作。

有关常规故障排除和调试,请参阅应用程序疑难解答.

照相机

如果您无法让Vuforia Engine识别连接到Windows平板电脑或笔记本电脑的USB摄像头(摄像头背对用户),可以在Windows设置-设备管理中禁用该摄像头。它允许Vuforia Engine优先处理USB网络摄像头。

另请参见Vuforia相机桥用于将外部摄像头连接到UWP设备。