高通Vuforia SDK 2.8已经正式推出了,此次SDK更新的亮点:增加Extended Tracking功能,即使目标离开视野仍能继续进行图像识别。使用Java API使开发更简单。采用基于云的内容存储。
Extended Tracking,简称 扩展追踪,在目标丢失的状态,通过扩展追踪,通过对周围环境的采集,让你在丢失识别卡片一段时间,仍然可以体验AR;这样,对于一些AR大场景的游戏,以及一些AR创意都可以更好的呈现;
目前,Extended Tracking可以支持很多中识别模式;
These targets support Extended Tracking:
Image Targets
Mul
ti-Targets
Cylinders
User-Defined Targets
Cloud Recognition
提示: Text and Frame Markers do not support Extended Tracking.
具体,可以去一下链接去看;链接如下
https://developer.vuforia.com/resources/dev-guide/extended-tracking
本人也测试过,得出以下结论,仅供参考:
(1)一定得在识别之后,然后,丢失识别之时,Extended Tracking才会发挥出其真正作用;
(2)ImageTargetBehaviour.cs中,代码不可见了,不知道为什么;
(3)在显示内容过于大的时候,从识别到丢失识别会卡一下;
Native API
这段代码显示了更新可追踪基类定义,以及用于更新的API
startExtendedTracking() and stopExtendedTracking which control this feature:
class
QCAR_API Trackable : private
NonCopyable
{
…
///
Starts extended tracking for this Trackable
/**
*
This function will return true if extended tracking was
*
successfully started for this Trackable (or already started)
*
and false otherwise.
*/
virtual
bool startExtendedTracking() = 0;
///
Stops extended tracking for the Trackable
/**
*
This function will return true if extended tracking was
*
successfully stopped for this Trackable (or already stopped)
*
and false otherwise.
*/
virtual
bool stopExtendedTracking() = 0;
virtual
~Trackable() {}
};
再次请注意,这仅适用于子类以下Trackables:ImageTargets,MultiTargets,Cylinders,User Defined Targets和Cloud Recognition。文本和Framemarkers不支持扩展跟踪。
接下来,TrackableResult类已更新,这样的的getStatus()API,现在返回一个EXTENDED_TRACKED的状态,如果是可跟踪拿出来看时,扩展跟踪已启用。如果可追踪是鉴于它返回跟踪的状态。
最后,Tracker class已经更新到启用和禁用持久性扩展跟踪和重置扩展跟踪,如前面所述。
class
QCAR_API Tracker : private
NonCopyable
{
…
///
Enables/disables persistent extended tracking
/**
*
In persistent extended tracking mode, the environment map will only
*
ever be reset when the developer calls resetExtendedTracking().
*
This function will return true if persistent extended tracking
*
was set successfully (or was already set to the specified value)
*
and false otherwise.
*/
virtual
bool persistExtendedTracking(bool on) = 0;
///
Resets environment map for extended tracking
/**
*
Environment map can only be reset by the developer if persistent
*
extended tracking is enabled.
*
This function will return true if environment map was reset
*
successfully and false otherwise.
*/
virtual
bool resetExtendedTracking() = 0;
};