归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
阅读:4928回复:21

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

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

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

图片:图片1.png


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

图片:图片2.png



首先运行demo示例:

图片:图片3.jpg

然后替换模型:

图片:图片4.png

最后运行的示例:

图片:图片5.jpg

最新喜欢:

gaohangaohan citysixcitysi...
AR学院(www.arvrschool.com),从这里感触未来!

欢迎分享

zhuoweip
贫民
贫民
  • UID530
  • 粉丝0
  • 关注0
  • 发帖数5
沙发#
发布于:2015-11-29 22:00
ImageTargetBuilder 和 ImageTargetBuilderState。  这2两个类是高通自带的,还是需要自己创建的,还有复制的这段代码复制到哪里,复制到自定义ImageTargetBuilder 的类里面,builder.startScan();builder的这些方法都报错,显示没有这些方法
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
板凳#
发布于:2015-11-29 22:04
zhuoweip:ImageTargetBuilder 和 ImageTargetBuilderState。  这2两个类是高通自带的,还是需要自己创建的,还有复制的这段代码复制到哪里,复制到自定义ImageTargetBuilder 的类里面,builde...回到原帖
你使用什么版本的sdk?
AR学院(www.arvrschool.com),从这里感触未来!
zhuoweip
贫民
贫民
  • UID530
  • 粉丝0
  • 关注0
  • 发帖数5
地板#
发布于:2015-11-30 01:07
归海一啸:你使用什么版本的sdk?回到原帖
5.0.5,老大,我就是上次汽车模型的那个,Q你了群里面@你了哦
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
4楼#
发布于:2015-11-30 10:05
zhuoweip:5.0.5,老大,我就是上次汽车模型的那个,Q你了群里面@你了哦回到原帖
恩恩,我知道你
因为我的这个demo使用的是4.2.3版本的,可能有的API改了。我抽空再看看
AR学院(www.arvrschool.com),从这里感触未来!
sgclzqq
侠客
侠客
  • UID545
  • 粉丝0
  • 关注2
  • 发帖数43
  • 社区居民
  • 忠实会员
5楼#
发布于:2015-12-07 22:45
我看了api跟你的一样,但还是builder.startScan();这些方法还是报错,https://developer.vuforia.com/library//articles/Solution/How-To-Develop-for-User-Defined-Targets-Using-the-Native-SDKs 这个跟你的一样,没有改。
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
6楼#
发布于:2015-12-07 22:51
sgclzqq:我看了api跟你的一样,但还是builder.startScan();这些方法还是报错,https://developer.vuforia.com/library//articles/Solution/How-To-Develop-for-...回到原帖
你查看一下最新的5.x版本的API了吗
AR学院(www.arvrschool.com),从这里感触未来!
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
7楼#
发布于:2015-12-07 22:52
sgclzqq:我看了api跟你的一样,但还是builder.startScan();这些方法还是报错,https://developer.vuforia.com/library//articles/Solution/How-To-Develop-for-...回到原帖
5.x版本的有的API改了。或者你看看5.x的sample里面的代码
AR学院(www.arvrschool.com),从这里感触未来!
sgclzqq
侠客
侠客
  • UID545
  • 粉丝0
  • 关注2
  • 发帖数43
  • 社区居民
  • 忠实会员
8楼#
发布于:2015-12-07 22:57
归海一啸:5.x版本的有的API改了。或者你看看5.x的sample里面的代码回到原帖
好的,谢谢老大
wangyong
侠客
侠客
  • UID778
  • 粉丝0
  • 关注0
  • 发帖数23
9楼#
发布于:2016-01-15 17:05
归海老大,求视屏
wangyong
侠客
侠客
  • UID778
  • 粉丝0
  • 关注0
  • 发帖数23
10楼#
发布于:2016-01-18 09:44
归海老大 这个没看懂啊  是要自己写一个类吗 ?脚本给谁啊  要放哪些预制体啊 ?
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
11楼#
发布于:2016-01-18 09:49
wangyong:归海老大,求视屏回到原帖
最近比较忙吧,等有空了再录制~
AR学院(www.arvrschool.com),从这里感触未来!
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
12楼#
发布于:2016-01-18 09:52
wangyong:归海老大 这个没看懂啊  是要自己写一个类吗 ?脚本给谁啊  要放哪些预制体啊 ?回到原帖
这篇没啥,就是给你简单介绍下UDT的知识,以及如何更换模型,第二篇讲了怎么实现多目标识别
AR学院(www.arvrschool.com),从这里感触未来!
wangyong
侠客
侠客
  • UID778
  • 粉丝0
  • 关注0
  • 发帖数23
13楼#
发布于:2016-01-18 10:51
这个后面怎么弄啊 不知道怎么弄了 后面   我只找到了两个类  还有一个找不到啊  ?
wangyong
侠客
侠客
  • UID778
  • 粉丝0
  • 关注0
  • 发帖数23
14楼#
发布于:2016-01-18 10:53
wangyong:归海老大 这个没看懂啊  是要自己写一个类吗 ?脚本给谁啊  要放哪些预制体啊 ?回到原帖
谢谢老大
上一页
游客

返回顶部