1.打开Unity,新建3D工程,导入新版的Vuforia,不会导入的可以看我之前的 教程
2.导入MRTK 工具
3.Unity中---删除相机---Hierarchy右键新建一个Vuforia Camera(ARCamera)
- Camera---Background 改为 Solid Color 黑色
- 在Vuforia官网上复制App License Key 粘贴到Vuforia Behaviour中
- 更改 Max Simultaneous Tracked Images (最大同时跟踪图像) 和 Max Simultaneous Tracked Objects (最大同时跟踪物体)
4.Unity顶部状态栏---Mixed Reality Toolkit---Add to Scene and Configure...
5.去 Vuforia官网 导入图片和模型数据---下载---导入Unity(我自己上传了一张图片,两个实物模型的扫描文件,根据需求自定)
6.在Hierarchy右键新建一个Empty,用来被识别的物体,添加对焦脚本(当然放在哪里都行)
using UnityEngine;
using Vuforia;
public class FrameRateSettings : MonoBehaviour
{
void Start()
{
VuforiaARController.Instance.RegisterVuforiaStartedCallback(OnVuforiaStarted);
VuforiaARController.Instance.RegisterOnPauseCallback(OnPaused);
}
private void OnVuforiaStarted()
{
// 查询Vuforia推荐的帧速率和团结
int targetFps = VuforiaRenderer.Instance.GetRecommendedFps(VuforiaRenderer.FpsHint.NONE);
//默认情况下,我们使用Application.targetFrameRate设置建议的帧频。
// Google Cardboard不使用vsync,OVR明确禁用了它。 如果开发人员
//在其质量设置中使用vsync,他们还应该设置其QualitySettings.vSyncCount
//根据上面返回的值。
//例如:如果targetFPS> 50-> vSyncCount = 1; 否则vSyncCount = 2;
if (Application.targetFrameRate != targetFps)
{
Debug.Log("Setting frame rate to " + targetFps + "fps");
Application.targetFrameRate = targetFps;
}
//开启自动对焦模式
CameraDevice.Instance.SetFocusMode(
CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
}
private void OnPaused(bool paused)
{
if (!paused)
{
/// /恢复
/// /设置了自动对焦模式应用时恢复
CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
}
}
}
7.右键Vuforia Engine--Image Target 和ObjectTarget,选择我们上传的数据
8.添加不同颜色的Cube作为Image和Object的子物体作为参照
9.Build Setting---切换为UWP模式---Player Setting
- 其余的都正常设置,特殊的点我已经截图放再下面,对着设置就好了
10.打包发布测试
- 经测试,Image识别比较稳定,物体识别不准,受光照影响成像很严重。
来源:oschina
链接:https://my.oschina.net/u/4305019/blog/4479083