在Vuforia焦点模式下的行为(1.5版以上),描述如下:
- FOCUS_MODE_NORMAL -通过设备提供的默认的对焦模式
- FOCUS_MODE_TRIGGERAUTO -设置此对焦模式将触发一个自动对焦操作。
- FOCUS_MODE_CONTINUOUSAUTO -首发的Android 2.3和iOS设备这一对焦模式下可切换式驱动级的连续自动对焦的摄像头。这是AR的应用程序的最佳对焦模式,因为它保证了相机聚焦在目标上,从而产生最佳的跟踪结果。
- FOCUS_MODE_INFINITY -设置相机为“无穷大”,通过摄像头驱动程序的实现提供。(不支持IOS)。
- FOCUS_MODE_MACRO -设置相机“微距”模式,由相机驱动程序的实现提供。这提供了特写(APPX。15厘米),在AR调校很少使用的距离急剧摄像机图像。(不支持IOS)。
我们鼓励使用FOCUS_MODE_CONTINUOUSAUTO在你的应用程序时,它可以在设备上。当设置该模式时,如果返回值setFocusMode()为TRUE时应用程序将提供锋利的照相机图像的两个上级渲染,以及超棒跟踪性能。
如果FOCUS_MODE_CONTINUOUSAUTO不可用,接下来最好的选择是实现“触摸聚焦”在你的应用程序的行为。要做到这一点,引发setFocusMode()与FOCUS_MODE_TRIGGERAUTO值每个用户触摸屏幕的时间。
测试代码
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class AR_SetCameraFocus : MonoBehaviour
{
public Dropdown dropdown;
public Text t;
// Use this for initialization
void Start()
{
bool b = Vuforia.CameraDevice.Instance.SetFocusMode(Vuforia.CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
if (b)
{
t.text = "开启对焦!";
}
else
{
t.text = "开启对焦失败!";
}
}
// Update is called once per frame
void Update()
{
//#if UNITY_EDITOR
// if (Input.GetMouseButtonUp(0))
//#elif UNITY_ANDROID || UNITY_IPHONE
if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
//#endif
{
//bool b = Vuforia.CameraDevice.Instance.SetFocusMode(Vuforia.CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
bool b = Vuforia.CameraDevice.Instance.SetFocusMode((Vuforia.CameraDevice.FocusMode)dropdown.value);
if (b)
{
t.text = dropdown.captionText.text + "手动对焦!";
}
else
{
t.text = dropdown.captionText.text + "手动对焦失败!";
}
}
}
}
参照自http://blog.csdn.net/rowley123456/article/details/78491647
参照自https://developer.vuforia.com/resources/dev-guide/continuous-autofocus-and-other-focus-modes