3

Project Tango を使用して拡張現実に取り組んでいます。adf ファイルをロードした後、領域学習プロセス中にマークされた各位置に 3d オブジェクトを配置し、3d オブジェクトを追加します

これらのオブジェクトは Coordinate オブジェクトを使用して特定の場所に正確に配置されているため、3D オブジェクトは静的であると予想していましたが、カメラを移動すると位置がずれたり、振動したりすることさえあります

私が見つけた理由は、Tango が接続されるたびに、現在の位置が原点(0,0,0)として取得され、オブジェクトが (もちろん、ロードされた adf を認識した後) この原点に対して相対的に配置されることです。

3D オブジェクトを正確に配置して静的にする他の方法はありますか?

4

2 に答える 2

1

まず、オブジェクトの位置は、保存されている ADF に対して相対的です。オブジェクトを元の場所に復元するには、再ローカライズする必要があります。1. ADF をロードします。2. エリアを歩き回り、デバイスを再ローカライズします。

Tango Service は、サービス ペアの開始に関して、デバイスの (0, 0, 0) として開始されます。ただし、デバイスが再ローカライズされると、アプリはエリア記述フレーム ペアのコールバックに関してデバイスの受信を開始します。

Unity を使用している場合、Area Learning の例は、探しているものとまったく同じことを行っています。

于 2016-03-21T22:09:38.670 に答える
0

おそらくシーンを適切に配置している場合は、tangoCoordinateFramePairs までです。通常、ADF ファイルを使用している場合は、次のように設定する必要があります:(Java で)

   tangoCoordinateFramePairs.add(new TangoCoordinateFramePair(
    TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION,
    TangoPoseData.COORDINATE_FRAME_START_OF_SERVICE));

次に、レンダリングでシーンを正しく配置する必要があります。

于 2016-07-19T07:53:43.190 に答える