我正在使用 Project Tango 开发增强现实。加载 adf 文件后,我将 3d 对象放置在区域学习过程中标记的每个位置,并添加 3d 对象
我希望 3d 对象是静态的,因为这些对象是使用坐标对象精确放置在特定位置的,但是当我移动相机时,这些对象会错位甚至振荡
我发现的原因是每当 Tango 连接时,当前位置被视为原点(0,0,0)并且相对于该原点放置对象(当然是在识别加载的 adf 之后)
有没有其他方法可以精确放置 3d 对象并使它们成为静态?
我正在使用 Project Tango 开发增强现实。加载 adf 文件后,我将 3d 对象放置在区域学习过程中标记的每个位置,并添加 3d 对象
我希望 3d 对象是静态的,因为这些对象是使用坐标对象精确放置在特定位置的,但是当我移动相机时,这些对象会错位甚至振荡
我发现的原因是每当 Tango 连接时,当前位置被视为原点(0,0,0)并且相对于该原点放置对象(当然是在识别加载的 adf 之后)
有没有其他方法可以精确放置 3d 对象并使它们成为静态?
首先,对象的位置是相对于被保存的 ADF 的。为了使对象恢复到原始位置,您需要重新定位。这需要: 1. 加载 ADF。2. 在该区域走动并重新定位设备。
相对于服务对的启动,设备的 Tango 服务启动为 (0, 0, 0)。但是一旦设备被重新定位,应用程序将开始接收设备关于区域描述帧对的回调。
如果您使用的是 Unity,Area Learning 示例正在做您正在寻找的完全相同的事情。
可能如果你放置好场景,取决于 tangoCoordinateFramePairs:通常如果你使用 ADF 文件,你应该设置:(在 java 中)
tangoCoordinateFramePairs.add(new TangoCoordinateFramePair(
TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION,
TangoPoseData.COORDINATE_FRAME_START_OF_SERVICE));
然后在您的渲染中必须正确放置场景。