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

本文介绍了如何在Unity中利用自定义目标(UDT)功能进行开发,包括使用ImageTargetBuilder类实现实时创建和更新追踪源的具体步骤,并讨论了选择有效追踪目标的关键属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

UDT实现的原理:  
这里会有两个新的类:ImageTargetBuilder 和 ImageTargetBuilderState  
通过这两个类可以实时创建  


复制代码
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出现不同的模型呢? 且听下回分解!!  
后面两项测试没发现出现模型。????暂时不知道有什么用  


首先运行demo示例:  
然后替换模型:  
最后运行的示例:  


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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值