【问题标题】:Integrating jPCT with Vuforia / QCAR SDK将 jPCT 与 Vuforia / QCAR SDK 集成
【发布时间】:2012-12-16 01:55:29
【问题描述】:

我在使用带有 jPCT 的 Vuforia 时遇到问题。

我已经成功通过了来自 Vuforia 原生代码的modelViewMatrix

QCAR::Matrix44F modelViewMatrix =  QCAR::Tool::convertPose2GLMatrix(imageResult->getPose())

到 Java。

然后我尝试设置jPCT的相机矩阵。

public void setCameraMatrix(float[] modelViewMatrixFromVuforia) {

        float x = modelViewMatrixFromVuforia[12];
        float y = modelViewMatrixFromVuforia[13];
        float z = modelViewMatrixFromVuforia[14];

        modelViewMatrixFromVuforia[12] = 0;
        modelViewMatrixFromVuforia[13] = 0;
        modelViewMatrixFromVuforia[14] = 0;

        Matrix cameraMatrix = new Matrix();
        cameraMatrix.setDump(modelViewMatrixFromVuforia);

        cameraMatrix = cameraMatrix.invert();
        camera.setBack(cameraMatrix);
        camera.setPosition(x, y, z);
    }

但是 3D 对象没有被正确跟踪。我错过了什么?

【问题讨论】:

    标签: java android opengl-es qcar-sdk jpct


    【解决方案1】:

    我正在使用它,它运行良好:

    private Matrix mMatrix = new Matrix();
    ...
    
    mMatrix.setDump(modelViewMatrixFromVuforia); // float[16] sent from native code
    mCamera.setBack(mMatrix);
    

    但是您必须将矩阵绕 X 轴旋转 180 度将其发送到 Java 以匹配从 Vuforia 到 jPCT 的坐标系。

    按如下方式在本机代码中进行轮换:

    SampleUtils::rotatePoseMatrix(180.0f, 1.0f, 0, 0, &modelViewMatrix.data[0]);
    

    【讨论】:

    • 我添加了 cameraMatrix.rotateX((float)Math.PI) 但它不起作用。你介意分享你的代码吗?谢谢。
    猜你喜欢
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多