阅读 370

EasyAR4.0使用说明(Unity3D)六----表面跟踪和运动跟踪

表面跟踪和运动跟踪很类似,其目的都是通过感知设备在现实空间的变化来实现将3D模型显示得像是在现实空间某个位置的感觉。实际使用的方式也很类似,只要将物体放置在【WorldRoot】游戏对象下成为其子游戏对象就能自动实现跟踪效果。 表面跟踪对设备的要求更低,支持的设备更多,但是效果更差一些,而且场景中只能放置一个虚拟物体。能实际应用的场景其实不多。

运动跟踪对设备有要求,官方给出了设备支持列表:地址:help.easyar.cn/EasyAR%20Se…

支持列表里面没提苹果设备,官方说明是凡是支持ARKit的苹果设备都支持EasyAR的运动跟踪。尽管运动跟踪对设备要求比较高,但是能实现的跟踪效果好很多,而且没有虚拟物体限制。实际情况下,根推荐使用运动跟踪而不是表面跟踪。

总体说明

表面跟踪基本结构

表面跟踪基本结构

运动跟踪基本结构

运动跟踪基本结构

两者使用的时候,都是要设置Center Mode属性为World Root,并将WorldRoot游戏对象设置为World Root Controller属性的值。同时将需要跟踪的游戏对象放置在WorldRoot游戏对象下面即可。

表面跟踪

  • 设置场景中的Main Camera的Clear Flags属性为Solid Color。
  • 将EasyAR/Prefabs/Composites目录下的EasyAR_SurfaceTracker预制件拖到场景中。

表面跟踪

  • 将EasyAR/Prefabs/Primitives目录下的WorldRoot预制件拖到场景中。
  • 选中EasyAR_SurfaceTracker游戏对象,将WorldRoot游戏对象拖到World Root Controller属性中为其赋值。

表面跟踪

在场景中添加2个方块,都在原点附近。一个在World Root游戏对象下,一个在根目录下。

表面跟踪

打包后在设备运行,效果如下:

表面跟踪

方块出现在屏幕前方一点的位置,即WorldRoot的原点和场景的原点出现在设备启动位置前方一点的位置。当设备小范围发生移动旋转的时候,方块位置变化不大。但是当设备大范围左右移动旋转以后,方块位置也会发生偏移,而且受周围环境影响。但是两个方块的相对位置基本不变。

运动跟踪

  • 设置场景中的Main Camera的Clear Flags属性为Solid Color。
  • 将EasyAR/Prefabs/Composites目录下的EasyAR_MotionTracker预制件拖到场景中。

表面跟踪

  • 将EasyAR/Prefabs/Primitives目录下的WorldRoot预制件拖到场景中。
  • 选中EasyAR_MotionTracker游戏对象,将WorldRoot游戏对象拖到World Root Controller属性中为其赋值。

表面跟踪

和表面跟踪一样,在中心位置添加两个错开的方块,一个方块是在场景根目录,一个方块在WorldRoot游戏对象下。同时在【WorldRoot】游戏对象下再添加一些模型。在三个轴的正方向和负方向各添加一个模型并用颜色区分。

表面跟踪

打包后在设备运行,效果如下:

表面跟踪

屏幕竖着拿(Portrait),方块出现在屏幕位置,即WorldRoot的原点和场景的原点出现在设备启动位置。运动跟踪开始的时候,屏幕背面是Z轴正方向。X轴和Z轴的方向和东南西北无关,只和启动时候设备的角度有关。Y轴正方向永远朝上。

视频版地址:www.bilibili.com/video/BV1Kt…