了解过Metaio的人都知道,工程中摄像机的画面是未镜像的,需要进一步的处理,结合自己的摸索以及网上的资料,提供两种方法以供参考。
1)修改metaioSDK中获取MetaioCamera的方法,修改如下:
List<MetaioCamera> mcLst = MetaioSDKUnity.getCameraList();
MetaioSDKUnity.startCamera(mcLst[0]);
这里注意的是startCamera有个重载方法,可以在MetaioSDKUnity中添加如下:
camera.flip = MetaioCamera.FLIP_HORIZONTAL;
如此,就实现镜像,但这种方法在图片识别时,需要将待识别的图片也进行镜像方可
2)这种方法是参考网上,来自http://blog.csdn.net/xiaomuzi0802/article/details/41719925,也比较实用
将metaioDeviceCamera中的cameraPlane.transform.localScale = new Vector3(-scale, scale, scale);
改为:cameraPlane.transform.localScale = new Vector3(scale, scale, scale); 注意根据自己的平台。
2.在MetaioTracker.cs中将控制metaioSDK物体移动和旋转的值更改为:
Quaternion q;
q.x = -trackingValues[3];
q.y = trackingValues[4];
q.z = -trackingValues[5];
q.w = trackingValues[6];
Quaternion mul = new Quaternion(1, 0, 0, -1);
q *= mul;
//translation
Vector3 p;
p.x = -trackingValues[0];
p.y = trackingValues[1];
p.z = -trackingValues[2];
这样的话,画面和追踪的物体就都进行了镜面的翻转,实现了想要的效果。
在这里做一记录,方便自己及其他人使用。