Vuforia开发高阶四-Multiple Target(立方体识别)

Multiple Target是一个矩形的盒子,有六个面,尺寸需要设置3个,分别是长宽高。这个功能和之前说的Cylinder Target类似,只要可以用在包装盒中,同样具有虚实遮挡的功能。但是,相对于Cylinder Target来说,她有一个特性:从不同的面看出去,看到的场景是不同的。而Cylinder是一个整体的场景,也就是说他是一个面。 
Vuforia开发高阶四-Multiple Target(立方体识别)     Vuforia开发高阶四-Multiple Target(立方体识别) 

1、更换模型 
ImageTarget一致, 
Vuforia开发高阶四-Multiple Target(立方体识别) 
2、更换标志 
首先来看看官方demo中的dataset文件: 



<?xml version="1.0"?> 
<QCARConfig xsi:noNamespaceSchemaLocation="qcar_config.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
   <Tracking> 
       <ImageTarget name="FlakesBox.Front" size="90 120"/> 
       <ImageTarget name="FlakesBox.Top" size="90 60"/> 
       <ImageTarget name="FlakesBox.Bottom" size="90 60"/> 
       <ImageTarget name="FlakesBox.Left" size="60 120"/> 
       <ImageTarget name="FlakesBox.Right" size="60 120"/> 
       <ImageTarget name="FlakesBox.Back" size="90 120"/> 
     <MultiTarget name="FlakesBox"> 
     <Part name="FlakesBox.Front" translation="0 0 30" rotation="AD: 1 0 0 0"/> 
     <Part name="FlakesBox.Back" translation="0 0 -30" rotation="AD: 0 1 0 180"/> 
     <Part name="FlakesBox.Left" translation="-45 0 0" rotation="AD: 0 1 0 -90"/> 
     <Part name="FlakesBox.Right" translation="45 0 0" rotation="AD: 0 1 0 90"/> 
     <Part name="FlakesBox.Top" translation="0 60 0" rotation="AD: 1 0 0 -90"/> 
     <Part name="FlakesBox.Bottom" translation="0 -60 0" rotation="AD: 1 0 0 90"/> 
   </MultiTarget> 
 </Tracking> 
</QCARConfig> 

好吧,来对比一下ImageTargetdataset 


<?xml version="1.0"?> 
<QCARConfig xsi:noNamespaceSchemaLocation="qcar_config.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
   <Tracking> 
       <ImageTarget name="stones" size="247 172.899994"/> 
       <ImageTarget name="chips" size="247 172.899994"/> 
   </Tracking> 
</QCARConfig> 
可以看出,基本上就是包含与被包含的关系, 
Tracking->ImageTarget /MultiTarget->Part 
再来看TargetManager怎么操作的: 
Vuforia开发高阶四-Multiple Target(立方体识别)Vuforia开发高阶四-Multiple Target(立方体识别) 
没错,需要设置的参数:长宽高和名称。 
之后进入: 
Vuforia开发高阶四-Multiple Target(立方体识别) 
这里显示出设置的长宽高以及右边待设置Target六个面。(这也能叫做可视化开发了吧,哈哈。) 
Vuforia开发高阶四-Multiple Target(立方体识别) 
在上传图片的时候,要注意图片的比例,因为长宽高已经设定好: 
Vuforia开发高阶四-Multiple Target(立方体识别) 
OK,上传成功一个,依次类推,根据上面图片计算你设置的Target的图片的比例:(如果没有设置完成所有六个面,是不能够下载dataset的) 
Vuforia开发高阶四-Multiple Target(立方体识别) 

新建的时候全部都是空的, 
Vuforia开发高阶四-Multiple Target(立方体识别)Vuforia开发高阶四-Multiple Target(立方体识别) 
导入设定的dataset后,自动生成: 
Vuforia开发高阶四-Multiple Target(立方体识别) 
修改标志之后的场景,如下: 
Vuforia开发高阶四-Multiple Target(立方体识别) 
总结: 
乍一看,和普通的没有什么不同,除了Target形状以及Hierarchy不同之外。 
Vuforia开发高阶四-Multiple Target(立方体识别) 
当然最主要的脚本文件的源码是看不着的: 
MultiTargetBehaviour 

虽然这个功能看起来很不错,但是目前市场上这个功能的应用比较少。因为它采用六面,这种形式一般在包装盒上,而现在包装盒上面一般使用普通的ImageTarget的功能就已经足够了。其实这个功能完全可以应用在游戏当中,利用它虚实遮挡的功能,再加上物理引擎,这样模拟出来的游戏场景就更加真实了。

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