我想通过 JPCT-AE 渲染模型并使用 ARToolkit 来实现 AR 应用程序。
所以,我将如下代码注入到 ARToolkit 项目中:
Matrix projMatrix = new Matrix();
projMatrix.setDump(ARNativeActivity.getProjectM());
projMatrix.transformToGL();
SimpleVector translation = projMatrix.getTranslation();
SimpleVector dir = projMatrix.getZAxis();
SimpleVector up = projMatrix.getYAxis();
cameraController.setPosition(translation);
cameraController.setOrientation(dir, up);
Matrix transformM = new Matrix();
transformM .setDump(ARNativeActivity.getTransformationM());
transformM .transformToGL();
model.clearTranslation();
model.translate(transformM .getTranslation());
dump.setRow(3,0.0f,0.0f,0.0f,1.0f);
model.clearRotation();
model.setRotationMatrix(transformM );
然后,模型可以在屏幕上渲染,但始终位于屏幕上的标记上,我使用 model.rotateX/Y/Z( (float)Math.PI/2 );
实际上,ARToolkit::ARNativeActivity.getTransformationMatrix() 的矩阵输出是正确的,然后我将这个 4*4Matrix 拆分为平移矩阵和旋转矩阵,并像这样设置到模型中:
model.translate(transformM .getTranslation());
model.setRotationMatrix(transformM );
但仍然没有工作。