2

我已经更改了 Google 示例的AugmentedRealitySample中的代码,如下所示:

Boolean useBasicObjectInsteadOf3DModel = false;

        if (useBasicObjectInsteadOf3DModel) {
            // This is the original code provided by the Google sample.
            // The mObject is an Object3D.
            // Build a Cube and place it initially in the origin.
            mObject = new Cube(CUBE_SIDE_LENGTH);

        } else {
            // This is the new code
            LoaderOBJ objParser = new LoaderOBJ(mContext.getResources(), mTextureManager, R.raw.object_obj);
            try {
                objParser.parse();
                mObject = objParser.getParsedObject();
            } catch (ParsingException e) {
                e.printStackTrace();
            }
        }

        mObject.setMaterial(material);
        mObject.setPosition(0, 0, -3);
        mObject.setRotation(Vector3.Axis.Z, 180);
        getCurrentScene().addChild(mObject);

当将 useBasicObjectsInsteadOf3dModel 设置为 true 时,对象会粘在现实世界中的一个点(例如墙壁)上。设置为 false 时,对象位置似乎设置为使 Tango 设备位于对象中间,并且对象与数位板一起移动。然而,物体的旋转似乎起作用了,因为它的移动很像指南针中的指针。

问题是:如何使通过 LoaderOBJ 加载的对象粘在现实世界中的某个点上?

4

0 回答 0