我在使用Vuforia和jPCT时遇到了问题。
我已经成功地通过了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对象没有被正确跟踪。我错过了什么?
发布于 2013-01-02 03:07:38
我正在使用这个,它工作得很好:
private Matrix mMatrix = new Matrix();
...
mMatrix.setDump(modelViewMatrixFromVuforia); // float[16] sent from native code
mCamera.setBack(mMatrix);但是在将矩阵发送到之前,您必须将矩阵绕X轴旋转180度,以便匹配从Vuforia到jPCT的坐标系。
在本机代码中执行旋转,如下所示:
SampleUtils::rotatePoseMatrix(180.0f, 1.0f, 0, 0, &modelViewMatrix.data[0]);https://stackoverflow.com/questions/14109514
复制相似问题