Вращение камеры вокруг Y asix не делает AR лицо камеры Vuforia родной Android - PullRequest
0 голосов
/ 23 мая 2018

Я делаю видео приложение AR, используя Vuforia.Я хочу, чтобы мое видео располагалось вертикально и всегда находилось лицом к камере, когда я перемещаю камеру вокруг оси Y на всех других каналах, а мое видео AR должно быть вертикальным.Я отредактировал пример видеовоспроизведения vuforia и добавил фоллинг-код, но у меня неожиданное поведение.

Matrix44F inverse_view = SampleMath.Matrix44FInverse(Tool.convertPose2GLMatrix(trackableResult.getPose()));

                // line of sight
                Vec3F los = new Vec3F(-inverse_view.getData()[8], -inverse_view.getData()[9], -inverse_view.getData()[10]);
                Vec3F z_axis = new Vec3F(0, 0, 1);
                Vec3F x_axis = Vec3FNormalize(Vec3FCross(los, z_axis));
                Vec3F y_axis = Vec3FCross(z_axis, x_axis);

                float[] orientationMatrix = new float[]{
                        x_axis.getData()[0], x_axis.getData()[1], x_axis.getData()[2], 0,
                        y_axis.getData()[0], y_axis.getData()[1], y_axis.getData()[2], 0,
                        z_axis.getData()[0], z_axis.getData()[1], z_axis.getData()[2], 0,
                        0, 0, 0, 1
                };

                // calculate the model view projection matrix

                float[] viewMatrixVideo = Tool.convertPose2GLMatrix(trackableResult.getPose()).getData();

                float[] modelViewVideo = new float[16];
                Matrix.multiplyMM(modelViewVideo, 0, viewMatrixVideo, 0, orientationMatrix, 0);

                float[] modelViewProjectionVideo = new float[16];
                Matrix.scaleM(modelViewVideo, 0,
                        targetPositiveDimensions[currentTarget].getData()[0],
                        targetPositiveDimensions[currentTarget].getData()[0]
                                * videoQuadAspectRatio[currentTarget],
                        targetPositiveDimensions[currentTarget].getData()[0]);
                Matrix.multiplyMM(modelViewProjectionVideo, 0, projectionMatrix, 0, modelViewVideo, 0);

, но с кодом выше я получаю поворот как в следующем видео:

https://www.youtube.com/watch?v=b032rThCseU

но я хочу, чтобы мое видео вращалось, как на следующем изображении:

enter image description here

PLZ, помогите мне.

...