Vuforia开发高阶三-用户自定义Target(第一部分)

关于(用户自定义)UDT示例的开发,使用u3d的步骤和ImageTarget的类似。一般的ImageTarget示例,制作自己需要的内容,最基本的两步操作是更换Target和更换模型,但是在自定义的时候,Target是实时获取的,不需要事先准备,更换模型的操作步骤还是一样的。 

UDT实现的原理: 
这里会有两个新的类:ImageTargetBuilder 和 ImageTargetBuilderState 
通过这两个类可以实时创建 
Vuforia开发高阶三-用户自定义Target(第一部分)


复制代码
ImageTargetBuilder builder;
ObjectTracker imageTracker;
DataSet dataSet;
boolean building = false;
boolean scanning = false;
// 开始扫描
void startUserDefScan()
{
    builder.startScan();
    scanning = true;
}
// 开始创建ImageTargetBuilder 
void startUserDefBuild(String name, float sceneSizeWidth)
{
    building = builder.startBuild(name, sceneSizeWidth);
    builder.stopScan();
    scanning = false;
}
    
// 通过ImageTargetBuilder 获取TrackableSource 
// 再根据TrackableSource 创建tracker并**dataset
void onApplicationUpdate()
{
    if (building)
    {
        TrackableSource trackableSource = builder.getTrackableSource ();
        if (trackableSource != null)
        {
            imageTracker.deactivateDataSet(dataSet);
    
            dataSet.createTrackable(trackableSource);
    
            imageTracker.activateDataSet(dataSet);
    
            building = false;
        }
        else if (scanning)
        {
            updateScanningGUI();
        }
    }
}






在选择实时拍摄的场景时,需要注意以下几点:其实也是ImageTarget的选择标准了:
  
Attribute
  
Example
  
Rich in detail
  
A street scene, group of people, collages and mixtures of items, and sport scenes
  
Good contrast
  
Includes bright and dark regions, and well-lit
  
No repetitive patterns
  
A grassy field, the façade of modern house with identical windows, and a checkerboard
  
Ease of availability
  
Business cards, magazine, and memos


同样,你也可以通过一些方法实时反馈你当前使用作Target的图像的识别度到底是多少: 
/// <summary> 
   /// called when the UserDefinedTargetBehaviour reports a new frame Quality 
   /// </summary> 
void OnFrameQualityChanged(ImageTargetBuilder.FrameQuality frameQuality); 

需要单独介绍一下这一项:UserDefinedTargetBuildingBehaviour 
作用:提供开始和停止扫描Target的方式以及创建新的Target 
三个选项: 
1、Start scanning automatically: 
当开始摄像头,自动检测摄像头画面的特征点 
2、Stop tracker while scanning: 
当扫描的时候自动终止跟踪,当停止扫描,跟踪自动开启。 
3、Stop scanning after creating a target: 
当新的target创建之后,自动停止扫描 
PS:默认选择第一项,这种方式一直扫描状态,当Target创建之后会被立刻跟踪。因此,模型出现更快。并且选择这种,可以识别多个标志。 
demo中,你可以扫描一个地方出现茶壶后,再扫描另外一个地方,又会出现茶壶;然后返回之前扫描的Target,茶壶又会出现。发现每个Target出现的模型都是茶壶,那么怎么样才能使不同的Target出现不同的模型呢?且听下回分解!! 
后面两项测试没发现出现模型。????暂时不知道有什么用 
Vuforia开发高阶三-用户自定义Target(第一部分)


首先运行demo示例: 
Vuforia开发高阶三-用户自定义Target(第一部分)
然后替换模型: 
Vuforia开发高阶三-用户自定义Target(第一部分)
最后运行的示例: 

Vuforia开发高阶三-用户自定义Target(第一部分)


请尊重所有作者的劳动,转载请注明原帖来自 AR学院