Я использую ARToolKit для Android для создания AR-приложения. Я могу применить матрицу проекции и матрицу трансформации маркера в OpenGL без проблем, как описано в примере ARSimple. Однако я не нашел способ правильно применить их к камере jPCT-AE. Вот то, что я сделал для камеры:Интеграция jPCT-AE и ARToolKit в Android
Camera cam = world.getCamera();
Matrix projMatrix = new Matrix();
projMatrix.transformToGL();
projMatrix.setDump(ARToolKit.getInstance().getProjectionMatrix());
cam.setPosition(projMatrix.getTranslation());
cam.setBack(projMatrix);
и для объекта:
Matrix objMat = new Matrix();
objMat.transformToGL();
objMat.setDump(ARToolKit.getInstance().queryMarkerTransformation(markerID));
cube.setTranslationMatrix(objMat);
cube.setRotationMatrix(objMat);
Это почти работает: я могу увидеть 3D-объект, если маркер находится в центре экрана. Однако, когда я перемещаю маркер, он быстро исчезает с экрана. Кроме того, куб (и другие модели, которые я пытался загрузить), кажется, выглядит каким-то «перевернутым» способом. Для того, что я читал в Интернете, матрицы ARToolKit относятся к мировым координатам OpenGL (в то время как jPCT-AE имеет свои собственные координаты), а также что проекционная матрица jPCT-AE построена изнутри на основе fov, ближнего и дальнего отсечения плоскости, положения и вращения, а затем я не могу установить его напрямую.
Как преобразовать матрицу проекции и матричную матрицу в механизм jPCT-AE?
Я сделал это с немного большей степенью успеха (объект немного выключен). Я проверю код, который у меня есть для него в понедельник. Я комментирую здесь, чтобы сообщить вам, что наступает ответ (отказ от ответственности: из-за моей головы похоже, что вы сделали это так же, как и я). – shalafi